[submodule "UnitTestFrameworkPkg/Library/CmockaLib/cmocka"]
path = UnitTestFrameworkPkg/Library/CmockaLib/cmocka
url = https://git.cryptomilk.org/projects/cmocka.git
+[submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"]
+ path = MdeModulePkg/Universal/RegularExpressionDxe/oniguruma
+ url = https://github.com/kkos/oniguruma
"CryptoPkg/Library/OpensslLib/openssl", False))\r
rs.append(RequiredSubmodule(\r
"UnitTestFrameworkPkg/Library/CmockaLib/cmocka", False))\r
+ rs.append(RequiredSubmodule(\r
+ "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma", False))\r
return rs\r
\r
def GetName(self):\r
\r
## options defined ci/Plugin/CharEncodingCheck\r
"CharEncodingCheck": {\r
- "IgnoreFiles": []\r
+ "IgnoreFiles": [\r
+ "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/test/testc.c",\r
+ "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/windows/testc.c"\r
+ ]\r
},\r
\r
## options defined ci/Plugin/DependencyCheck\r
+++ /dev/null
-<kkosako0@gmail.com> (K.Kosako)\r
+++ /dev/null
-Oniguruma LICENSE\r
------------------\r
-\r
-Copyright (c) 2002-2018 K.Kosako <kkosako0@gmail.com>\r
-All rights reserved.\r
-\r
-Redistribution and use in source and binary forms, with or without\r
-modification, are permitted provided that the following conditions\r
-are met:\r
-1. Redistributions of source code must retain the above copyright\r
- notice, this list of conditions and the following disclaimer.\r
-2. Redistributions in binary form must reproduce the above copyright\r
- notice, this list of conditions and the following disclaimer in the\r
- documentation and/or other materials provided with the distribution.\r
-\r
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
-SUCH DAMAGE.\r
+++ /dev/null
-/** @file\r
-\r
- Provide intrinsics within Oniguruma\r
-\r
- (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-**/\r
-\r
-#include <Library/BaseMemoryLib.h>\r
-\r
-//\r
-// From CryptoPkg/IntrinsicLib\r
-//\r
-\r
-/* Copies bytes between buffers */\r
-#pragma function(memcpy)\r
-void * memcpy (void *dest, const void *src, unsigned int count)\r
-{\r
- return CopyMem (dest, src, (UINTN)count);\r
-}\r
-\r
-/* Sets buffers to a specified character */\r
-#pragma function(memset)\r
-void * memset (void *dest, char ch, unsigned int count)\r
-{\r
- //\r
- // NOTE: Here we use one base implementation for memset, instead of the direct\r
- // optimized SetMem() wrapper. Because the IntrinsicLib has to be built\r
- // without whole program optimization option, and there will be some\r
- // potential register usage errors when calling other optimized codes.\r
- //\r
-\r
- //\r
- // Declare the local variables that actually move the data elements as\r
- // volatile to prevent the optimizer from replacing this function with\r
- // the intrinsic memset()\r
- //\r
- volatile UINT8 *Pointer;\r
-\r
- Pointer = (UINT8 *)dest;\r
- while (count-- != 0) {\r
- *(Pointer++) = ch;\r
- }\r
-\r
- return dest;\r
-}\r
+++ /dev/null
-/** @file\r
-\r
- Module to rewrite stdlib references within Oniguruma\r
-\r
- (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-**/\r
-#include "OnigurumaUefiPort.h"\r
-\r
-int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)\r
-{\r
- VA_LIST Marker;\r
- int NumberOfPrinted;\r
-\r
- VA_START (Marker, fmt);\r
- NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker);\r
- VA_END (Marker);\r
-\r
- return NumberOfPrinted;\r
-}\r
-\r
-int OnigStrCmp (char* Str1, char* Str2)\r
-{\r
- return (int)AsciiStrCmp (Str1, Str2);\r
-}\r
+++ /dev/null
-/** @file\r
-\r
- Module to rewrite stdlib references within Oniguruma\r
-\r
- (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-**/\r
-#ifndef ONIGURUMA_UEFI_PORT_H\r
-#define ONIGURUMA_UEFI_PORT_H\r
-\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PrintLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/DebugLib.h>\r
-\r
-#undef _WIN32\r
-#define P_(args) args\r
-\r
-#define SIZEOF_LONG sizeof(long)\r
-#define SIZEOF_INT sizeof(int)\r
-typedef UINTN size_t;\r
-\r
-#define malloc(n) AllocatePool(n)\r
-#define calloc(n,s) AllocateZeroPool((n)*(s))\r
-\r
-#define free(p) \\r
- do { \\r
- VOID *EvalOnce; \\r
- \\r
- EvalOnce = (p); \\r
- if (EvalOnce != NULL) { \\r
- FreePool (EvalOnce); \\r
- } \\r
- } while (FALSE)\r
-\r
-#define realloc(OldPtr,NewSize,OldSize) ReallocatePool(OldSize,NewSize,OldPtr)\r
-#define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
-#define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
-#define xmemset(Buffer,Value,Length) SetMem(Buffer,Length,Value)\r
-\r
-#define va_init_list(a,b) VA_START(a,b)\r
-#define va_list VA_LIST\r
-#define va_arg(a,b) VA_ARG(a,b)\r
-#define va_end(a) VA_END(a)\r
-\r
-#define FILE VOID\r
-#define stdout NULL\r
-#define fprintf(...)\r
-#define fputs(a,b)\r
-#define vsnprintf (int)AsciiVSPrint\r
-#define _vsnprintf vsnprintf\r
-\r
-#define setlocale(a,b)\r
-#define LC_ALL 0\r
-\r
-#define MAX_STRING_SIZE 0x1000\r
-#define strlen_s(String,MaxSize) AsciiStrnLenS (String, MaxSize)\r
-#define strcat_s(Dest,MaxSize,Src) AsciiStrCatS (Dest, MaxSize, Src)\r
-#define strncpy_s(Dest,MaxSize,Src,Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length)\r
-#define strcmp OnigStrCmp\r
-\r
-int OnigStrCmp (char* Str1, char* Str2);\r
-\r
-int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...);\r
-\r
-#define exit(n) ASSERT(FALSE);\r
-\r
-#endif // !ONIGURUMA_UEFI_PORT_H\r
+++ /dev/null
-README 2018/04/05\r
-\r
-Oniguruma ---- (C) K.Kosako\r
-\r
-https://github.com/kkos/oniguruma\r
-\r
-FIXED Security Issues (in Oniguruma 6.3.0):\r
- CVE-2017-9224, CVE-2017-9225, CVE-2017-9226\r
- CVE-2017-9227, CVE-2017-9228, CVE-2017-9229\r
-\r
----\r
-Oniguruma is a modern and flexible regular expressions library. It\r
-encompasses features from different regular expression implementations\r
-that traditionally exist in different languages. It comes close to\r
-being a complete superset of all regular expression features found\r
-in other regular expression implementations.\r
-\r
-Its features include:\r
-* Character encoding can be specified per regular expression object.\r
-* Several regular expression types are supported:\r
- * POSIX\r
- * Grep\r
- * GNU Regex\r
- * Perl\r
- * Java\r
- * Ruby\r
- * Emacs\r
-\r
-Supported character encodings:\r
-\r
- ASCII, UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE,\r
- EUC-JP, EUC-TW, EUC-KR, EUC-CN,\r
- Shift_JIS, Big5, GB18030, KOI8-R, CP1251,\r
- ISO-8859-1, ISO-8859-2, ISO-8859-3, ISO-8859-4, ISO-8859-5,\r
- ISO-8859-6, ISO-8859-7, ISO-8859-8, ISO-8859-9, ISO-8859-10,\r
- ISO-8859-11, ISO-8859-13, ISO-8859-14, ISO-8859-15, ISO-8859-16\r
-\r
-* GB18030: contributed by KUBO Takehiro\r
-* CP1251: contributed by Byte\r
-------------------------------------------------------------\r
-\r
-License\r
-\r
- BSD license.\r
-\r
-\r
-Install\r
-\r
- Case 1: Unix and Cygwin platform\r
-\r
- 1. autoreconf -vfi (* case: configure script is not found.)\r
-\r
- 2. ./configure\r
- 3. make\r
- 4. make install\r
-\r
- * uninstall\r
-\r
- make uninstall\r
-\r
- * configuration check\r
-\r
- onig-config --cflags\r
- onig-config --libs\r
- onig-config --prefix\r
- onig-config --exec-prefix\r
-\r
-\r
-\r
- Case 2: Windows 64/32bit platform (Visual Studio)\r
-\r
- execute make_win64 or make_win32\r
-\r
- src/onig_s.lib: static link library\r
- src/onig.dll: dynamic link library\r
-\r
- * test (ASCII/Shift_JIS)\r
- 1. cd src\r
- 2. copy ..\windows\testc.c .\r
- 3. nmake -f Makefile.windows ctest\r
-\r
- (I have checked by Visual Studio Community 2015)\r
-\r
-\r
-\r
-Regular Expressions\r
-\r
- See doc/RE (or doc/RE.ja for Japanese).\r
-\r
-\r
-Usage\r
-\r
- Include oniguruma.h in your program. (Oniguruma API)\r
- See doc/API for Oniguruma API.\r
-\r
- If you want to disable UChar type (== unsigned char) definition\r
- in oniguruma.h, define ONIG_ESCAPE_UCHAR_COLLISION and then \r
- include oniguruma.h.\r
-\r
- If you want to disable regex_t type definition in oniguruma.h,\r
- define ONIG_ESCAPE_REGEX_T_COLLISION and then include oniguruma.h.\r
-\r
- Example of the compiling/linking command line in Unix or Cygwin,\r
- (prefix == /usr/local case)\r
-\r
- cc sample.c -L/usr/local/lib -lonig\r
-\r
-\r
- If you want to use static link library(onig_s.lib) in Win32,\r
- add option -DONIG_EXTERN=extern to C compiler.\r
-\r
-\r
-\r
-Sample Programs\r
-\r
- sample/simple.c example of the minimum (Oniguruma API)\r
- sample/names.c example of the named group callback.\r
- sample/encode.c example of some encodings.\r
- sample/listcap.c example of the capture history.\r
- sample/posix.c POSIX API sample.\r
- sample/sql.c example of the variable meta characters.\r
- (SQL-like pattern matching)\r
- sample/user_property.c example of user defined Unicode property.\r
-\r
-Test Programs\r
- sample/syntax.c Perl, Java and ASIS syntax test.\r
- sample/crnl.c --enable-crnl-as-line-terminator test\r
-\r
-\r
-Source Files\r
-\r
- oniguruma.h Oniguruma API header file. (public)\r
- onig-config.in configuration check program template.\r
-\r
- regenc.h character encodings framework header file.\r
- regint.h internal definitions\r
- regparse.h internal definitions for regparse.c and regcomp.c\r
- regcomp.c compiling and optimization functions\r
- regenc.c character encodings framework.\r
- regerror.c error message function\r
- regext.c extended API functions. (deluxe version API)\r
- regexec.c search and match functions\r
- regparse.c parsing functions.\r
- regsyntax.c pattern syntax functions and built-in syntax definitions.\r
- regtrav.c capture history tree data traverse functions.\r
- regversion.c version info function.\r
- st.h hash table functions header file\r
- st.c hash table functions\r
-\r
- oniggnu.h GNU regex API header file. (public)\r
- reggnu.c GNU regex API functions\r
-\r
- onigposix.h POSIX API header file. (public)\r
- regposerr.c POSIX error message function.\r
- regposix.c POSIX API functions.\r
-\r
- mktable.c character type table generator.\r
- ascii.c ASCII encoding.\r
- euc_jp.c EUC-JP encoding.\r
- euc_tw.c EUC-TW encoding.\r
- euc_kr.c EUC-KR, EUC-CN encoding.\r
- sjis.c Shift_JIS encoding.\r
- big5.c Big5 encoding.\r
- gb18030.c GB18030 encoding.\r
- koi8.c KOI8 encoding.\r
- koi8_r.c KOI8-R encoding.\r
- cp1251.c CP1251 encoding.\r
- iso8859_1.c ISO-8859-1 encoding. (Latin-1)\r
- iso8859_2.c ISO-8859-2 encoding. (Latin-2)\r
- iso8859_3.c ISO-8859-3 encoding. (Latin-3)\r
- iso8859_4.c ISO-8859-4 encoding. (Latin-4)\r
- iso8859_5.c ISO-8859-5 encoding. (Cyrillic)\r
- iso8859_6.c ISO-8859-6 encoding. (Arabic)\r
- iso8859_7.c ISO-8859-7 encoding. (Greek)\r
- iso8859_8.c ISO-8859-8 encoding. (Hebrew)\r
- iso8859_9.c ISO-8859-9 encoding. (Latin-5 or Turkish)\r
- iso8859_10.c ISO-8859-10 encoding. (Latin-6 or Nordic)\r
- iso8859_11.c ISO-8859-11 encoding. (Thai)\r
- iso8859_13.c ISO-8859-13 encoding. (Latin-7 or Baltic Rim)\r
- iso8859_14.c ISO-8859-14 encoding. (Latin-8 or Celtic)\r
- iso8859_15.c ISO-8859-15 encoding. (Latin-9 or West European with Euro)\r
- iso8859_16.c ISO-8859-16 encoding.\r
- (Latin-10 or South-Eastern European with Euro)\r
- utf8.c UTF-8 encoding.\r
- utf16_be.c UTF-16BE encoding.\r
- utf16_le.c UTF-16LE encoding.\r
- utf32_be.c UTF-32BE encoding.\r
- utf32_le.c UTF-32LE encoding.\r
- unicode.c common codes of Unicode encoding.\r
-\r
- win32/Makefile Makefile for Win32 (VC++)\r
- win32/config.h config.h for Win32\r
-\r
-\r
-and I'm thankful to Akinori MUSHA.\r
+++ /dev/null
-/**********************************************************************\r
- ascii.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h" /* for USE_CALLOUT */\r
-\r
-static int\r
-init(void)\r
-{\r
-#ifdef USE_CALLOUT\r
-\r
- int id;\r
- OnigEncoding enc;\r
- char* name;\r
- unsigned int args[4];\r
- OnigValue opts[4];\r
-\r
- enc = ONIG_ENCODING_ASCII;\r
-\r
- name = "FAIL"; BC0_P(name, fail);\r
- name = "MISMATCH"; BC0_P(name, mismatch);\r
-\r
- name = "MAX";\r
- args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- args[1] = ONIG_TYPE_CHAR;\r
- opts[0].c = 'X';\r
- BC_B_O(name, max, 2, args, 1, opts);\r
-\r
- name = "ERROR";\r
- args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;\r
- BC_P_O(name, error, 1, args, 1, opts);\r
-\r
- name = "COUNT";\r
- args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
- BC_B_O(name, count, 1, args, 1, opts);\r
-\r
- name = "TOTAL_COUNT";\r
- args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
- BC_B_O(name, total_count, 1, args, 1, opts);\r
-\r
- name = "CMP";\r
- args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- args[1] = ONIG_TYPE_STRING;\r
- args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- BC_P(name, cmp, 3, args);\r
-\r
-#endif /* USE_CALLOUT */\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-#if 0\r
-static int\r
-is_initialized(void)\r
-{\r
- /* Don't use this function */\r
- /* can't answer, because builtin callout entries removed in onig_end() */\r
- return 0;\r
-}\r
-#endif\r
-\r
-static int\r
-ascii_is_code_ctype(OnigCodePoint code, unsigned int ctype)\r
-{\r
- if (code < 128)\r
- return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);\r
- else\r
- return FALSE;\r
-}\r
-\r
-OnigEncodingType OnigEncodingASCII = {\r
- onigenc_single_byte_mbc_enc_len,\r
- "US-ASCII", /* name */\r
- 1, /* max enc length */\r
- 1, /* min enc length */\r
- onigenc_is_mbc_newline_0x0a,\r
- onigenc_single_byte_mbc_to_code,\r
- onigenc_single_byte_code_to_mbclen,\r
- onigenc_single_byte_code_to_mbc,\r
- onigenc_ascii_mbc_case_fold,\r
- onigenc_ascii_apply_all_case_fold,\r
- onigenc_ascii_get_case_fold_codes_by_str,\r
- onigenc_minimum_property_name_to_ctype,\r
- ascii_is_code_ctype,\r
- onigenc_not_support_get_ctype_code_range,\r
- onigenc_single_byte_left_adjust_char_head,\r
- onigenc_always_true_is_allowed_reverse_match,\r
- init,\r
- 0, /* is_initialized */\r
- onigenc_always_true_is_valid_mbc_string,\r
- ENC_FLAG_ASCII_COMPATIBLE|ENC_FLAG_SKIP_OFFSET_1,\r
- 0, 0\r
-};\r
+++ /dev/null
-/**********************************************************************\r
- onig_init.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2016-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-/* onig_init(): deprecated function */\r
-extern int\r
-onig_init(void)\r
-{\r
-#if 0\r
- OnigEncoding encs[] = {\r
- ONIG_ENCODING_UTF8\r
- };\r
-\r
- return onig_initialize(encs, sizeof(encs)/sizeof(encs[0]));\r
-#else\r
- return onig_initialize(0, 0);\r
-#endif\r
-}\r
+++ /dev/null
-#ifndef ONIGGNU_H\r
-#define ONIGGNU_H\r
-/**********************************************************************\r
- oniggnu.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2005 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "oniguruma.h"\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-enum {\r
- RE_MBCTYPE_ASCII = 0,\r
- RE_MBCTYPE_EUC = 1,\r
- RE_MBCTYPE_SJIS = 2,\r
- RE_MBCTYPE_UTF8 = 3\r
-};\r
-\r
-/* GNU regex options */\r
-#ifndef RE_NREGS\r
-#define RE_NREGS ONIG_NREGION\r
-#endif\r
-\r
-#define RE_OPTION_IGNORECASE ONIG_OPTION_IGNORECASE\r
-#define RE_OPTION_EXTENDED ONIG_OPTION_EXTEND\r
-#define RE_OPTION_MULTILINE ONIG_OPTION_MULTILINE\r
-#define RE_OPTION_SINGLELINE ONIG_OPTION_SINGLELINE\r
-#define RE_OPTION_LONGEST ONIG_OPTION_FIND_LONGEST\r
-#define RE_OPTION_POSIXLINE (RE_OPTION_MULTILINE|RE_OPTION_SINGLELINE)\r
-#define RE_OPTION_FIND_NOT_EMPTY ONIG_OPTION_FIND_NOT_EMPTY\r
-#define RE_OPTION_NEGATE_SINGLELINE ONIG_OPTION_NEGATE_SINGLELINE\r
-#define RE_OPTION_DONT_CAPTURE_GROUP ONIG_OPTION_DONT_CAPTURE_GROUP\r
-#define RE_OPTION_CAPTURE_GROUP ONIG_OPTION_CAPTURE_GROUP\r
-\r
-\r
-ONIG_EXTERN\r
-void re_mbcinit P_((int));\r
-ONIG_EXTERN\r
-int re_compile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf));\r
-ONIG_EXTERN\r
-int re_recompile_pattern P_((const char*, int, struct re_pattern_buffer*, char* err_buf));\r
-ONIG_EXTERN\r
-void re_free_pattern P_((struct re_pattern_buffer*));\r
-ONIG_EXTERN\r
-int re_adjust_startpos P_((struct re_pattern_buffer*, const char*, int, int, int));\r
-ONIG_EXTERN\r
-int re_search P_((struct re_pattern_buffer*, const char*, int, int, int, struct re_registers*));\r
-ONIG_EXTERN\r
-int re_match P_((struct re_pattern_buffer*, const char *, int, int, struct re_registers*));\r
-ONIG_EXTERN\r
-void re_set_casetable P_((const char*));\r
-ONIG_EXTERN\r
-void re_free_registers P_((struct re_registers*));\r
-ONIG_EXTERN\r
-int re_alloc_pattern P_((struct re_pattern_buffer**)); /* added */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif /* ONIGGNU_H */\r
+++ /dev/null
-#ifndef ONIGPOSIX_H\r
-#define ONIGPOSIX_H\r
-/**********************************************************************\r
- onigposix.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-#include "OnigurumaUefiPort.h"\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/* options */\r
-#define REG_ICASE (1<<0)\r
-#define REG_NEWLINE (1<<1)\r
-#define REG_NOTBOL (1<<2)\r
-#define REG_NOTEOL (1<<3)\r
-#define REG_EXTENDED (1<<4) /* if not set, Basic Onigular Expression */\r
-#define REG_NOSUB (1<<5)\r
-\r
-/* POSIX error codes */\r
-#define REG_NOMATCH 1\r
-#define REG_BADPAT 2\r
-#define REG_ECOLLATE 3\r
-#define REG_ECTYPE 4\r
-#define REG_EESCAPE 5\r
-#define REG_ESUBREG 6\r
-#define REG_EBRACK 7\r
-#define REG_EPAREN 8\r
-#define REG_EBRACE 9\r
-#define REG_BADBR 10\r
-#define REG_ERANGE 11\r
-#define REG_ESPACE 12\r
-#define REG_BADRPT 13\r
-\r
-/* extended error codes */\r
-#define REG_EONIG_INTERNAL 14\r
-#define REG_EONIG_BADWC 15\r
-#define REG_EONIG_BADARG 16\r
-/* #define REG_EONIG_THREAD 17 */\r
-\r
-/* character encodings (for reg_set_encoding()) */\r
-#define REG_POSIX_ENCODING_ASCII 0\r
-#define REG_POSIX_ENCODING_EUC_JP 1\r
-#define REG_POSIX_ENCODING_SJIS 2\r
-#define REG_POSIX_ENCODING_UTF8 3\r
-#define REG_POSIX_ENCODING_UTF16_BE 4\r
-#define REG_POSIX_ENCODING_UTF16_LE 5\r
-\r
-\r
-typedef int regoff_t;\r
-\r
-typedef struct {\r
- regoff_t rm_so;\r
- regoff_t rm_eo;\r
-} regmatch_t;\r
-\r
-/* POSIX regex_t */\r
-typedef struct {\r
- void* onig; /* Oniguruma regex_t* */\r
- size_t re_nsub;\r
- int comp_options;\r
-} regex_t;\r
-\r
-\r
-#ifndef P_\r
-#if defined(__STDC__) || defined(_WIN32)\r
-# define P_(args) args\r
-#else\r
-# define P_(args) ()\r
-#endif\r
-#endif\r
-\r
-#ifndef ONIG_EXTERN\r
-#if defined(_WIN32) && !defined(__GNUC__)\r
-#if defined(ONIGURUMA_EXPORT)\r
-#define ONIG_EXTERN extern __declspec(dllexport)\r
-#else\r
-#define ONIG_EXTERN extern __declspec(dllimport)\r
-#endif\r
-#endif\r
-#endif\r
-\r
-#ifndef ONIG_EXTERN\r
-#define ONIG_EXTERN extern\r
-#endif\r
-\r
-#ifndef ONIGURUMA_H\r
-typedef unsigned int OnigOptionType;\r
-\r
-/* syntax */\r
-typedef struct {\r
- unsigned int op;\r
- unsigned int op2;\r
- unsigned int behavior;\r
- OnigOptionType options; /* default option */\r
-} OnigSyntaxType;\r
-\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxJava;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma;\r
-\r
-/* predefined syntaxes (see regsyntax.c) */\r
-#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic)\r
-#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended)\r
-#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs)\r
-#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep)\r
-#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex)\r
-#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava)\r
-#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl)\r
-#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby)\r
-#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma)\r
-/* default syntax */\r
-#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax\r
-\r
-ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax;\r
-\r
-ONIG_EXTERN int onig_set_default_syntax P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from));\r
-ONIG_EXTERN const char* onig_version P_((void));\r
-ONIG_EXTERN const char* onig_copyright P_((void));\r
-ONIG_EXTERN int onig_end P_((void));\r
-\r
-#endif /* ONIGURUMA_H */\r
-\r
-\r
-ONIG_EXTERN int regcomp P_((regex_t* reg, const char* pat, int options));\r
-ONIG_EXTERN int regexec P_((regex_t* reg, const char* str, size_t nmatch, regmatch_t* matches, int options));\r
-ONIG_EXTERN void regfree P_((regex_t* reg));\r
-ONIG_EXTERN size_t regerror P_((int code, const regex_t* reg, char* buf, size_t size));\r
-\r
-/* extended API */\r
-ONIG_EXTERN void reg_set_encoding P_((int enc));\r
-ONIG_EXTERN int reg_name_to_group_numbers P_((regex_t* reg, const unsigned char* name, const unsigned char* name_end, int** nums));\r
-ONIG_EXTERN int reg_foreach_name P_((regex_t* reg, int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*), void* arg));\r
-ONIG_EXTERN int reg_number_of_names P_((regex_t* reg));\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif /* ONIGPOSIX_H */\r
+++ /dev/null
-#ifndef ONIGURUMA_H\r
-#define ONIGURUMA_H\r
-/**********************************************************************\r
- oniguruma.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "OnigurumaUefiPort.h"\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-#define ONIGURUMA\r
-#define ONIGURUMA_VERSION_MAJOR 6\r
-#define ONIGURUMA_VERSION_MINOR 9\r
-#define ONIGURUMA_VERSION_TEENY 3\r
-\r
-#define ONIGURUMA_VERSION_INT 60903\r
-\r
-#ifndef P_\r
-#if defined(__STDC__) || defined(_WIN32)\r
-# define P_(args) args\r
-#else\r
-# define P_(args) ()\r
-#endif\r
-#endif\r
-\r
-#ifndef PV_\r
-# define PV_(args) args\r
-#endif\r
-\r
-#ifndef ONIG_STATIC\r
-#ifndef ONIG_EXTERN\r
-#if defined(_WIN32) && !defined(__GNUC__)\r
-#if defined(ONIGURUMA_EXPORT)\r
-#define ONIG_EXTERN extern __declspec(dllexport)\r
-#else\r
-#define ONIG_EXTERN extern __declspec(dllimport)\r
-#endif\r
-#endif\r
-#endif\r
-\r
-#ifndef ONIG_EXTERN\r
-#define ONIG_EXTERN extern\r
-#endif\r
-#else\r
-#define ONIG_EXTERN extern\r
-#endif\r
-\r
-/* PART: character encoding */\r
-\r
-#ifndef ONIG_ESCAPE_UCHAR_COLLISION\r
-#define UChar OnigUChar\r
-#endif\r
-\r
-typedef unsigned int OnigCodePoint;\r
-typedef unsigned char OnigUChar;\r
-typedef unsigned int OnigCtype;\r
-typedef unsigned int OnigLen;\r
-\r
-#define ONIG_INFINITE_DISTANCE ~((OnigLen )0)\r
-\r
-typedef unsigned int OnigCaseFoldType; /* case fold flag */\r
-\r
-ONIG_EXTERN OnigCaseFoldType OnigDefaultCaseFoldFlag;\r
-\r
-/* #define ONIGENC_CASE_FOLD_HIRAGANA_KATAKANA (1<<1) */\r
-/* #define ONIGENC_CASE_FOLD_KATAKANA_WIDTH (1<<2) */\r
-#define ONIGENC_CASE_FOLD_TURKISH_AZERI (1<<20)\r
-#define INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR (1<<30)\r
-\r
-#define ONIGENC_CASE_FOLD_MIN INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR\r
-#define ONIGENC_CASE_FOLD_DEFAULT OnigDefaultCaseFoldFlag\r
-\r
-\r
-#define ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN 3\r
-#define ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM 13\r
-/* 13 => Unicode:0x1ffc */\r
-\r
-/* code range */\r
-#define ONIGENC_CODE_RANGE_NUM(range) ((int )range[0])\r
-#define ONIGENC_CODE_RANGE_FROM(range,i) range[((i)*2) + 1]\r
-#define ONIGENC_CODE_RANGE_TO(range,i) range[((i)*2) + 2]\r
-\r
-typedef struct {\r
- int byte_len; /* argument(original) character(s) byte length */\r
- int code_len; /* number of code */\r
- OnigCodePoint code[ONIGENC_MAX_COMP_CASE_FOLD_CODE_LEN];\r
-} OnigCaseFoldCodeItem;\r
-\r
-typedef struct {\r
- OnigCodePoint esc;\r
- OnigCodePoint anychar;\r
- OnigCodePoint anytime;\r
- OnigCodePoint zero_or_one_time;\r
- OnigCodePoint one_or_more_time;\r
- OnigCodePoint anychar_anytime;\r
-} OnigMetaCharTableType;\r
-\r
-typedef int (*OnigApplyAllCaseFoldFunc)(OnigCodePoint from, OnigCodePoint* to, int to_len, void* arg);\r
-\r
-typedef struct OnigEncodingTypeST {\r
- int (*mbc_enc_len)(const OnigUChar* p);\r
- const char* name;\r
- int max_enc_len;\r
- int min_enc_len;\r
- int (*is_mbc_newline)(const OnigUChar* p, const OnigUChar* end);\r
- OnigCodePoint (*mbc_to_code)(const OnigUChar* p, const OnigUChar* end);\r
- int (*code_to_mbclen)(OnigCodePoint code);\r
- int (*code_to_mbc)(OnigCodePoint code, OnigUChar *buf);\r
- int (*mbc_case_fold)(OnigCaseFoldType flag, const OnigUChar** pp, const OnigUChar* end, OnigUChar* to);\r
- int (*apply_all_case_fold)(OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg);\r
- int (*get_case_fold_codes_by_str)(OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem acs[]);\r
- int (*property_name_to_ctype)(struct OnigEncodingTypeST* enc, OnigUChar* p, OnigUChar* end);\r
- int (*is_code_ctype)(OnigCodePoint code, OnigCtype ctype);\r
- int (*get_ctype_code_range)(OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[]);\r
- OnigUChar* (*left_adjust_char_head)(const OnigUChar* start, const OnigUChar* p);\r
- int (*is_allowed_reverse_match)(const OnigUChar* p, const OnigUChar* end);\r
- int (*init)(void);\r
- int (*is_initialized)(void);\r
- int (*is_valid_mbc_string)(const OnigUChar* s, const OnigUChar* end);\r
- unsigned int flag;\r
- OnigCodePoint sb_range;\r
- int index;\r
-} OnigEncodingType;\r
-\r
-typedef OnigEncodingType* OnigEncoding;\r
-\r
-ONIG_EXTERN OnigEncodingType OnigEncodingASCII;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_1;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_2;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_3;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_4;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_5;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_6;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_7;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_8;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_9;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_10;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_11;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_13;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_14;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_15;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingISO_8859_16;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingUTF8;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_BE;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingUTF16_LE;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_BE;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingUTF32_LE;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingEUC_JP;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingEUC_TW;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingEUC_KR;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingEUC_CN;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingSJIS;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingKOI8;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingKOI8_R;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingCP1251;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingBIG5;\r
-ONIG_EXTERN OnigEncodingType OnigEncodingGB18030;\r
-\r
-#define ONIG_ENCODING_ASCII (&OnigEncodingASCII)\r
-#define ONIG_ENCODING_ISO_8859_1 (&OnigEncodingISO_8859_1)\r
-#define ONIG_ENCODING_ISO_8859_2 (&OnigEncodingISO_8859_2)\r
-#define ONIG_ENCODING_ISO_8859_3 (&OnigEncodingISO_8859_3)\r
-#define ONIG_ENCODING_ISO_8859_4 (&OnigEncodingISO_8859_4)\r
-#define ONIG_ENCODING_ISO_8859_5 (&OnigEncodingISO_8859_5)\r
-#define ONIG_ENCODING_ISO_8859_6 (&OnigEncodingISO_8859_6)\r
-#define ONIG_ENCODING_ISO_8859_7 (&OnigEncodingISO_8859_7)\r
-#define ONIG_ENCODING_ISO_8859_8 (&OnigEncodingISO_8859_8)\r
-#define ONIG_ENCODING_ISO_8859_9 (&OnigEncodingISO_8859_9)\r
-#define ONIG_ENCODING_ISO_8859_10 (&OnigEncodingISO_8859_10)\r
-#define ONIG_ENCODING_ISO_8859_11 (&OnigEncodingISO_8859_11)\r
-#define ONIG_ENCODING_ISO_8859_13 (&OnigEncodingISO_8859_13)\r
-#define ONIG_ENCODING_ISO_8859_14 (&OnigEncodingISO_8859_14)\r
-#define ONIG_ENCODING_ISO_8859_15 (&OnigEncodingISO_8859_15)\r
-#define ONIG_ENCODING_ISO_8859_16 (&OnigEncodingISO_8859_16)\r
-#define ONIG_ENCODING_UTF8 (&OnigEncodingUTF8)\r
-#define ONIG_ENCODING_UTF16_BE (&OnigEncodingUTF16_BE)\r
-#define ONIG_ENCODING_UTF16_LE (&OnigEncodingUTF16_LE)\r
-#define ONIG_ENCODING_UTF32_BE (&OnigEncodingUTF32_BE)\r
-#define ONIG_ENCODING_UTF32_LE (&OnigEncodingUTF32_LE)\r
-#define ONIG_ENCODING_EUC_JP (&OnigEncodingEUC_JP)\r
-#define ONIG_ENCODING_EUC_TW (&OnigEncodingEUC_TW)\r
-#define ONIG_ENCODING_EUC_KR (&OnigEncodingEUC_KR)\r
-#define ONIG_ENCODING_EUC_CN (&OnigEncodingEUC_CN)\r
-#define ONIG_ENCODING_SJIS (&OnigEncodingSJIS)\r
-#define ONIG_ENCODING_KOI8 (&OnigEncodingKOI8)\r
-#define ONIG_ENCODING_KOI8_R (&OnigEncodingKOI8_R)\r
-#define ONIG_ENCODING_CP1251 (&OnigEncodingCP1251)\r
-#define ONIG_ENCODING_BIG5 (&OnigEncodingBIG5)\r
-#define ONIG_ENCODING_GB18030 (&OnigEncodingGB18030)\r
-\r
-#define ONIG_ENCODING_UNDEF ((OnigEncoding )0)\r
-\r
-\r
-/* work size */\r
-#define ONIGENC_CODE_TO_MBC_MAXLEN 7\r
-#define ONIGENC_MBC_CASE_FOLD_MAXLEN 18\r
-/* 18: 6(max-byte) * 3(case-fold chars) */\r
-\r
-/* character types */\r
-typedef enum {\r
- ONIGENC_CTYPE_NEWLINE = 0,\r
- ONIGENC_CTYPE_ALPHA = 1,\r
- ONIGENC_CTYPE_BLANK = 2,\r
- ONIGENC_CTYPE_CNTRL = 3,\r
- ONIGENC_CTYPE_DIGIT = 4,\r
- ONIGENC_CTYPE_GRAPH = 5,\r
- ONIGENC_CTYPE_LOWER = 6,\r
- ONIGENC_CTYPE_PRINT = 7,\r
- ONIGENC_CTYPE_PUNCT = 8,\r
- ONIGENC_CTYPE_SPACE = 9,\r
- ONIGENC_CTYPE_UPPER = 10,\r
- ONIGENC_CTYPE_XDIGIT = 11,\r
- ONIGENC_CTYPE_WORD = 12,\r
- ONIGENC_CTYPE_ALNUM = 13, /* alpha || digit */\r
- ONIGENC_CTYPE_ASCII = 14\r
-} OnigEncCtype;\r
-\r
-#define ONIGENC_MAX_STD_CTYPE ONIGENC_CTYPE_ASCII\r
-\r
-\r
-#define onig_enc_len(enc,p,end) ONIGENC_MBC_ENC_LEN(enc,p)\r
-\r
-#define ONIGENC_IS_UNDEF(enc) ((enc) == ONIG_ENCODING_UNDEF)\r
-#define ONIGENC_IS_SINGLEBYTE(enc) (ONIGENC_MBC_MAXLEN(enc) == 1)\r
-#define ONIGENC_IS_MBC_HEAD(enc,p) (ONIGENC_MBC_ENC_LEN(enc,p) != 1)\r
-#define ONIGENC_IS_MBC_ASCII(p) (*(p) < 128)\r
-#define ONIGENC_IS_CODE_ASCII(code) ((code) < 128)\r
-#define ONIGENC_IS_MBC_WORD(enc,s,end) \\r
- ONIGENC_IS_CODE_WORD(enc,ONIGENC_MBC_TO_CODE(enc,s,end))\r
-#define ONIGENC_IS_MBC_WORD_ASCII(enc,s,end) onigenc_is_mbc_word_ascii(enc,s,end)\r
-\r
-#define ONIGENC_NAME(enc) ((enc)->name)\r
-\r
-#define ONIGENC_MBC_CASE_FOLD(enc,flag,pp,end,buf) \\r
- (enc)->mbc_case_fold(flag,(const OnigUChar** )pp,end,buf)\r
-#define ONIGENC_IS_ALLOWED_REVERSE_MATCH(enc,s,end) \\r
- (enc)->is_allowed_reverse_match(s,end)\r
-#define ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc,start,s) \\r
- (enc)->left_adjust_char_head(start, s)\r
-#define ONIGENC_IS_VALID_MBC_STRING(enc,s,end) \\r
- (enc)->is_valid_mbc_string(s,end)\r
-#define ONIGENC_APPLY_ALL_CASE_FOLD(enc,case_fold_flag,f,arg) \\r
- (enc)->apply_all_case_fold(case_fold_flag,f,arg)\r
-#define ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc,case_fold_flag,p,end,acs) \\r
- (enc)->get_case_fold_codes_by_str(case_fold_flag,p,end,acs)\r
-#define ONIGENC_STEP_BACK(enc,start,s,n) \\r
- onigenc_step_back((enc),(start),(s),(n))\r
-\r
-#define ONIGENC_MBC_ENC_LEN(enc,p) (enc)->mbc_enc_len(p)\r
-#define ONIGENC_MBC_MAXLEN(enc) ((enc)->max_enc_len)\r
-#define ONIGENC_MBC_MAXLEN_DIST(enc) ONIGENC_MBC_MAXLEN(enc)\r
-#define ONIGENC_MBC_MINLEN(enc) ((enc)->min_enc_len)\r
-#define ONIGENC_IS_MBC_NEWLINE(enc,p,end) (enc)->is_mbc_newline((p),(end))\r
-#define ONIGENC_MBC_TO_CODE(enc,p,end) (enc)->mbc_to_code((p),(end))\r
-#define ONIGENC_CODE_TO_MBCLEN(enc,code) (enc)->code_to_mbclen(code)\r
-#define ONIGENC_CODE_TO_MBC(enc,code,buf) (enc)->code_to_mbc(code,buf)\r
-#define ONIGENC_PROPERTY_NAME_TO_CTYPE(enc,p,end) \\r
- (enc)->property_name_to_ctype(enc,p,end)\r
-\r
-#define ONIGENC_IS_CODE_CTYPE(enc,code,ctype) (enc)->is_code_ctype(code,ctype)\r
-\r
-#define ONIGENC_IS_CODE_NEWLINE(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_NEWLINE)\r
-#define ONIGENC_IS_CODE_GRAPH(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_GRAPH)\r
-#define ONIGENC_IS_CODE_PRINT(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PRINT)\r
-#define ONIGENC_IS_CODE_ALNUM(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALNUM)\r
-#define ONIGENC_IS_CODE_ALPHA(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_ALPHA)\r
-#define ONIGENC_IS_CODE_LOWER(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_LOWER)\r
-#define ONIGENC_IS_CODE_UPPER(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_UPPER)\r
-#define ONIGENC_IS_CODE_CNTRL(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_CNTRL)\r
-#define ONIGENC_IS_CODE_PUNCT(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_PUNCT)\r
-#define ONIGENC_IS_CODE_SPACE(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_SPACE)\r
-#define ONIGENC_IS_CODE_BLANK(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_BLANK)\r
-#define ONIGENC_IS_CODE_DIGIT(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_DIGIT)\r
-#define ONIGENC_IS_CODE_XDIGIT(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_XDIGIT)\r
-#define ONIGENC_IS_CODE_WORD(enc,code) \\r
- ONIGENC_IS_CODE_CTYPE(enc,code,ONIGENC_CTYPE_WORD)\r
-\r
-#define ONIGENC_GET_CTYPE_CODE_RANGE(enc,ctype,sbout,ranges) \\r
- (enc)->get_ctype_code_range(ctype,sbout,ranges)\r
-\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_step_back P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, int n));\r
-\r
-\r
-/* encoding API */\r
-ONIG_EXTERN\r
-int onigenc_init P_((void));\r
-ONIG_EXTERN\r
-int onig_initialize_encoding P_((OnigEncoding enc));\r
-ONIG_EXTERN\r
-int onigenc_set_default_encoding P_((OnigEncoding enc));\r
-ONIG_EXTERN\r
-OnigEncoding onigenc_get_default_encoding P_((void));\r
-ONIG_EXTERN\r
-void onigenc_set_default_caseconv_table P_((const OnigUChar* table));\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_get_right_adjust_char_head_with_prev P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s, const OnigUChar** prev));\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_get_prev_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_get_left_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_get_right_adjust_char_head P_((OnigEncoding enc, const OnigUChar* start, const OnigUChar* s));\r
-ONIG_EXTERN\r
-int onigenc_strlen P_((OnigEncoding enc, const OnigUChar* p, const OnigUChar* end));\r
-ONIG_EXTERN\r
-int onigenc_strlen_null P_((OnigEncoding enc, const OnigUChar* p));\r
-ONIG_EXTERN\r
-int onigenc_str_bytelen_null P_((OnigEncoding enc, const OnigUChar* p));\r
-ONIG_EXTERN\r
-int onigenc_is_valid_mbc_string P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end));\r
-ONIG_EXTERN\r
-OnigUChar* onigenc_strdup P_((OnigEncoding enc, const OnigUChar* s, const OnigUChar* end));\r
-\r
-\r
-/* PART: regular expression */\r
-\r
-/* config parameters */\r
-#define ONIG_NREGION 10\r
-#define ONIG_MAX_CAPTURE_NUM 2147483647 /* 2**31 - 1 */\r
-#define ONIG_MAX_BACKREF_NUM 1000\r
-#define ONIG_MAX_REPEAT_NUM 100000\r
-#define ONIG_MAX_MULTI_BYTE_RANGES_NUM 10000\r
-/* constants */\r
-#define ONIG_MAX_ERROR_MESSAGE_LEN 90\r
-\r
-typedef unsigned int OnigOptionType;\r
-\r
-#define ONIG_OPTION_DEFAULT ONIG_OPTION_NONE\r
-\r
-/* options */\r
-#define ONIG_OPTION_NONE 0U\r
-/* options (compile time) */\r
-#define ONIG_OPTION_IGNORECASE 1U\r
-#define ONIG_OPTION_EXTEND (ONIG_OPTION_IGNORECASE << 1)\r
-#define ONIG_OPTION_MULTILINE (ONIG_OPTION_EXTEND << 1)\r
-#define ONIG_OPTION_SINGLELINE (ONIG_OPTION_MULTILINE << 1)\r
-#define ONIG_OPTION_FIND_LONGEST (ONIG_OPTION_SINGLELINE << 1)\r
-#define ONIG_OPTION_FIND_NOT_EMPTY (ONIG_OPTION_FIND_LONGEST << 1)\r
-#define ONIG_OPTION_NEGATE_SINGLELINE (ONIG_OPTION_FIND_NOT_EMPTY << 1)\r
-#define ONIG_OPTION_DONT_CAPTURE_GROUP (ONIG_OPTION_NEGATE_SINGLELINE << 1)\r
-#define ONIG_OPTION_CAPTURE_GROUP (ONIG_OPTION_DONT_CAPTURE_GROUP << 1)\r
-/* options (search time) */\r
-#define ONIG_OPTION_NOTBOL (ONIG_OPTION_CAPTURE_GROUP << 1)\r
-#define ONIG_OPTION_NOTEOL (ONIG_OPTION_NOTBOL << 1)\r
-#define ONIG_OPTION_POSIX_REGION (ONIG_OPTION_NOTEOL << 1)\r
-#define ONIG_OPTION_CHECK_VALIDITY_OF_STRING (ONIG_OPTION_POSIX_REGION << 1)\r
-/* #define ONIG_OPTION_CRLF_AS_LINE_SEPARATOR (ONIG_OPTION_CHECK_VALIDITY_OF_STRING << 1) */\r
-/* options (compile time) */\r
-#define ONIG_OPTION_WORD_IS_ASCII (ONIG_OPTION_CHECK_VALIDITY_OF_STRING << 4)\r
-#define ONIG_OPTION_DIGIT_IS_ASCII (ONIG_OPTION_WORD_IS_ASCII << 1)\r
-#define ONIG_OPTION_SPACE_IS_ASCII (ONIG_OPTION_DIGIT_IS_ASCII << 1)\r
-#define ONIG_OPTION_POSIX_IS_ASCII (ONIG_OPTION_SPACE_IS_ASCII << 1)\r
-#define ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER (ONIG_OPTION_POSIX_IS_ASCII << 1)\r
-#define ONIG_OPTION_TEXT_SEGMENT_WORD (ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER << 1)\r
-\r
-#define ONIG_OPTION_MAXBIT ONIG_OPTION_TEXT_SEGMENT_WORD /* limit */\r
-\r
-#define ONIG_OPTION_ON(options,regopt) ((options) |= (regopt))\r
-#define ONIG_OPTION_OFF(options,regopt) ((options) &= ~(regopt))\r
-#define ONIG_IS_OPTION_ON(options,option) ((options) & (option))\r
-\r
-/* syntax */\r
-typedef struct {\r
- unsigned int op;\r
- unsigned int op2;\r
- unsigned int behavior;\r
- OnigOptionType options; /* default option */\r
- OnigMetaCharTableType meta_char_table;\r
-} OnigSyntaxType;\r
-\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxASIS;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixBasic;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPosixExtended;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxEmacs;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxGrep;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxGnuRegex;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxJava;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxPerl_NG;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxRuby;\r
-ONIG_EXTERN OnigSyntaxType OnigSyntaxOniguruma;\r
-\r
-/* predefined syntaxes (see regsyntax.c) */\r
-#define ONIG_SYNTAX_ASIS (&OnigSyntaxASIS)\r
-#define ONIG_SYNTAX_POSIX_BASIC (&OnigSyntaxPosixBasic)\r
-#define ONIG_SYNTAX_POSIX_EXTENDED (&OnigSyntaxPosixExtended)\r
-#define ONIG_SYNTAX_EMACS (&OnigSyntaxEmacs)\r
-#define ONIG_SYNTAX_GREP (&OnigSyntaxGrep)\r
-#define ONIG_SYNTAX_GNU_REGEX (&OnigSyntaxGnuRegex)\r
-#define ONIG_SYNTAX_JAVA (&OnigSyntaxJava)\r
-#define ONIG_SYNTAX_PERL (&OnigSyntaxPerl)\r
-#define ONIG_SYNTAX_PERL_NG (&OnigSyntaxPerl_NG)\r
-#define ONIG_SYNTAX_RUBY (&OnigSyntaxRuby)\r
-#define ONIG_SYNTAX_ONIGURUMA (&OnigSyntaxOniguruma)\r
-\r
-/* default syntax */\r
-ONIG_EXTERN OnigSyntaxType* OnigDefaultSyntax;\r
-#define ONIG_SYNTAX_DEFAULT OnigDefaultSyntax\r
-\r
-/* syntax (operators) */\r
-#define ONIG_SYN_OP_VARIABLE_META_CHARACTERS (1U<<0)\r
-#define ONIG_SYN_OP_DOT_ANYCHAR (1U<<1) /* . */\r
-#define ONIG_SYN_OP_ASTERISK_ZERO_INF (1U<<2) /* * */\r
-#define ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF (1U<<3)\r
-#define ONIG_SYN_OP_PLUS_ONE_INF (1U<<4) /* + */\r
-#define ONIG_SYN_OP_ESC_PLUS_ONE_INF (1U<<5)\r
-#define ONIG_SYN_OP_QMARK_ZERO_ONE (1U<<6) /* ? */\r
-#define ONIG_SYN_OP_ESC_QMARK_ZERO_ONE (1U<<7)\r
-#define ONIG_SYN_OP_BRACE_INTERVAL (1U<<8) /* {lower,upper} */\r
-#define ONIG_SYN_OP_ESC_BRACE_INTERVAL (1U<<9) /* \{lower,upper\} */\r
-#define ONIG_SYN_OP_VBAR_ALT (1U<<10) /* | */\r
-#define ONIG_SYN_OP_ESC_VBAR_ALT (1U<<11) /* \| */\r
-#define ONIG_SYN_OP_LPAREN_SUBEXP (1U<<12) /* (...) */\r
-#define ONIG_SYN_OP_ESC_LPAREN_SUBEXP (1U<<13) /* \(...\) */\r
-#define ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR (1U<<14) /* \A, \Z, \z */\r
-#define ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR (1U<<15) /* \G */\r
-#define ONIG_SYN_OP_DECIMAL_BACKREF (1U<<16) /* \num */\r
-#define ONIG_SYN_OP_BRACKET_CC (1U<<17) /* [...] */\r
-#define ONIG_SYN_OP_ESC_W_WORD (1U<<18) /* \w, \W */\r
-#define ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END (1U<<19) /* \<. \> */\r
-#define ONIG_SYN_OP_ESC_B_WORD_BOUND (1U<<20) /* \b, \B */\r
-#define ONIG_SYN_OP_ESC_S_WHITE_SPACE (1U<<21) /* \s, \S */\r
-#define ONIG_SYN_OP_ESC_D_DIGIT (1U<<22) /* \d, \D */\r
-#define ONIG_SYN_OP_LINE_ANCHOR (1U<<23) /* ^, $ */\r
-#define ONIG_SYN_OP_POSIX_BRACKET (1U<<24) /* [:xxxx:] */\r
-#define ONIG_SYN_OP_QMARK_NON_GREEDY (1U<<25) /* ??,*?,+?,{n,m}? */\r
-#define ONIG_SYN_OP_ESC_CONTROL_CHARS (1U<<26) /* \n,\r,\t,\a ... */\r
-#define ONIG_SYN_OP_ESC_C_CONTROL (1U<<27) /* \cx */\r
-#define ONIG_SYN_OP_ESC_OCTAL3 (1U<<28) /* \OOO */\r
-#define ONIG_SYN_OP_ESC_X_HEX2 (1U<<29) /* \xHH */\r
-#define ONIG_SYN_OP_ESC_X_BRACE_HEX8 (1U<<30) /* \x{7HHHHHHH} */\r
-#define ONIG_SYN_OP_ESC_O_BRACE_OCTAL (1U<<31) /* \o{1OOOOOOOOOO} */\r
-\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE (1U<<0) /* \Q...\E */\r
-#define ONIG_SYN_OP2_QMARK_GROUP_EFFECT (1U<<1) /* (?...) */\r
-#define ONIG_SYN_OP2_OPTION_PERL (1U<<2) /* (?imsx),(?-imsx) */\r
-#define ONIG_SYN_OP2_OPTION_RUBY (1U<<3) /* (?imx), (?-imx) */\r
-#define ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT (1U<<4) /* ?+,*+,++ */\r
-#define ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL (1U<<5) /* {n,m}+ */\r
-#define ONIG_SYN_OP2_CCLASS_SET_OP (1U<<6) /* [...&&..[..]..] */\r
-#define ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP (1U<<7) /* (?<name>...) */\r
-#define ONIG_SYN_OP2_ESC_K_NAMED_BACKREF (1U<<8) /* \k<name> */\r
-#define ONIG_SYN_OP2_ESC_G_SUBEXP_CALL (1U<<9) /* \g<name>, \g<n> */\r
-#define ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY (1U<<10) /* (?@..),(?@<x>..) */\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL (1U<<11) /* \C-x */\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META (1U<<12) /* \M-x */\r
-#define ONIG_SYN_OP2_ESC_V_VTAB (1U<<13) /* \v as VTAB */\r
-#define ONIG_SYN_OP2_ESC_U_HEX4 (1U<<14) /* \uHHHH */\r
-#define ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR (1U<<15) /* \`, \' */\r
-#define ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY (1U<<16) /* \p{...}, \P{...} */\r
-#define ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT (1U<<17) /* \p{^..}, \P{^..} */\r
-/* #define ONIG_SYN_OP2_CHAR_PROPERTY_PREFIX_IS (1U<<18) */\r
-#define ONIG_SYN_OP2_ESC_H_XDIGIT (1U<<19) /* \h, \H */\r
-#define ONIG_SYN_OP2_INEFFECTIVE_ESCAPE (1U<<20) /* \ */\r
-#define ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE (1U<<21) /* (?(n)) (?(...)...|...) */\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP (1U<<22) /* \K */\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE (1U<<23) /* \R \r\n else [\x0a-\x0d] */\r
-#define ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT (1U<<24) /* \N (?-m:.), \O (?m:.) */\r
-#define ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP (1U<<25) /* (?~...) */\r
-#define ONIG_SYN_OP2_ESC_X_Y_GRAPHEME_CLUSTER (1U<<26) /* obsoleted: use next */\r
-#define ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT (1U<<26) /* \X \y \Y */\r
-#define ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL (1U<<27) /* (?R), (?&name)... */\r
-#define ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS (1U<<28) /* (?{...}) (?{{...}}) */\r
-#define ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME (1U<<29) /* (*name) (*name{a,..}) */\r
-#define ONIG_SYN_OP2_OPTION_ONIGURUMA (1U<<30) /* (?imxWDSPy) */\r
-\r
-/* syntax (behavior) */\r
-#define ONIG_SYN_CONTEXT_INDEP_ANCHORS (1U<<31) /* not implemented */\r
-#define ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS (1U<<0) /* ?, *, +, {n,m} */\r
-#define ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS (1U<<1) /* error or ignore */\r
-#define ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP (1U<<2) /* ...)... */\r
-#define ONIG_SYN_ALLOW_INVALID_INTERVAL (1U<<3) /* {??? */\r
-#define ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV (1U<<4) /* {,n} => {0,n} */\r
-#define ONIG_SYN_STRICT_CHECK_BACKREF (1U<<5) /* /(\1)/,/\1()/ ..*/\r
-#define ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND (1U<<6) /* (?<=a|bc) */\r
-#define ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP (1U<<7) /* see doc/RE */\r
-#define ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME (1U<<8) /* (?<x>)(?<x>) */\r
-#define ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY (1U<<9) /* a{n}?=(?:a{n})? */\r
-\r
-/* syntax (behavior) in char class [...] */\r
-#define ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC (1U<<20) /* [^...] */\r
-#define ONIG_SYN_BACKSLASH_ESCAPE_IN_CC (1U<<21) /* [..\w..] etc.. */\r
-#define ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC (1U<<22)\r
-#define ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC (1U<<23) /* [0-9-a]=[0-9\-a] */\r
-#define ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC (1U<<26)\r
-/* syntax (behavior) warning */\r
-#define ONIG_SYN_WARN_CC_OP_NOT_ESCAPED (1U<<24) /* [,-,] */\r
-#define ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT (1U<<25) /* (?:a*)+ */\r
-\r
-/* meta character specifiers (onig_set_meta_char()) */\r
-#define ONIG_META_CHAR_ESCAPE 0\r
-#define ONIG_META_CHAR_ANYCHAR 1\r
-#define ONIG_META_CHAR_ANYTIME 2\r
-#define ONIG_META_CHAR_ZERO_OR_ONE_TIME 3\r
-#define ONIG_META_CHAR_ONE_OR_MORE_TIME 4\r
-#define ONIG_META_CHAR_ANYCHAR_ANYTIME 5\r
-\r
-#define ONIG_INEFFECTIVE_META_CHAR 0\r
-\r
-/* error codes */\r
-#define ONIG_IS_PATTERN_ERROR(ecode) ((ecode) <= -100 && (ecode) > -1000)\r
-/* normal return */\r
-#define ONIG_NORMAL 0\r
-#define ONIG_MISMATCH -1\r
-#define ONIG_NO_SUPPORT_CONFIG -2\r
-#define ONIG_ABORT -3\r
-\r
-/* internal error */\r
-#define ONIGERR_MEMORY -5\r
-#define ONIGERR_TYPE_BUG -6\r
-#define ONIGERR_PARSER_BUG -11\r
-#define ONIGERR_STACK_BUG -12\r
-#define ONIGERR_UNDEFINED_BYTECODE -13\r
-#define ONIGERR_UNEXPECTED_BYTECODE -14\r
-#define ONIGERR_MATCH_STACK_LIMIT_OVER -15\r
-#define ONIGERR_PARSE_DEPTH_LIMIT_OVER -16\r
-#define ONIGERR_RETRY_LIMIT_IN_MATCH_OVER -17\r
-#define ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED -21\r
-#define ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR -22\r
-#define ONIGERR_FAIL_TO_INITIALIZE -23\r
-/* general error */\r
-#define ONIGERR_INVALID_ARGUMENT -30\r
-/* syntax error */\r
-#define ONIGERR_END_PATTERN_AT_LEFT_BRACE -100\r
-#define ONIGERR_END_PATTERN_AT_LEFT_BRACKET -101\r
-#define ONIGERR_EMPTY_CHAR_CLASS -102\r
-#define ONIGERR_PREMATURE_END_OF_CHAR_CLASS -103\r
-#define ONIGERR_END_PATTERN_AT_ESCAPE -104\r
-#define ONIGERR_END_PATTERN_AT_META -105\r
-#define ONIGERR_END_PATTERN_AT_CONTROL -106\r
-#define ONIGERR_META_CODE_SYNTAX -108\r
-#define ONIGERR_CONTROL_CODE_SYNTAX -109\r
-#define ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE -110\r
-#define ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE -111\r
-#define ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS -112\r
-#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED -113\r
-#define ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID -114\r
-#define ONIGERR_NESTED_REPEAT_OPERATOR -115\r
-#define ONIGERR_UNMATCHED_CLOSE_PARENTHESIS -116\r
-#define ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS -117\r
-#define ONIGERR_END_PATTERN_IN_GROUP -118\r
-#define ONIGERR_UNDEFINED_GROUP_OPTION -119\r
-#define ONIGERR_INVALID_POSIX_BRACKET_TYPE -121\r
-#define ONIGERR_INVALID_LOOK_BEHIND_PATTERN -122\r
-#define ONIGERR_INVALID_REPEAT_RANGE_PATTERN -123\r
-/* values error (syntax error) */\r
-#define ONIGERR_TOO_BIG_NUMBER -200\r
-#define ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE -201\r
-#define ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE -202\r
-#define ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS -203\r
-#define ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE -204\r
-#define ONIGERR_TOO_MANY_MULTI_BYTE_RANGES -205\r
-#define ONIGERR_TOO_SHORT_MULTI_BYTE_STRING -206\r
-#define ONIGERR_TOO_BIG_BACKREF_NUMBER -207\r
-#define ONIGERR_INVALID_BACKREF -208\r
-#define ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED -209\r
-#define ONIGERR_TOO_MANY_CAPTURES -210\r
-#define ONIGERR_TOO_LONG_WIDE_CHAR_VALUE -212\r
-#define ONIGERR_EMPTY_GROUP_NAME -214\r
-#define ONIGERR_INVALID_GROUP_NAME -215\r
-#define ONIGERR_INVALID_CHAR_IN_GROUP_NAME -216\r
-#define ONIGERR_UNDEFINED_NAME_REFERENCE -217\r
-#define ONIGERR_UNDEFINED_GROUP_REFERENCE -218\r
-#define ONIGERR_MULTIPLEX_DEFINED_NAME -219\r
-#define ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL -220\r
-#define ONIGERR_NEVER_ENDING_RECURSION -221\r
-#define ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY -222\r
-#define ONIGERR_INVALID_CHAR_PROPERTY_NAME -223\r
-#define ONIGERR_INVALID_IF_ELSE_SYNTAX -224\r
-#define ONIGERR_INVALID_ABSENT_GROUP_PATTERN -225\r
-#define ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN -226\r
-#define ONIGERR_INVALID_CALLOUT_PATTERN -227\r
-#define ONIGERR_INVALID_CALLOUT_NAME -228\r
-#define ONIGERR_UNDEFINED_CALLOUT_NAME -229\r
-#define ONIGERR_INVALID_CALLOUT_BODY -230\r
-#define ONIGERR_INVALID_CALLOUT_TAG_NAME -231\r
-#define ONIGERR_INVALID_CALLOUT_ARG -232\r
-#define ONIGERR_INVALID_CODE_POINT_VALUE -400\r
-#define ONIGERR_INVALID_WIDE_CHAR_VALUE -400\r
-#define ONIGERR_TOO_BIG_WIDE_CHAR_VALUE -401\r
-#define ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION -402\r
-#define ONIGERR_INVALID_COMBINATION_OF_OPTIONS -403\r
-#define ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS -404\r
-#define ONIGERR_TOO_LONG_PROPERTY_NAME -405\r
-#define ONIGERR_LIBRARY_IS_NOT_INITIALIZED -500\r
-\r
-/* errors related to thread */\r
-/* #define ONIGERR_OVER_THREAD_PASS_LIMIT_COUNT -1001 */\r
-\r
-\r
-/* must be smaller than MEM_STATUS_BITS_NUM (unsigned int * 8) */\r
-#define ONIG_MAX_CAPTURE_HISTORY_GROUP 31\r
-#define ONIG_IS_CAPTURE_HISTORY_GROUP(r, i) \\r
- ((i) <= ONIG_MAX_CAPTURE_HISTORY_GROUP && (r)->list && (r)->list[i])\r
-\r
-typedef struct OnigCaptureTreeNodeStruct {\r
- int group; /* group number */\r
- int beg;\r
- int end;\r
- int allocated;\r
- int num_childs;\r
- struct OnigCaptureTreeNodeStruct** childs;\r
-} OnigCaptureTreeNode;\r
-\r
-/* match result region type */\r
-struct re_registers {\r
- int allocated;\r
- int num_regs;\r
- int* beg;\r
- int* end;\r
- /* extended */\r
- OnigCaptureTreeNode* history_root; /* capture history tree root */\r
-};\r
-\r
-/* capture tree traverse */\r
-#define ONIG_TRAVERSE_CALLBACK_AT_FIRST 1\r
-#define ONIG_TRAVERSE_CALLBACK_AT_LAST 2\r
-#define ONIG_TRAVERSE_CALLBACK_AT_BOTH \\r
- ( ONIG_TRAVERSE_CALLBACK_AT_FIRST | ONIG_TRAVERSE_CALLBACK_AT_LAST )\r
-\r
-\r
-#define ONIG_REGION_NOTPOS -1\r
-\r
-typedef struct re_registers OnigRegion;\r
-\r
-typedef struct {\r
- OnigEncoding enc;\r
- OnigUChar* par;\r
- OnigUChar* par_end;\r
-} OnigErrorInfo;\r
-\r
-typedef struct {\r
- int lower;\r
- int upper;\r
-} OnigRepeatRange;\r
-\r
-typedef void (*OnigWarnFunc) P_((const char* s));\r
-extern void onig_null_warn P_((const char* s));\r
-#define ONIG_NULL_WARN onig_null_warn\r
-\r
-#define ONIG_CHAR_TABLE_SIZE 256\r
-\r
-struct re_pattern_buffer;\r
-typedef struct re_pattern_buffer OnigRegexType;\r
-typedef OnigRegexType* OnigRegex;\r
-\r
-#ifndef ONIG_ESCAPE_REGEX_T_COLLISION\r
- typedef OnigRegexType regex_t;\r
-#endif\r
-\r
-\r
-typedef struct {\r
- int num_of_elements;\r
- OnigEncoding pattern_enc;\r
- OnigEncoding target_enc;\r
- OnigSyntaxType* syntax;\r
- OnigOptionType option;\r
- OnigCaseFoldType case_fold_flag;\r
-} OnigCompileInfo;\r
-\r
-\r
-/* types for callout */\r
-typedef enum {\r
- ONIG_CALLOUT_IN_PROGRESS = 1, /* 1<<0 */\r
- ONIG_CALLOUT_IN_RETRACTION = 2 /* 1<<1 */\r
-} OnigCalloutIn;\r
-\r
-#define ONIG_CALLOUT_IN_BOTH (ONIG_CALLOUT_IN_PROGRESS | ONIG_CALLOUT_IN_RETRACTION)\r
-\r
-typedef enum {\r
- ONIG_CALLOUT_OF_CONTENTS = 0,\r
- ONIG_CALLOUT_OF_NAME = 1\r
-} OnigCalloutOf;\r
-\r
-typedef enum {\r
- ONIG_CALLOUT_TYPE_SINGLE = 0,\r
- ONIG_CALLOUT_TYPE_START_CALL = 1,\r
- ONIG_CALLOUT_TYPE_BOTH_CALL = 2,\r
- ONIG_CALLOUT_TYPE_START_MARK_END_CALL = 3,\r
-} OnigCalloutType;\r
-\r
-\r
-#define ONIG_NON_NAME_ID -1\r
-#define ONIG_NON_CALLOUT_NUM 0\r
-\r
-#define ONIG_CALLOUT_MAX_ARGS_NUM 4\r
-#define ONIG_CALLOUT_DATA_SLOT_NUM 5\r
-\r
-struct OnigCalloutArgsStruct;\r
-typedef struct OnigCalloutArgsStruct OnigCalloutArgs;\r
-\r
-typedef int (*OnigCalloutFunc)(OnigCalloutArgs* args, void* user_data);\r
-\r
-/* callout function return values (less than -1: error code) */\r
-typedef enum {\r
- ONIG_CALLOUT_FAIL = 1,\r
- ONIG_CALLOUT_SUCCESS = 0\r
-} OnigCalloutResult;\r
-\r
-typedef enum {\r
- ONIG_TYPE_VOID = 0,\r
- ONIG_TYPE_LONG = 1<<0,\r
- ONIG_TYPE_CHAR = 1<<1,\r
- ONIG_TYPE_STRING = 1<<2,\r
- ONIG_TYPE_POINTER = 1<<3,\r
- ONIG_TYPE_TAG = 1<<4,\r
-} OnigType;\r
-\r
-typedef union {\r
- long l;\r
- OnigCodePoint c;\r
- struct {\r
- OnigUChar* start;\r
- OnigUChar* end;\r
- } s;\r
- void* p;\r
- int tag; /* tag -> callout_num */\r
-} OnigValue;\r
-\r
-\r
-struct OnigMatchParamStruct;\r
-typedef struct OnigMatchParamStruct OnigMatchParam;\r
-\r
-\r
-/* Oniguruma Native API */\r
-\r
-ONIG_EXTERN\r
-int onig_initialize P_((OnigEncoding encodings[], int number_of_encodings));\r
-/* onig_init(): deprecated function. Use onig_initialize(). */\r
-ONIG_EXTERN\r
-int onig_init P_((void));\r
-ONIG_EXTERN\r
-int EFIAPI onig_error_code_to_str PV_((OnigUChar* s, int err_code, ...));\r
-ONIG_EXTERN\r
-int onig_is_error_code_needs_param PV_((int code));\r
-ONIG_EXTERN\r
-void onig_set_warn_func P_((OnigWarnFunc f));\r
-ONIG_EXTERN\r
-void onig_set_verb_warn_func P_((OnigWarnFunc f));\r
-ONIG_EXTERN\r
-int onig_new P_((OnigRegex*, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));\r
-ONIG_EXTERN\r
-int onig_reg_init P_((OnigRegex reg, OnigOptionType option, OnigCaseFoldType case_fold_flag, OnigEncoding enc, OnigSyntaxType* syntax));\r
-int onig_new_without_alloc P_((OnigRegex, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax, OnigErrorInfo* einfo));\r
-ONIG_EXTERN\r
-int onig_new_deluxe P_((OnigRegex* reg, const OnigUChar* pattern, const OnigUChar* pattern_end, OnigCompileInfo* ci, OnigErrorInfo* einfo));\r
-ONIG_EXTERN\r
-void onig_free P_((OnigRegex));\r
-ONIG_EXTERN\r
-void onig_free_body P_((OnigRegex));\r
-ONIG_EXTERN\r
-int onig_scan(OnigRegex reg, const OnigUChar* str, const OnigUChar* end, OnigRegion* region, OnigOptionType option, int (*scan_callback)(int, int, OnigRegion*, void*), void* callback_arg);\r
-ONIG_EXTERN\r
-int onig_search P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option));\r
-ONIG_EXTERN\r
-int onig_search_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* start, const OnigUChar* range, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp));\r
-ONIG_EXTERN\r
-int onig_match P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option));\r
-ONIG_EXTERN\r
-int onig_match_with_param P_((OnigRegex, const OnigUChar* str, const OnigUChar* end, const OnigUChar* at, OnigRegion* region, OnigOptionType option, OnigMatchParam* mp));\r
-ONIG_EXTERN\r
-OnigRegion* onig_region_new P_((void));\r
-ONIG_EXTERN\r
-void onig_region_init P_((OnigRegion* region));\r
-ONIG_EXTERN\r
-void onig_region_free P_((OnigRegion* region, int free_self));\r
-ONIG_EXTERN\r
-void onig_region_copy P_((OnigRegion* to, OnigRegion* from));\r
-ONIG_EXTERN\r
-void onig_region_clear P_((OnigRegion* region));\r
-ONIG_EXTERN\r
-int onig_region_resize P_((OnigRegion* region, int n));\r
-ONIG_EXTERN\r
-int onig_region_set P_((OnigRegion* region, int at, int beg, int end));\r
-ONIG_EXTERN\r
-int onig_name_to_group_numbers P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, int** nums));\r
-ONIG_EXTERN\r
-int onig_name_to_backref_number P_((OnigRegex reg, const OnigUChar* name, const OnigUChar* name_end, OnigRegion *region));\r
-ONIG_EXTERN\r
-int onig_foreach_name P_((OnigRegex reg, int (*func)(const OnigUChar*, const OnigUChar*,int,int*,OnigRegex,void*), void* arg));\r
-ONIG_EXTERN\r
-int onig_number_of_names P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-int onig_number_of_captures P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-int onig_number_of_capture_histories P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-OnigCaptureTreeNode* onig_get_capture_tree P_((OnigRegion* region));\r
-ONIG_EXTERN\r
-int onig_capture_tree_traverse P_((OnigRegion* region, int at, int(*callback_func)(int,int,int,int,int,void*), void* arg));\r
-ONIG_EXTERN\r
-int onig_noname_group_capture_is_active P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-OnigEncoding onig_get_encoding P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-OnigOptionType onig_get_options P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-OnigCaseFoldType onig_get_case_fold_flag P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-OnigSyntaxType* onig_get_syntax P_((OnigRegex reg));\r
-ONIG_EXTERN\r
-int onig_set_default_syntax P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN\r
-void onig_copy_syntax P_((OnigSyntaxType* to, OnigSyntaxType* from));\r
-ONIG_EXTERN\r
-unsigned int onig_get_syntax_op P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN\r
-unsigned int onig_get_syntax_op2 P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN\r
-unsigned int onig_get_syntax_behavior P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN\r
-OnigOptionType onig_get_syntax_options P_((OnigSyntaxType* syntax));\r
-ONIG_EXTERN\r
-void onig_set_syntax_op P_((OnigSyntaxType* syntax, unsigned int op));\r
-ONIG_EXTERN\r
-void onig_set_syntax_op2 P_((OnigSyntaxType* syntax, unsigned int op2));\r
-ONIG_EXTERN\r
-void onig_set_syntax_behavior P_((OnigSyntaxType* syntax, unsigned int behavior));\r
-ONIG_EXTERN\r
-void onig_set_syntax_options P_((OnigSyntaxType* syntax, OnigOptionType options));\r
-ONIG_EXTERN\r
-int onig_set_meta_char P_((OnigSyntaxType* syntax, unsigned int what, OnigCodePoint code));\r
-ONIG_EXTERN\r
-void onig_copy_encoding P_((OnigEncoding to, OnigEncoding from));\r
-ONIG_EXTERN\r
-OnigCaseFoldType onig_get_default_case_fold_flag P_((void));\r
-ONIG_EXTERN\r
-int onig_set_default_case_fold_flag P_((OnigCaseFoldType case_fold_flag));\r
-ONIG_EXTERN\r
-unsigned int onig_get_match_stack_limit_size P_((void));\r
-ONIG_EXTERN\r
-int onig_set_match_stack_limit_size P_((unsigned int size));\r
-ONIG_EXTERN\r
-unsigned long onig_get_retry_limit_in_match P_((void));\r
-ONIG_EXTERN\r
-int onig_set_retry_limit_in_match P_((unsigned long n));\r
-ONIG_EXTERN\r
-unsigned int onig_get_parse_depth_limit P_((void));\r
-ONIG_EXTERN\r
-int onig_set_capture_num_limit P_((int num));\r
-ONIG_EXTERN\r
-int onig_set_parse_depth_limit P_((unsigned int depth));\r
-ONIG_EXTERN\r
-int onig_unicode_define_user_property P_((const char* name, OnigCodePoint* ranges));\r
-ONIG_EXTERN\r
-int onig_end P_((void));\r
-ONIG_EXTERN\r
-const char* onig_version P_((void));\r
-ONIG_EXTERN\r
-const char* onig_copyright P_((void));\r
-\r
-/* for OnigMatchParam */\r
-ONIG_EXTERN\r
-OnigMatchParam* onig_new_match_param P_((void));\r
-ONIG_EXTERN\r
-void onig_free_match_param P_((OnigMatchParam* p));\r
-ONIG_EXTERN\r
-void onig_free_match_param_content P_((OnigMatchParam* p));\r
-ONIG_EXTERN\r
-int onig_initialize_match_param P_((OnigMatchParam* mp));\r
-ONIG_EXTERN\r
-int onig_set_match_stack_limit_size_of_match_param P_((OnigMatchParam* param, unsigned int limit));\r
-ONIG_EXTERN\r
-int onig_set_retry_limit_in_match_of_match_param P_((OnigMatchParam* param, unsigned long limit));\r
-ONIG_EXTERN\r
-int onig_set_progress_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f));\r
-ONIG_EXTERN\r
-int onig_set_retraction_callout_of_match_param P_((OnigMatchParam* param, OnigCalloutFunc f));\r
-ONIG_EXTERN\r
-int onig_set_callout_user_data_of_match_param P_((OnigMatchParam* param, void* user_data));\r
-\r
-/* for callout functions */\r
-ONIG_EXTERN\r
-OnigCalloutFunc onig_get_progress_callout P_((void));\r
-ONIG_EXTERN\r
-int onig_set_progress_callout P_((OnigCalloutFunc f));\r
-ONIG_EXTERN\r
-OnigCalloutFunc onig_get_retraction_callout P_((void));\r
-ONIG_EXTERN\r
-int onig_set_retraction_callout P_((OnigCalloutFunc f));\r
-ONIG_EXTERN\r
-int onig_set_callout_of_name P_((OnigEncoding enc, OnigCalloutType type, OnigUChar* name, OnigUChar* name_end, int callout_in, OnigCalloutFunc callout, OnigCalloutFunc end_callout, int arg_num, unsigned int arg_types[], int optional_arg_num, OnigValue opt_defaults[]));\r
-ONIG_EXTERN\r
-OnigUChar* onig_get_callout_name_by_name_id P_((int id));\r
-ONIG_EXTERN\r
-int onig_get_callout_num_by_tag P_((OnigRegex reg, const OnigUChar* tag, const OnigUChar* tag_end));\r
-ONIG_EXTERN\r
-int onig_get_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_set_callout_data_by_tag P_((OnigRegex reg, OnigMatchParam* mp, const OnigUChar* tag, const OnigUChar* tag_end, int slot, OnigType type, OnigValue* val));\r
-\r
-/* used in callout functions */\r
-ONIG_EXTERN\r
-int onig_get_callout_num_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-OnigCalloutIn onig_get_callout_in_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-int onig_get_name_id_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_contents_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_contents_end_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-int onig_get_args_num_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-int onig_get_passed_args_num_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-int onig_get_arg_by_callout_args P_((OnigCalloutArgs* args, int index, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_string_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_string_end_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_start_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_right_range_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_current_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-OnigRegex onig_get_regex_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-unsigned long onig_get_retry_counter_by_callout_args P_((OnigCalloutArgs* args));\r
-ONIG_EXTERN\r
-int onig_callout_tag_is_exist_at_callout_num P_((OnigRegex reg, int callout_num));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_callout_tag_start P_((OnigRegex reg, int callout_num));\r
-ONIG_EXTERN\r
-const OnigUChar* onig_get_callout_tag_end P_((OnigRegex reg, int callout_num));\r
-ONIG_EXTERN\r
-int onig_get_callout_data_dont_clear_old P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_get_callout_data_by_callout_args_self_dont_clear_old P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_get_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_get_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_get_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType* type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_set_callout_data P_((OnigRegex reg, OnigMatchParam* mp, int callout_num, int slot, OnigType type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_set_callout_data_by_callout_args P_((OnigCalloutArgs* args, int callout_num, int slot, OnigType type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_set_callout_data_by_callout_args_self P_((OnigCalloutArgs* args, int slot, OnigType type, OnigValue* val));\r
-ONIG_EXTERN\r
-int onig_get_capture_range_in_callout P_((OnigCalloutArgs* args, int mem_num, int* begin, int* end));\r
-ONIG_EXTERN\r
-int onig_get_used_stack_size_in_callout P_((OnigCalloutArgs* args, int* used_num, int* used_bytes));\r
-\r
-/* builtin callout functions */\r
-ONIG_EXTERN\r
-int onig_builtin_fail P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_mismatch P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_error P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_count P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_total_count P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_max P_((OnigCalloutArgs* args, void* user_data));\r
-ONIG_EXTERN\r
-int onig_builtin_cmp P_((OnigCalloutArgs* args, void* user_data));\r
-\r
-ONIG_EXTERN\r
-int onig_setup_builtin_monitors_by_ascii_encoded_name P_((void* fp));\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif /* ONIGURUMA_H */\r
+++ /dev/null
-/**********************************************************************\r
- regcomp.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regparse.h"\r
-\r
-#define OPS_INIT_SIZE 8\r
-\r
-OnigCaseFoldType OnigDefaultCaseFoldFlag = ONIGENC_CASE_FOLD_MIN;\r
-\r
-#if 0\r
-typedef struct {\r
- int n;\r
- int alloc;\r
- int* v;\r
-} int_stack;\r
-\r
-static int\r
-make_int_stack(int_stack** rs, int init_size)\r
-{\r
- int_stack* s;\r
- int* v;\r
-\r
- *rs = 0;\r
-\r
- s = xmalloc(sizeof(*s));\r
- if (IS_NULL(s)) return ONIGERR_MEMORY;\r
-\r
- v = (int* )xmalloc(sizeof(int) * init_size);\r
- if (IS_NULL(v)) {\r
- xfree(s);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- s->n = 0;\r
- s->alloc = init_size;\r
- s->v = v;\r
-\r
- *rs = s;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static void\r
-free_int_stack(int_stack* s)\r
-{\r
- if (IS_NOT_NULL(s)) {\r
- if (IS_NOT_NULL(s->v))\r
- xfree(s->v);\r
- xfree(s);\r
- }\r
-}\r
-\r
-static int\r
-int_stack_push(int_stack* s, int v)\r
-{\r
- if (s->n >= s->alloc) {\r
- int new_size = s->alloc * 2;\r
- int* nv = (int* )xrealloc(s->v, sizeof(int) * new_size, sizeof(int) * s->alloc);\r
- if (IS_NULL(nv)) return ONIGERR_MEMORY;\r
-\r
- s->alloc = new_size;\r
- s->v = nv;\r
- }\r
-\r
- s->v[s->n] = v;\r
- s->n++;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-int_stack_pop(int_stack* s)\r
-{\r
- int v;\r
-\r
-#ifdef ONIG_DEBUG\r
- if (s->n <= 0) {\r
- fprintf(stderr, "int_stack_pop: fail empty. %p\n", s);\r
- return 0;\r
- }\r
-#endif\r
-\r
- v = s->v[s->n];\r
- s->n--;\r
- return v;\r
-}\r
-#endif\r
-\r
-static int\r
-ops_init(regex_t* reg, int init_alloc_size)\r
-{\r
- Operation* p;\r
- size_t size;\r
-\r
- if (init_alloc_size > 0) {\r
- size = sizeof(Operation) * init_alloc_size;\r
- p = (Operation* )xmalloc(size);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- {\r
- enum OpCode* cp;\r
- size = sizeof(enum OpCode) * init_alloc_size;\r
- cp = (enum OpCode* )xmalloc(size);\r
- CHECK_NULL_RETURN_MEMERR(cp);\r
- reg->ocs = cp;\r
- }\r
-#endif\r
- }\r
- else {\r
- p = (Operation* )0;\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- reg->ocs = (enum OpCode* )0;\r
-#endif\r
- }\r
-\r
- reg->ops = p;\r
- reg->ops_curr = 0; /* !!! not yet done ops_new() */\r
- reg->ops_alloc = init_alloc_size;\r
- reg->ops_used = 0;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-ops_expand(regex_t* reg, int n)\r
-{\r
-#define MIN_OPS_EXPAND_SIZE 4\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- enum OpCode* cp;\r
-#endif\r
- Operation* p;\r
- size_t size;\r
-\r
- if (n <= 0) n = MIN_OPS_EXPAND_SIZE;\r
-\r
- n += reg->ops_alloc;\r
-\r
- size = sizeof(Operation) * n;\r
- p = (Operation* )xrealloc(reg->ops, size, sizeof(Operation) * reg->ops_alloc);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- size = sizeof(enum OpCode) * n;\r
- cp = (enum OpCode* )xrealloc(reg->ocs, size, sizeof(enum OpCode) * reg->ops_alloc);\r
- CHECK_NULL_RETURN_MEMERR(cp);\r
- reg->ocs = cp;\r
-#endif\r
-\r
- reg->ops = p;\r
- reg->ops_alloc = n;\r
- if (reg->ops_used == 0)\r
- reg->ops_curr = 0;\r
- else\r
- reg->ops_curr = reg->ops + (reg->ops_used - 1);\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-ops_new(regex_t* reg)\r
-{\r
- int r;\r
-\r
- if (reg->ops_used >= reg->ops_alloc) {\r
- r = ops_expand(reg, reg->ops_alloc);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- reg->ops_curr = reg->ops + reg->ops_used;\r
- reg->ops_used++;\r
-\r
- xmemset(reg->ops_curr, 0, sizeof(Operation));\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-is_in_string_pool(regex_t* reg, UChar* s)\r
-{\r
- return (s >= reg->string_pool && s < reg->string_pool_end);\r
-}\r
-\r
-static void\r
-ops_free(regex_t* reg)\r
-{\r
- int i;\r
-\r
- if (IS_NULL(reg->ops)) return ;\r
-\r
- for (i = 0; i < (int )reg->ops_used; i++) {\r
- enum OpCode opcode;\r
- Operation* op;\r
-\r
- op = reg->ops + i;\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- opcode = *(reg->ocs + i);\r
-#else\r
- opcode = op->opcode;\r
-#endif\r
-\r
- switch (opcode) {\r
- case OP_EXACTMBN:\r
- if (! is_in_string_pool(reg, op->exact_len_n.s))\r
- xfree(op->exact_len_n.s);\r
- break;\r
- case OP_EXACTN: case OP_EXACTMB2N: case OP_EXACTMB3N: case OP_EXACTN_IC:\r
- if (! is_in_string_pool(reg, op->exact_n.s))\r
- xfree(op->exact_n.s);\r
- break;\r
- case OP_EXACT1: case OP_EXACT2: case OP_EXACT3: case OP_EXACT4:\r
- case OP_EXACT5: case OP_EXACTMB2N1: case OP_EXACTMB2N2:\r
- case OP_EXACTMB2N3: case OP_EXACT1_IC:\r
- break;\r
-\r
- case OP_CCLASS_NOT: case OP_CCLASS:\r
- xfree(op->cclass.bsp);\r
- break;\r
-\r
- case OP_CCLASS_MB_NOT: case OP_CCLASS_MB:\r
- xfree(op->cclass_mb.mb);\r
- break;\r
- case OP_CCLASS_MIX_NOT: case OP_CCLASS_MIX:\r
- xfree(op->cclass_mix.mb);\r
- xfree(op->cclass_mix.bsp);\r
- break;\r
-\r
- case OP_BACKREF1: case OP_BACKREF2: case OP_BACKREF_N: case OP_BACKREF_N_IC:\r
- break;\r
- case OP_BACKREF_MULTI: case OP_BACKREF_MULTI_IC:\r
- case OP_BACKREF_WITH_LEVEL:\r
- case OP_BACKREF_WITH_LEVEL_IC:\r
- case OP_BACKREF_CHECK:\r
- case OP_BACKREF_CHECK_WITH_LEVEL:\r
- if (op->backref_general.num != 1)\r
- xfree(op->backref_general.ns);\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
-\r
- xfree(reg->ops);\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- xfree(reg->ocs);\r
- reg->ocs = 0;\r
-#endif\r
-\r
- reg->ops = 0;\r
- reg->ops_curr = 0;\r
- reg->ops_alloc = 0;\r
- reg->ops_used = 0;\r
-}\r
-\r
-static int\r
-ops_calc_size_of_string_pool(regex_t* reg)\r
-{\r
- int i;\r
- int total;\r
-\r
- if (IS_NULL(reg->ops)) return 0;\r
-\r
- total = 0;\r
- for (i = 0; i < (int )reg->ops_used; i++) {\r
- enum OpCode opcode;\r
- Operation* op;\r
-\r
- op = reg->ops + i;\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- opcode = *(reg->ocs + i);\r
-#else\r
- opcode = op->opcode;\r
-#endif\r
-\r
- switch (opcode) {\r
- case OP_EXACTMBN:\r
- total += op->exact_len_n.len * op->exact_len_n.n;\r
- break;\r
- case OP_EXACTN:\r
- case OP_EXACTN_IC:\r
- total += op->exact_n.n;\r
- break;\r
- case OP_EXACTMB2N:\r
- total += op->exact_n.n * 2;\r
- break;\r
- case OP_EXACTMB3N:\r
- total += op->exact_n.n * 3;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
-\r
- return total;\r
-}\r
-\r
-static int\r
-ops_make_string_pool(regex_t* reg)\r
-{\r
- int i;\r
- int len;\r
- int size;\r
- UChar* pool;\r
- UChar* curr;\r
-\r
- size = ops_calc_size_of_string_pool(reg);\r
- if (size <= 0) {\r
- return 0;\r
- }\r
-\r
- curr = pool = (UChar* )xmalloc((size_t )size);\r
- CHECK_NULL_RETURN_MEMERR(pool);\r
-\r
- for (i = 0; i < (int )reg->ops_used; i++) {\r
- enum OpCode opcode;\r
- Operation* op;\r
-\r
- op = reg->ops + i;\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- opcode = *(reg->ocs + i);\r
-#else\r
- opcode = op->opcode;\r
-#endif\r
-\r
- switch (opcode) {\r
- case OP_EXACTMBN:\r
- len = op->exact_len_n.len * op->exact_len_n.n;\r
- xmemcpy(curr, op->exact_len_n.s, len);\r
- xfree(op->exact_len_n.s);\r
- op->exact_len_n.s = curr;\r
- curr += len;\r
- break;\r
- case OP_EXACTN:\r
- case OP_EXACTN_IC:\r
- len = op->exact_n.n;\r
- copy:\r
- xmemcpy(curr, op->exact_n.s, len);\r
- xfree(op->exact_n.s);\r
- op->exact_n.s = curr;\r
- curr += len;\r
- break;\r
- case OP_EXACTMB2N:\r
- len = op->exact_n.n * 2;\r
- goto copy;\r
- break;\r
- case OP_EXACTMB3N:\r
- len = op->exact_n.n * 3;\r
- goto copy;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
-\r
- reg->string_pool = pool;\r
- reg->string_pool_end = pool + size;\r
- return 0;\r
-}\r
-\r
-extern OnigCaseFoldType\r
-onig_get_default_case_fold_flag(void)\r
-{\r
- return OnigDefaultCaseFoldFlag;\r
-}\r
-\r
-extern int\r
-onig_set_default_case_fold_flag(OnigCaseFoldType case_fold_flag)\r
-{\r
- OnigDefaultCaseFoldFlag = case_fold_flag;\r
- return 0;\r
-}\r
-\r
-static int\r
-int_multiply_cmp(int x, int y, int v)\r
-{\r
- if (x == 0 || y == 0) return -1;\r
-\r
- if (x < INT_MAX / y) {\r
- int xy = x * y;\r
- if (xy > v) return 1;\r
- else {\r
- if (xy == v) return 0;\r
- else return -1;\r
- }\r
- }\r
- else\r
- return 1;\r
-}\r
-\r
-extern int\r
-onig_positive_int_multiply(int x, int y)\r
-{\r
- if (x == 0 || y == 0) return 0;\r
-\r
- if (x < INT_MAX / y)\r
- return x * y;\r
- else\r
- return -1;\r
-}\r
-\r
-\r
-static void\r
-swap_node(Node* a, Node* b)\r
-{\r
- Node c;\r
-\r
- c = *a; *a = *b; *b = c;\r
-\r
- if (NODE_TYPE(a) == NODE_STRING) {\r
- StrNode* sn = STR_(a);\r
- if (sn->capacity == 0) {\r
- int len = (int )(sn->end - sn->s);\r
- sn->s = sn->buf;\r
- sn->end = sn->s + len;\r
- }\r
- }\r
-\r
- if (NODE_TYPE(b) == NODE_STRING) {\r
- StrNode* sn = STR_(b);\r
- if (sn->capacity == 0) {\r
- int len = (int )(sn->end - sn->s);\r
- sn->s = sn->buf;\r
- sn->end = sn->s + len;\r
- }\r
- }\r
-}\r
-\r
-static OnigLen\r
-distance_add(OnigLen d1, OnigLen d2)\r
-{\r
- if (d1 == INFINITE_LEN || d2 == INFINITE_LEN)\r
- return INFINITE_LEN;\r
- else {\r
- if (d1 <= INFINITE_LEN - d2) return d1 + d2;\r
- else return INFINITE_LEN;\r
- }\r
-}\r
-\r
-static OnigLen\r
-distance_multiply(OnigLen d, int m)\r
-{\r
- if (m == 0) return 0;\r
-\r
- if (d < INFINITE_LEN / m)\r
- return d * m;\r
- else\r
- return INFINITE_LEN;\r
-}\r
-\r
-static int\r
-bitset_is_empty(BitSetRef bs)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < (int )BITSET_SIZE; i++) {\r
- if (bs[i] != 0) return 0;\r
- }\r
- return 1;\r
-}\r
-\r
-#ifdef USE_CALL\r
-\r
-static int\r
-unset_addr_list_init(UnsetAddrList* list, int size)\r
-{\r
- UnsetAddr* p = (UnsetAddr* )xmalloc(sizeof(UnsetAddr)* size);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
-\r
- list->num = 0;\r
- list->alloc = size;\r
- list->us = p;\r
- return 0;\r
-}\r
-\r
-static void\r
-unset_addr_list_end(UnsetAddrList* list)\r
-{\r
- if (IS_NOT_NULL(list->us))\r
- xfree(list->us);\r
-}\r
-\r
-static int\r
-unset_addr_list_add(UnsetAddrList* list, int offset, struct _Node* node)\r
-{\r
- UnsetAddr* p;\r
- int size;\r
-\r
- if (list->num >= list->alloc) {\r
- size = list->alloc * 2;\r
- p = (UnsetAddr* )xrealloc(list->us, sizeof(UnsetAddr) * size, sizeof(UnsetAddr)* list->alloc);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- list->alloc = size;\r
- list->us = p;\r
- }\r
-\r
- list->us[list->num].offset = offset;\r
- list->us[list->num].target = node;\r
- list->num++;\r
- return 0;\r
-}\r
-#endif /* USE_CALL */\r
-\r
-\r
-static int\r
-add_op(regex_t* reg, int opcode)\r
-{\r
- int r;\r
-\r
- r = ops_new(reg);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- *(reg->ocs + (reg->ops_curr - reg->ops)) = opcode;\r
-#else\r
- reg->ops_curr->opcode = opcode;\r
-#endif\r
-\r
- return 0;\r
-}\r
-\r
-static int compile_length_tree(Node* node, regex_t* reg);\r
-static int compile_tree(Node* node, regex_t* reg, ScanEnv* env);\r
-\r
-\r
-#define IS_NEED_STR_LEN_OP_EXACT(op) \\r
- ((op) == OP_EXACTN || (op) == OP_EXACTMB2N ||\\r
- (op) == OP_EXACTMB3N || (op) == OP_EXACTMBN || (op) == OP_EXACTN_IC)\r
-\r
-static int\r
-select_str_opcode(int mb_len, int str_len, int ignore_case)\r
-{\r
- int op;\r
-\r
- if (ignore_case) {\r
- switch (str_len) {\r
- case 1: op = OP_EXACT1_IC; break;\r
- default: op = OP_EXACTN_IC; break;\r
- }\r
- }\r
- else {\r
- switch (mb_len) {\r
- case 1:\r
- switch (str_len) {\r
- case 1: op = OP_EXACT1; break;\r
- case 2: op = OP_EXACT2; break;\r
- case 3: op = OP_EXACT3; break;\r
- case 4: op = OP_EXACT4; break;\r
- case 5: op = OP_EXACT5; break;\r
- default: op = OP_EXACTN; break;\r
- }\r
- break;\r
-\r
- case 2:\r
- switch (str_len) {\r
- case 1: op = OP_EXACTMB2N1; break;\r
- case 2: op = OP_EXACTMB2N2; break;\r
- case 3: op = OP_EXACTMB2N3; break;\r
- default: op = OP_EXACTMB2N; break;\r
- }\r
- break;\r
-\r
- case 3:\r
- op = OP_EXACTMB3N;\r
- break;\r
-\r
- default:\r
- op = OP_EXACTMBN;\r
- break;\r
- }\r
- }\r
- return op;\r
-}\r
-\r
-static int\r
-is_strict_real_node(Node* node)\r
-{\r
- switch (NODE_TYPE(node)) {\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
- return (sn->end != sn->s);\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- case NODE_CTYPE:\r
- return 1;\r
- break;\r
-\r
- default:\r
- return 0;\r
- break;\r
- }\r
-}\r
-\r
-static int\r
-compile_tree_empty_check(Node* node, regex_t* reg, int emptiness, ScanEnv* env)\r
-{\r
- int r;\r
- int saved_num_null_check = reg->num_null_check;\r
-\r
- if (emptiness != BODY_IS_NOT_EMPTY) {\r
- r = add_op(reg, OP_EMPTY_CHECK_START);\r
- if (r != 0) return r;\r
- COP(reg)->empty_check_start.mem = reg->num_null_check; /* NULL CHECK ID */\r
- reg->num_null_check++;\r
- }\r
-\r
- r = compile_tree(node, reg, env);\r
- if (r != 0) return r;\r
-\r
- if (emptiness != BODY_IS_NOT_EMPTY) {\r
- if (emptiness == BODY_IS_EMPTY_POSSIBILITY)\r
- r = add_op(reg, OP_EMPTY_CHECK_END);\r
- else if (emptiness == BODY_IS_EMPTY_POSSIBILITY_MEM)\r
- r = add_op(reg, OP_EMPTY_CHECK_END_MEMST);\r
- else if (emptiness == BODY_IS_EMPTY_POSSIBILITY_REC)\r
- r = add_op(reg, OP_EMPTY_CHECK_END_MEMST_PUSH);\r
-\r
- if (r != 0) return r;\r
- COP(reg)->empty_check_end.mem = saved_num_null_check; /* NULL CHECK ID */\r
- }\r
- return r;\r
-}\r
-\r
-#ifdef USE_CALL\r
-static int\r
-compile_call(CallNode* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r;\r
- int offset;\r
-\r
- r = add_op(reg, OP_CALL);\r
- if (r != 0) return r;\r
-\r
- COP(reg)->call.addr = 0; /* dummy addr. */\r
-\r
- offset = COP_CURR_OFFSET_BYTES(reg, call.addr);\r
- r = unset_addr_list_add(env->unset_addr_list, offset, NODE_CALL_BODY(node));\r
- return r;\r
-}\r
-#endif\r
-\r
-static int\r
-compile_tree_n_times(Node* node, int n, regex_t* reg, ScanEnv* env)\r
-{\r
- int i, r;\r
-\r
- for (i = 0; i < n; i++) {\r
- r = compile_tree(node, reg, env);\r
- if (r != 0) return r;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-add_compile_string_length(UChar* s ARG_UNUSED, int mb_len, int str_len,\r
- regex_t* reg ARG_UNUSED, int ignore_case)\r
-{\r
- return 1;\r
-}\r
-\r
-static int\r
-add_compile_string(UChar* s, int mb_len, int str_len,\r
- regex_t* reg, int ignore_case)\r
-{\r
- int op;\r
- int r;\r
- int byte_len;\r
- UChar* p;\r
- UChar* end;\r
-\r
- op = select_str_opcode(mb_len, str_len, ignore_case);\r
- r = add_op(reg, op);\r
- if (r != 0) return r;\r
-\r
- byte_len = mb_len * str_len;\r
- end = s + byte_len;\r
-\r
- if (op == OP_EXACTMBN) {\r
- p = onigenc_strdup(reg->enc, s, end);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
-\r
- COP(reg)->exact_len_n.len = mb_len;\r
- COP(reg)->exact_len_n.n = str_len;\r
- COP(reg)->exact_len_n.s = p;\r
- }\r
- else if (IS_NEED_STR_LEN_OP_EXACT(op)) {\r
- p = onigenc_strdup(reg->enc, s, end);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
-\r
- if (op == OP_EXACTN_IC)\r
- COP(reg)->exact_n.n = byte_len;\r
- else\r
- COP(reg)->exact_n.n = str_len;\r
-\r
- COP(reg)->exact_n.s = p;\r
- }\r
- else {\r
- xmemcpy(COP(reg)->exact.s, s, (size_t )byte_len);\r
- COP(reg)->exact.s[byte_len] = '\0';\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-compile_length_string_node(Node* node, regex_t* reg)\r
-{\r
- int rlen, r, len, prev_len, slen, ambig;\r
- UChar *p, *prev;\r
- StrNode* sn;\r
- OnigEncoding enc = reg->enc;\r
-\r
- sn = STR_(node);\r
- if (sn->end <= sn->s)\r
- return 0;\r
-\r
- ambig = NODE_STRING_IS_AMBIG(node);\r
-\r
- p = prev = sn->s;\r
- prev_len = enclen(enc, p);\r
- p += prev_len;\r
- slen = 1;\r
- rlen = 0;\r
-\r
- for (; p < sn->end; ) {\r
- len = enclen(enc, p);\r
- if (len == prev_len) {\r
- slen++;\r
- }\r
- else {\r
- r = add_compile_string_length(prev, prev_len, slen, reg, ambig);\r
- rlen += r;\r
- prev = p;\r
- slen = 1;\r
- prev_len = len;\r
- }\r
- p += len;\r
- }\r
-\r
- r = add_compile_string_length(prev, prev_len, slen, reg, ambig);\r
- rlen += r;\r
- return rlen;\r
-}\r
-\r
-static int\r
-compile_length_string_raw_node(StrNode* sn, regex_t* reg)\r
-{\r
- if (sn->end <= sn->s)\r
- return 0;\r
-\r
- return add_compile_string_length(sn->s, 1 /* sb */, (int )(sn->end - sn->s),\r
- reg, 0);\r
-}\r
-\r
-static int\r
-compile_string_node(Node* node, regex_t* reg)\r
-{\r
- int r, len, prev_len, slen, ambig;\r
- UChar *p, *prev, *end;\r
- StrNode* sn;\r
- OnigEncoding enc = reg->enc;\r
-\r
- sn = STR_(node);\r
- if (sn->end <= sn->s)\r
- return 0;\r
-\r
- end = sn->end;\r
- ambig = NODE_STRING_IS_AMBIG(node);\r
-\r
- p = prev = sn->s;\r
- prev_len = enclen(enc, p);\r
- p += prev_len;\r
- slen = 1;\r
-\r
- for (; p < end; ) {\r
- len = enclen(enc, p);\r
- if (len == prev_len) {\r
- slen++;\r
- }\r
- else {\r
- r = add_compile_string(prev, prev_len, slen, reg, ambig);\r
- if (r != 0) return r;\r
-\r
- prev = p;\r
- slen = 1;\r
- prev_len = len;\r
- }\r
-\r
- p += len;\r
- }\r
-\r
- return add_compile_string(prev, prev_len, slen, reg, ambig);\r
-}\r
-\r
-static int\r
-compile_string_raw_node(StrNode* sn, regex_t* reg)\r
-{\r
- if (sn->end <= sn->s)\r
- return 0;\r
-\r
- return add_compile_string(sn->s, 1 /* sb */, (int )(sn->end - sn->s), reg, 0);\r
-}\r
-\r
-static void*\r
-set_multi_byte_cclass(BBuf* mbuf, regex_t* reg)\r
-{\r
- size_t len;\r
- void* p;\r
-\r
- len = (size_t )mbuf->used;\r
- p = xmalloc(len);\r
- if (IS_NULL(p)) return NULL;\r
-\r
- xmemcpy(p, mbuf->p, len);\r
- return p;\r
-}\r
-\r
-static int\r
-compile_length_cclass_node(CClassNode* cc, regex_t* reg)\r
-{\r
- return 1;\r
-}\r
-\r
-static int\r
-compile_cclass_node(CClassNode* cc, regex_t* reg)\r
-{\r
- int r;\r
-\r
- if (IS_NULL(cc->mbuf)) {\r
- r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_NOT : OP_CCLASS);\r
- if (r != 0) return r;\r
-\r
- COP(reg)->cclass.bsp = xmalloc(SIZE_BITSET);\r
- CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass.bsp);\r
- xmemcpy(COP(reg)->cclass.bsp, cc->bs, SIZE_BITSET);\r
- }\r
- else {\r
- void* p;\r
-\r
- if (ONIGENC_MBC_MINLEN(reg->enc) > 1 || bitset_is_empty(cc->bs)) {\r
- r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MB_NOT : OP_CCLASS_MB);\r
- if (r != 0) return r;\r
-\r
- p = set_multi_byte_cclass(cc->mbuf, reg);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- COP(reg)->cclass_mb.mb = p;\r
- }\r
- else {\r
- r = add_op(reg, IS_NCCLASS_NOT(cc) ? OP_CCLASS_MIX_NOT : OP_CCLASS_MIX);\r
- if (r != 0) return r;\r
-\r
- COP(reg)->cclass_mix.bsp = xmalloc(SIZE_BITSET);\r
- CHECK_NULL_RETURN_MEMERR(COP(reg)->cclass_mix.bsp);\r
- xmemcpy(COP(reg)->cclass_mix.bsp, cc->bs, SIZE_BITSET);\r
-\r
- p = set_multi_byte_cclass(cc->mbuf, reg);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- COP(reg)->cclass_mix.mb = p;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-entry_repeat_range(regex_t* reg, int id, int lower, int upper)\r
-{\r
-#define REPEAT_RANGE_ALLOC 4\r
-\r
- OnigRepeatRange* p;\r
-\r
- if (reg->repeat_range_alloc == 0) {\r
- p = (OnigRepeatRange* )xmalloc(sizeof(OnigRepeatRange) * REPEAT_RANGE_ALLOC);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- reg->repeat_range = p;\r
- reg->repeat_range_alloc = REPEAT_RANGE_ALLOC;\r
- }\r
- else if (reg->repeat_range_alloc <= id) {\r
- int n;\r
- n = reg->repeat_range_alloc + REPEAT_RANGE_ALLOC;\r
- p = (OnigRepeatRange* )xrealloc(reg->repeat_range,\r
- sizeof(OnigRepeatRange) * n,\r
- sizeof(OnigRepeatRange) * reg->repeat_range_alloc);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- reg->repeat_range = p;\r
- reg->repeat_range_alloc = n;\r
- }\r
- else {\r
- p = reg->repeat_range;\r
- }\r
-\r
- p[id].lower = lower;\r
- p[id].upper = (IS_INFINITE_REPEAT(upper) ? 0x7fffffff : upper);\r
- return 0;\r
-}\r
-\r
-static int\r
-compile_range_repeat_node(QuantNode* qn, int target_len, int emptiness,\r
- regex_t* reg, ScanEnv* env)\r
-{\r
- int r;\r
- int num_repeat = reg->num_repeat++;\r
-\r
- r = add_op(reg, qn->greedy ? OP_REPEAT : OP_REPEAT_NG);\r
- if (r != 0) return r;\r
-\r
- COP(reg)->repeat.id = num_repeat;\r
- COP(reg)->repeat.addr = SIZE_INC_OP + target_len + SIZE_OP_REPEAT_INC;\r
-\r
- r = entry_repeat_range(reg, num_repeat, qn->lower, qn->upper);\r
- if (r != 0) return r;\r
-\r
- r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env);\r
- if (r != 0) return r;\r
-\r
- if (\r
-#ifdef USE_CALL\r
- NODE_IS_IN_MULTI_ENTRY(qn) ||\r
-#endif\r
- NODE_IS_IN_REAL_REPEAT(qn)) {\r
- r = add_op(reg, qn->greedy ? OP_REPEAT_INC_SG : OP_REPEAT_INC_NG_SG);\r
- }\r
- else {\r
- r = add_op(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG);\r
- }\r
- if (r != 0) return r;\r
-\r
- COP(reg)->repeat_inc.id = num_repeat;\r
- return r;\r
-}\r
-\r
-static int\r
-is_anychar_infinite_greedy(QuantNode* qn)\r
-{\r
- if (qn->greedy && IS_INFINITE_REPEAT(qn->upper) &&\r
- NODE_IS_ANYCHAR(NODE_QUANT_BODY(qn)))\r
- return 1;\r
- else\r
- return 0;\r
-}\r
-\r
-#define QUANTIFIER_EXPAND_LIMIT_SIZE 10\r
-#define CKN_ON (ckn > 0)\r
-\r
-static int\r
-compile_length_quantifier_node(QuantNode* qn, regex_t* reg)\r
-{\r
- int len, mod_tlen;\r
- int infinite = IS_INFINITE_REPEAT(qn->upper);\r
- enum BodyEmptyType emptiness = qn->emptiness;\r
- int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg);\r
-\r
- if (tlen < 0) return tlen;\r
- if (tlen == 0) return 0;\r
-\r
- /* anychar repeat */\r
- if (is_anychar_infinite_greedy(qn)) {\r
- if (qn->lower <= 1 ||\r
- int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0) {\r
- if (IS_NOT_NULL(qn->next_head_exact))\r
- return SIZE_OP_ANYCHAR_STAR_PEEK_NEXT + tlen * qn->lower;\r
- else\r
- return SIZE_OP_ANYCHAR_STAR + tlen * qn->lower;\r
- }\r
- }\r
-\r
- mod_tlen = tlen;\r
- if (emptiness != BODY_IS_NOT_EMPTY)\r
- mod_tlen += SIZE_OP_EMPTY_CHECK_START + SIZE_OP_EMPTY_CHECK_END;\r
-\r
- if (infinite &&\r
- (qn->lower <= 1 ||\r
- int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) {\r
- if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) {\r
- len = SIZE_OP_JUMP;\r
- }\r
- else {\r
- len = tlen * qn->lower;\r
- }\r
-\r
- if (qn->greedy) {\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- if (IS_NOT_NULL(qn->head_exact))\r
- len += SIZE_OP_PUSH_OR_JUMP_EXACT1 + mod_tlen + SIZE_OP_JUMP;\r
- else\r
-#endif\r
- if (IS_NOT_NULL(qn->next_head_exact))\r
- len += SIZE_OP_PUSH_IF_PEEK_NEXT + mod_tlen + SIZE_OP_JUMP;\r
- else\r
- len += SIZE_OP_PUSH + mod_tlen + SIZE_OP_JUMP;\r
- }\r
- else\r
- len += SIZE_OP_JUMP + mod_tlen + SIZE_OP_PUSH;\r
- }\r
- else if (qn->upper == 0) {\r
- if (qn->is_refered != 0) { /* /(?<n>..){0}/ */\r
- len = SIZE_OP_JUMP + tlen;\r
- }\r
- else\r
- len = 0;\r
- }\r
- else if (!infinite && qn->greedy &&\r
- (qn->upper == 1 ||\r
- int_multiply_cmp(tlen + SIZE_OP_PUSH, qn->upper,\r
- QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) {\r
- len = tlen * qn->lower;\r
- len += (SIZE_OP_PUSH + tlen) * (qn->upper - qn->lower);\r
- }\r
- else if (!qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */\r
- len = SIZE_OP_PUSH + SIZE_OP_JUMP + tlen;\r
- }\r
- else {\r
- len = SIZE_OP_REPEAT_INC + mod_tlen + SIZE_OP_REPEAT;\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static int\r
-compile_quantifier_node(QuantNode* qn, regex_t* reg, ScanEnv* env)\r
-{\r
- int i, r, mod_tlen;\r
- int infinite = IS_INFINITE_REPEAT(qn->upper);\r
- enum BodyEmptyType emptiness = qn->emptiness;\r
- int tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg);\r
-\r
- if (tlen < 0) return tlen;\r
- if (tlen == 0) return 0;\r
-\r
- if (is_anychar_infinite_greedy(qn) &&\r
- (qn->lower <= 1 ||\r
- int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) {\r
- r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env);\r
- if (r != 0) return r;\r
- if (IS_NOT_NULL(qn->next_head_exact)) {\r
- r = add_op(reg,\r
- IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), reg)) ?\r
- OP_ANYCHAR_ML_STAR_PEEK_NEXT : OP_ANYCHAR_STAR_PEEK_NEXT);\r
- if (r != 0) return r;\r
-\r
- COP(reg)->anychar_star_peek_next.c = STR_(qn->next_head_exact)->s[0];\r
- return 0;\r
- }\r
- else {\r
- r = add_op(reg,\r
- IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), reg)) ?\r
- OP_ANYCHAR_ML_STAR : OP_ANYCHAR_STAR);\r
- return r;\r
- }\r
- }\r
-\r
- mod_tlen = tlen;\r
- if (emptiness != BODY_IS_NOT_EMPTY)\r
- mod_tlen += SIZE_OP_EMPTY_CHECK_START + SIZE_OP_EMPTY_CHECK_END;\r
-\r
- if (infinite &&\r
- (qn->lower <= 1 ||\r
- int_multiply_cmp(tlen, qn->lower, QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) {\r
- int addr;\r
-\r
- if (qn->lower == 1 && tlen > QUANTIFIER_EXPAND_LIMIT_SIZE) {\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- if (qn->greedy) {\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- if (IS_NOT_NULL(qn->head_exact))\r
- COP(reg)->jump.addr = SIZE_OP_PUSH_OR_JUMP_EXACT1 + SIZE_INC_OP;\r
- else\r
-#endif\r
- if (IS_NOT_NULL(qn->next_head_exact))\r
- COP(reg)->jump.addr = SIZE_OP_PUSH_IF_PEEK_NEXT + SIZE_INC_OP;\r
- else\r
- COP(reg)->jump.addr = SIZE_OP_PUSH + SIZE_INC_OP;\r
- }\r
- else {\r
- COP(reg)->jump.addr = SIZE_OP_JUMP + SIZE_INC_OP;\r
- }\r
- }\r
- else {\r
- r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env);\r
- if (r != 0) return r;\r
- }\r
-\r
- if (qn->greedy) {\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- if (IS_NOT_NULL(qn->head_exact)) {\r
- r = add_op(reg, OP_PUSH_OR_JUMP_EXACT1);\r
- if (r != 0) return r;\r
- COP(reg)->push_or_jump_exact1.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP;\r
- COP(reg)->push_or_jump_exact1.c = STR_(qn->head_exact)->s[0];\r
-\r
- r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env);\r
- if (r != 0) return r;\r
-\r
- addr = -(mod_tlen + (int )SIZE_OP_PUSH_OR_JUMP_EXACT1);\r
- }\r
- else\r
-#endif\r
- if (IS_NOT_NULL(qn->next_head_exact)) {\r
- r = add_op(reg, OP_PUSH_IF_PEEK_NEXT);\r
- if (r != 0) return r;\r
- COP(reg)->push_if_peek_next.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP;\r
- COP(reg)->push_if_peek_next.c = STR_(qn->next_head_exact)->s[0];\r
-\r
- r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env);\r
- if (r != 0) return r;\r
-\r
- addr = -(mod_tlen + (int )SIZE_OP_PUSH_IF_PEEK_NEXT);\r
- }\r
- else {\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = SIZE_INC_OP + mod_tlen + SIZE_OP_JUMP;\r
-\r
- r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env);\r
- if (r != 0) return r;\r
-\r
- addr = -(mod_tlen + (int )SIZE_OP_PUSH);\r
- }\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = addr;\r
- }\r
- else {\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = mod_tlen + SIZE_INC_OP;\r
-\r
- r = compile_tree_empty_check(NODE_QUANT_BODY(qn), reg, emptiness, env);\r
- if (r != 0) return r;\r
-\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = -mod_tlen;\r
- }\r
- }\r
- else if (qn->upper == 0) {\r
- if (qn->is_refered != 0) { /* /(?<n>..){0}/ */\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = tlen + SIZE_INC_OP;\r
-\r
- r = compile_tree(NODE_QUANT_BODY(qn), reg, env);\r
- }\r
- else {\r
- /* Nothing output */\r
- r = 0;\r
- }\r
- }\r
- else if (! infinite && qn->greedy &&\r
- (qn->upper == 1 ||\r
- int_multiply_cmp(tlen + SIZE_OP_PUSH, qn->upper,\r
- QUANTIFIER_EXPAND_LIMIT_SIZE) <= 0)) {\r
- int n = qn->upper - qn->lower;\r
-\r
- r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env);\r
- if (r != 0) return r;\r
-\r
- for (i = 0; i < n; i++) {\r
- int v = onig_positive_int_multiply(n - i, tlen + SIZE_OP_PUSH);\r
- if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
-\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = v;\r
-\r
- r = compile_tree(NODE_QUANT_BODY(qn), reg, env);\r
- if (r != 0) return r;\r
- }\r
- }\r
- else if (! qn->greedy && qn->upper == 1 && qn->lower == 0) { /* '??' */\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = SIZE_INC_OP + SIZE_OP_JUMP;\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = tlen + SIZE_INC_OP;\r
-\r
- r = compile_tree(NODE_QUANT_BODY(qn), reg, env);\r
- }\r
- else {\r
- r = compile_range_repeat_node(qn, mod_tlen, emptiness, reg, env);\r
- }\r
- return r;\r
-}\r
-\r
-static int\r
-compile_length_option_node(BagNode* node, regex_t* reg)\r
-{\r
- int tlen;\r
- OnigOptionType prev = reg->options;\r
-\r
- reg->options = node->o.options;\r
- tlen = compile_length_tree(NODE_BAG_BODY(node), reg);\r
- reg->options = prev;\r
-\r
- return tlen;\r
-}\r
-\r
-static int\r
-compile_option_node(BagNode* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r;\r
- OnigOptionType prev = reg->options;\r
-\r
- reg->options = node->o.options;\r
- r = compile_tree(NODE_BAG_BODY(node), reg, env);\r
- reg->options = prev;\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_length_bag_node(BagNode* node, regex_t* reg)\r
-{\r
- int len;\r
- int tlen;\r
-\r
- if (node->type == BAG_OPTION)\r
- return compile_length_option_node(node, reg);\r
-\r
- if (NODE_BAG_BODY(node)) {\r
- tlen = compile_length_tree(NODE_BAG_BODY(node), reg);\r
- if (tlen < 0) return tlen;\r
- }\r
- else\r
- tlen = 0;\r
-\r
- switch (node->type) {\r
- case BAG_MEMORY:\r
-#ifdef USE_CALL\r
-\r
- if (node->m.regnum == 0 && NODE_IS_CALLED(node)) {\r
- len = tlen + SIZE_OP_CALL + SIZE_OP_JUMP + SIZE_OP_RETURN;\r
- return len;\r
- }\r
-\r
- if (NODE_IS_CALLED(node)) {\r
- len = SIZE_OP_MEMORY_START_PUSH + tlen\r
- + SIZE_OP_CALL + SIZE_OP_JUMP + SIZE_OP_RETURN;\r
- if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum))\r
- len += (NODE_IS_RECURSION(node)\r
- ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_PUSH);\r
- else\r
- len += (NODE_IS_RECURSION(node)\r
- ? SIZE_OP_MEMORY_END_REC : SIZE_OP_MEMORY_END);\r
- }\r
- else if (NODE_IS_RECURSION(node)) {\r
- len = SIZE_OP_MEMORY_START_PUSH;\r
- len += tlen + (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)\r
- ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_REC);\r
- }\r
- else\r
-#endif\r
- {\r
- if (MEM_STATUS_AT0(reg->bt_mem_start, node->m.regnum))\r
- len = SIZE_OP_MEMORY_START_PUSH;\r
- else\r
- len = SIZE_OP_MEMORY_START;\r
-\r
- len += tlen + (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum)\r
- ? SIZE_OP_MEMORY_END_PUSH : SIZE_OP_MEMORY_END);\r
- }\r
- break;\r
-\r
- case BAG_STOP_BACKTRACK:\r
- if (NODE_IS_STRICT_REAL_REPEAT(node)) {\r
- int v;\r
- QuantNode* qn;\r
-\r
- qn = QUANT_(NODE_BAG_BODY(node));\r
- tlen = compile_length_tree(NODE_QUANT_BODY(qn), reg);\r
- if (tlen < 0) return tlen;\r
-\r
- v = onig_positive_int_multiply(qn->lower, tlen);\r
- if (v < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
- len = v + SIZE_OP_PUSH + tlen + SIZE_OP_POP_OUT + SIZE_OP_JUMP;\r
- }\r
- else {\r
- len = SIZE_OP_ATOMIC_START + tlen + SIZE_OP_ATOMIC_END;\r
- }\r
- break;\r
-\r
- case BAG_IF_ELSE:\r
- {\r
- Node* cond = NODE_BAG_BODY(node);\r
- Node* Then = node->te.Then;\r
- Node* Else = node->te.Else;\r
-\r
- len = compile_length_tree(cond, reg);\r
- if (len < 0) return len;\r
- len += SIZE_OP_PUSH;\r
- len += SIZE_OP_ATOMIC_START + SIZE_OP_ATOMIC_END;\r
-\r
- if (IS_NOT_NULL(Then)) {\r
- tlen = compile_length_tree(Then, reg);\r
- if (tlen < 0) return tlen;\r
- len += tlen;\r
- }\r
-\r
- len += SIZE_OP_JUMP + SIZE_OP_ATOMIC_END;\r
-\r
- if (IS_NOT_NULL(Else)) {\r
- tlen = compile_length_tree(Else, reg);\r
- if (tlen < 0) return tlen;\r
- len += tlen;\r
- }\r
- }\r
- break;\r
-\r
- case BAG_OPTION:\r
- /* never come here, but set for escape warning */\r
- len = 0;\r
- break;\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static int get_char_len_node(Node* node, regex_t* reg, int* len);\r
-\r
-static int\r
-compile_bag_memory_node(BagNode* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r;\r
- int len;\r
-\r
-#ifdef USE_CALL\r
- if (NODE_IS_CALLED(node)) {\r
- r = add_op(reg, OP_CALL);\r
- if (r != 0) return r;\r
-\r
- node->m.called_addr = COP_CURR_OFFSET(reg) + 1 + SIZE_OP_JUMP;\r
- NODE_STATUS_ADD(node, ADDR_FIXED);\r
- COP(reg)->call.addr = (int )node->m.called_addr;\r
-\r
- if (node->m.regnum == 0) {\r
- len = compile_length_tree(NODE_BAG_BODY(node), reg);\r
- len += SIZE_OP_RETURN;\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = len + SIZE_INC_OP;\r
-\r
- r = compile_tree(NODE_BAG_BODY(node), reg, env);\r
- if (r != 0) return r;\r
-\r
- r = add_op(reg, OP_RETURN);\r
- return r;\r
- }\r
- else {\r
- len = compile_length_tree(NODE_BAG_BODY(node), reg);\r
- len += (SIZE_OP_MEMORY_START_PUSH + SIZE_OP_RETURN);\r
- if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum))\r
- len += (NODE_IS_RECURSION(node)\r
- ? SIZE_OP_MEMORY_END_PUSH_REC : SIZE_OP_MEMORY_END_PUSH);\r
- else\r
- len += (NODE_IS_RECURSION(node)\r
- ? SIZE_OP_MEMORY_END_REC : SIZE_OP_MEMORY_END);\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = len + SIZE_INC_OP;\r
- }\r
- }\r
-#endif\r
-\r
- if (MEM_STATUS_AT0(reg->bt_mem_start, node->m.regnum))\r
- r = add_op(reg, OP_MEMORY_START_PUSH);\r
- else\r
- r = add_op(reg, OP_MEMORY_START);\r
- if (r != 0) return r;\r
- COP(reg)->memory_start.num = node->m.regnum;\r
-\r
- r = compile_tree(NODE_BAG_BODY(node), reg, env);\r
- if (r != 0) return r;\r
-\r
-#ifdef USE_CALL\r
- if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum))\r
- r = add_op(reg, (NODE_IS_RECURSION(node)\r
- ? OP_MEMORY_END_PUSH_REC : OP_MEMORY_END_PUSH));\r
- else\r
- r = add_op(reg, (NODE_IS_RECURSION(node) ? OP_MEMORY_END_REC : OP_MEMORY_END));\r
- if (r != 0) return r;\r
- COP(reg)->memory_end.num = node->m.regnum;\r
-\r
- if (NODE_IS_CALLED(node)) {\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_RETURN);\r
- }\r
-#else\r
- if (MEM_STATUS_AT0(reg->bt_mem_end, node->m.regnum))\r
- r = add_op(reg, OP_MEMORY_END_PUSH);\r
- else\r
- r = add_op(reg, OP_MEMORY_END);\r
- if (r != 0) return r;\r
- COP(reg)->memory_end.num = node->m.regnum;\r
-#endif\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_bag_node(BagNode* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r, len;\r
-\r
- switch (node->type) {\r
- case BAG_MEMORY:\r
- r = compile_bag_memory_node(node, reg, env);\r
- break;\r
-\r
- case BAG_OPTION:\r
- r = compile_option_node(node, reg, env);\r
- break;\r
-\r
- case BAG_STOP_BACKTRACK:\r
- if (NODE_IS_STRICT_REAL_REPEAT(node)) {\r
- QuantNode* qn = QUANT_(NODE_BAG_BODY(node));\r
- r = compile_tree_n_times(NODE_QUANT_BODY(qn), qn->lower, reg, env);\r
- if (r != 0) return r;\r
-\r
- len = compile_length_tree(NODE_QUANT_BODY(qn), reg);\r
- if (len < 0) return len;\r
-\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = SIZE_INC_OP + len + SIZE_OP_POP_OUT + SIZE_OP_JUMP;\r
-\r
- r = compile_tree(NODE_QUANT_BODY(qn), reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_POP_OUT);\r
- if (r != 0) return r;\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = -((int )SIZE_OP_PUSH + len + (int )SIZE_OP_POP_OUT);\r
- }\r
- else {\r
- r = add_op(reg, OP_ATOMIC_START);\r
- if (r != 0) return r;\r
- r = compile_tree(NODE_BAG_BODY(node), reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_ATOMIC_END);\r
- }\r
- break;\r
-\r
- case BAG_IF_ELSE:\r
- {\r
- int cond_len, then_len, else_len, jump_len;\r
- Node* cond = NODE_BAG_BODY(node);\r
- Node* Then = node->te.Then;\r
- Node* Else = node->te.Else;\r
-\r
- r = add_op(reg, OP_ATOMIC_START);\r
- if (r != 0) return r;\r
-\r
- cond_len = compile_length_tree(cond, reg);\r
- if (cond_len < 0) return cond_len;\r
- if (IS_NOT_NULL(Then)) {\r
- then_len = compile_length_tree(Then, reg);\r
- if (then_len < 0) return then_len;\r
- }\r
- else\r
- then_len = 0;\r
-\r
- jump_len = cond_len + then_len + SIZE_OP_ATOMIC_END + SIZE_OP_JUMP;\r
-\r
- r = add_op(reg, OP_PUSH);\r
- if (r != 0) return r;\r
- COP(reg)->push.addr = SIZE_INC_OP + jump_len;\r
-\r
- r = compile_tree(cond, reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_ATOMIC_END);\r
- if (r != 0) return r;\r
-\r
- if (IS_NOT_NULL(Then)) {\r
- r = compile_tree(Then, reg, env);\r
- if (r != 0) return r;\r
- }\r
-\r
- if (IS_NOT_NULL(Else)) {\r
- else_len = compile_length_tree(Else, reg);\r
- if (else_len < 0) return else_len;\r
- }\r
- else\r
- else_len = 0;\r
-\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) return r;\r
- COP(reg)->jump.addr = SIZE_OP_ATOMIC_END + else_len + SIZE_INC_OP;\r
-\r
- r = add_op(reg, OP_ATOMIC_END);\r
- if (r != 0) return r;\r
-\r
- if (IS_NOT_NULL(Else)) {\r
- r = compile_tree(Else, reg, env);\r
- }\r
- }\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_length_anchor_node(AnchorNode* node, regex_t* reg)\r
-{\r
- int len;\r
- int tlen = 0;\r
-\r
- if (IS_NOT_NULL(NODE_ANCHOR_BODY(node))) {\r
- tlen = compile_length_tree(NODE_ANCHOR_BODY(node), reg);\r
- if (tlen < 0) return tlen;\r
- }\r
-\r
- switch (node->type) {\r
- case ANCR_PREC_READ:\r
- len = SIZE_OP_PREC_READ_START + tlen + SIZE_OP_PREC_READ_END;\r
- break;\r
- case ANCR_PREC_READ_NOT:\r
- len = SIZE_OP_PREC_READ_NOT_START + tlen + SIZE_OP_PREC_READ_NOT_END;\r
- break;\r
- case ANCR_LOOK_BEHIND:\r
- len = SIZE_OP_LOOK_BEHIND + tlen;\r
- break;\r
- case ANCR_LOOK_BEHIND_NOT:\r
- len = SIZE_OP_LOOK_BEHIND_NOT_START + tlen + SIZE_OP_LOOK_BEHIND_NOT_END;\r
- break;\r
-\r
- case ANCR_WORD_BOUNDARY:\r
- case ANCR_NO_WORD_BOUNDARY:\r
-#ifdef USE_WORD_BEGIN_END\r
- case ANCR_WORD_BEGIN:\r
- case ANCR_WORD_END:\r
-#endif\r
- len = SIZE_OP_WORD_BOUNDARY;\r
- break;\r
-\r
- case ANCR_TEXT_SEGMENT_BOUNDARY:\r
- case ANCR_NO_TEXT_SEGMENT_BOUNDARY:\r
- len = SIZE_OPCODE;\r
- break;\r
-\r
- default:\r
- len = SIZE_OPCODE;\r
- break;\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static int\r
-compile_anchor_node(AnchorNode* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r, len;\r
- enum OpCode op;\r
-\r
- switch (node->type) {\r
- case ANCR_BEGIN_BUF: r = add_op(reg, OP_BEGIN_BUF); break;\r
- case ANCR_END_BUF: r = add_op(reg, OP_END_BUF); break;\r
- case ANCR_BEGIN_LINE: r = add_op(reg, OP_BEGIN_LINE); break;\r
- case ANCR_END_LINE: r = add_op(reg, OP_END_LINE); break;\r
- case ANCR_SEMI_END_BUF: r = add_op(reg, OP_SEMI_END_BUF); break;\r
- case ANCR_BEGIN_POSITION: r = add_op(reg, OP_BEGIN_POSITION); break;\r
-\r
- case ANCR_WORD_BOUNDARY:\r
- op = OP_WORD_BOUNDARY;\r
- word:\r
- r = add_op(reg, op);\r
- if (r != 0) return r;\r
- COP(reg)->word_boundary.mode = (ModeType )node->ascii_mode;\r
- break;\r
-\r
- case ANCR_NO_WORD_BOUNDARY:\r
- op = OP_NO_WORD_BOUNDARY; goto word;\r
- break;\r
-#ifdef USE_WORD_BEGIN_END\r
- case ANCR_WORD_BEGIN:\r
- op = OP_WORD_BEGIN; goto word;\r
- break;\r
- case ANCR_WORD_END:\r
- op = OP_WORD_END; goto word;\r
- break;\r
-#endif\r
-\r
- case ANCR_TEXT_SEGMENT_BOUNDARY:\r
- case ANCR_NO_TEXT_SEGMENT_BOUNDARY:\r
- {\r
- enum TextSegmentBoundaryType type;\r
-\r
- r = add_op(reg, OP_TEXT_SEGMENT_BOUNDARY);\r
- if (r != 0) return r;\r
-\r
- type = EXTENDED_GRAPHEME_CLUSTER_BOUNDARY;\r
-#ifdef USE_UNICODE_WORD_BREAK\r
- if (ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_TEXT_SEGMENT_WORD))\r
- type = WORD_BOUNDARY;\r
-#endif\r
-\r
- COP(reg)->text_segment_boundary.type = type;\r
- COP(reg)->text_segment_boundary.not =\r
- (node->type == ANCR_NO_TEXT_SEGMENT_BOUNDARY ? 1 : 0);\r
- }\r
- break;\r
-\r
- case ANCR_PREC_READ:\r
- r = add_op(reg, OP_PREC_READ_START);\r
- if (r != 0) return r;\r
- r = compile_tree(NODE_ANCHOR_BODY(node), reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_PREC_READ_END);\r
- break;\r
-\r
- case ANCR_PREC_READ_NOT:\r
- len = compile_length_tree(NODE_ANCHOR_BODY(node), reg);\r
- if (len < 0) return len;\r
-\r
- r = add_op(reg, OP_PREC_READ_NOT_START);\r
- if (r != 0) return r;\r
- COP(reg)->prec_read_not_start.addr = SIZE_INC_OP + len + SIZE_OP_PREC_READ_NOT_END;\r
- r = compile_tree(NODE_ANCHOR_BODY(node), reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_PREC_READ_NOT_END);\r
- break;\r
-\r
- case ANCR_LOOK_BEHIND:\r
- {\r
- int n;\r
- r = add_op(reg, OP_LOOK_BEHIND);\r
- if (r != 0) return r;\r
- if (node->char_len < 0) {\r
- r = get_char_len_node(NODE_ANCHOR_BODY(node), reg, &n);\r
- if (r != 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- }\r
- else\r
- n = node->char_len;\r
-\r
- COP(reg)->look_behind.len = n;\r
- r = compile_tree(NODE_ANCHOR_BODY(node), reg, env);\r
- }\r
- break;\r
-\r
- case ANCR_LOOK_BEHIND_NOT:\r
- {\r
- int n;\r
-\r
- len = compile_length_tree(NODE_ANCHOR_BODY(node), reg);\r
- r = add_op(reg, OP_LOOK_BEHIND_NOT_START);\r
- if (r != 0) return r;\r
- COP(reg)->look_behind_not_start.addr = SIZE_INC_OP + len + SIZE_OP_LOOK_BEHIND_NOT_END;\r
-\r
- if (node->char_len < 0) {\r
- r = get_char_len_node(NODE_ANCHOR_BODY(node), reg, &n);\r
- if (r != 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- }\r
- else\r
- n = node->char_len;\r
-\r
- COP(reg)->look_behind_not_start.len = n;\r
-\r
- r = compile_tree(NODE_ANCHOR_BODY(node), reg, env);\r
- if (r != 0) return r;\r
- r = add_op(reg, OP_LOOK_BEHIND_NOT_END);\r
- }\r
- break;\r
-\r
- default:\r
- return ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_gimmick_node(GimmickNode* node, regex_t* reg)\r
-{\r
- int r;\r
-\r
- switch (node->type) {\r
- case GIMMICK_FAIL:\r
- r = add_op(reg, OP_FAIL);\r
- break;\r
-\r
- case GIMMICK_SAVE:\r
- r = add_op(reg, OP_PUSH_SAVE_VAL);\r
- if (r != 0) return r;\r
- COP(reg)->push_save_val.type = node->detail_type;\r
- COP(reg)->push_save_val.id = node->id;\r
- break;\r
-\r
- case GIMMICK_UPDATE_VAR:\r
- r = add_op(reg, OP_UPDATE_VAR);\r
- if (r != 0) return r;\r
- COP(reg)->update_var.type = node->detail_type;\r
- COP(reg)->update_var.id = node->id;\r
- break;\r
-\r
-#ifdef USE_CALLOUT\r
- case GIMMICK_CALLOUT:\r
- switch (node->detail_type) {\r
- case ONIG_CALLOUT_OF_CONTENTS:\r
- case ONIG_CALLOUT_OF_NAME:\r
- {\r
- if (node->detail_type == ONIG_CALLOUT_OF_NAME) {\r
- r = add_op(reg, OP_CALLOUT_NAME);\r
- if (r != 0) return r;\r
- COP(reg)->callout_name.id = node->id;\r
- COP(reg)->callout_name.num = node->num;\r
- }\r
- else {\r
- r = add_op(reg, OP_CALLOUT_CONTENTS);\r
- if (r != 0) return r;\r
- COP(reg)->callout_contents.num = node->num;\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- r = ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
-#endif\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_length_gimmick_node(GimmickNode* node, regex_t* reg)\r
-{\r
- int len;\r
-\r
- switch (node->type) {\r
- case GIMMICK_FAIL:\r
- len = SIZE_OP_FAIL;\r
- break;\r
-\r
- case GIMMICK_SAVE:\r
- len = SIZE_OP_PUSH_SAVE_VAL;\r
- break;\r
-\r
- case GIMMICK_UPDATE_VAR:\r
- len = SIZE_OP_UPDATE_VAR;\r
- break;\r
-\r
-#ifdef USE_CALLOUT\r
- case GIMMICK_CALLOUT:\r
- switch (node->detail_type) {\r
- case ONIG_CALLOUT_OF_CONTENTS:\r
- len = SIZE_OP_CALLOUT_CONTENTS;\r
- break;\r
- case ONIG_CALLOUT_OF_NAME:\r
- len = SIZE_OP_CALLOUT_NAME;\r
- break;\r
-\r
- default:\r
- len = ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
- break;\r
-#endif\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static int\r
-compile_length_tree(Node* node, regex_t* reg)\r
-{\r
- int len, r;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- len = 0;\r
- do {\r
- r = compile_length_tree(NODE_CAR(node), reg);\r
- if (r < 0) return r;\r
- len += r;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- r = len;\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- int n;\r
-\r
- n = r = 0;\r
- do {\r
- r += compile_length_tree(NODE_CAR(node), reg);\r
- n++;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- r += (SIZE_OP_PUSH + SIZE_OP_JUMP) * (n - 1);\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- if (NODE_STRING_IS_RAW(node))\r
- r = compile_length_string_raw_node(STR_(node), reg);\r
- else\r
- r = compile_length_string_node(node, reg);\r
- break;\r
-\r
- case NODE_CCLASS:\r
- r = compile_length_cclass_node(CCLASS_(node), reg);\r
- break;\r
-\r
- case NODE_CTYPE:\r
- r = SIZE_OPCODE;\r
- break;\r
-\r
- case NODE_BACKREF:\r
- r = SIZE_OP_BACKREF;\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- r = SIZE_OP_CALL;\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- r = compile_length_quantifier_node(QUANT_(node), reg);\r
- break;\r
-\r
- case NODE_BAG:\r
- r = compile_length_bag_node(BAG_(node), reg);\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- r = compile_length_anchor_node(ANCHOR_(node), reg);\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- r = compile_length_gimmick_node(GIMMICK_(node), reg);\r
- break;\r
-\r
- default:\r
- return ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-compile_tree(Node* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int n, len, pos, r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- do {\r
- r = compile_tree(NODE_CAR(node), reg, env);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- Node* x = node;\r
- len = 0;\r
- do {\r
- len += compile_length_tree(NODE_CAR(x), reg);\r
- if (IS_NOT_NULL(NODE_CDR(x))) {\r
- len += SIZE_OP_PUSH + SIZE_OP_JUMP;\r
- }\r
- } while (IS_NOT_NULL(x = NODE_CDR(x)));\r
- pos = COP_CURR_OFFSET(reg) + 1 + len; /* goal position */\r
-\r
- do {\r
- len = compile_length_tree(NODE_CAR(node), reg);\r
- if (IS_NOT_NULL(NODE_CDR(node))) {\r
- enum OpCode push = NODE_IS_SUPER(node) ? OP_PUSH_SUPER : OP_PUSH;\r
- r = add_op(reg, push);\r
- if (r != 0) break;\r
- COP(reg)->push.addr = SIZE_INC_OP + len + SIZE_OP_JUMP;\r
- }\r
- r = compile_tree(NODE_CAR(node), reg, env);\r
- if (r != 0) break;\r
- if (IS_NOT_NULL(NODE_CDR(node))) {\r
- len = pos - (COP_CURR_OFFSET(reg) + 1);\r
- r = add_op(reg, OP_JUMP);\r
- if (r != 0) break;\r
- COP(reg)->jump.addr = len;\r
- }\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- if (NODE_STRING_IS_RAW(node))\r
- r = compile_string_raw_node(STR_(node), reg);\r
- else\r
- r = compile_string_node(node, reg);\r
- break;\r
-\r
- case NODE_CCLASS:\r
- r = compile_cclass_node(CCLASS_(node), reg);\r
- break;\r
-\r
- case NODE_CTYPE:\r
- {\r
- int op;\r
-\r
- switch (CTYPE_(node)->ctype) {\r
- case CTYPE_ANYCHAR:\r
- r = add_op(reg, IS_MULTILINE(CTYPE_OPTION(node, reg)) ?\r
- OP_ANYCHAR_ML : OP_ANYCHAR);\r
- break;\r
-\r
- case ONIGENC_CTYPE_WORD:\r
- if (CTYPE_(node)->ascii_mode == 0) {\r
- op = CTYPE_(node)->not != 0 ? OP_NO_WORD : OP_WORD;\r
- }\r
- else {\r
- op = CTYPE_(node)->not != 0 ? OP_NO_WORD_ASCII : OP_WORD_ASCII;\r
- }\r
- r = add_op(reg, op);\r
- break;\r
-\r
- default:\r
- return ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- {\r
- BackRefNode* br = BACKREF_(node);\r
-\r
- if (NODE_IS_CHECKER(node)) {\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- if (NODE_IS_NEST_LEVEL(node)) {\r
- r = add_op(reg, OP_BACKREF_CHECK_WITH_LEVEL);\r
- if (r != 0) return r;\r
- COP(reg)->backref_general.nest_level = br->nest_level;\r
- }\r
- else\r
-#endif\r
- {\r
- r = add_op(reg, OP_BACKREF_CHECK);\r
- if (r != 0) return r;\r
- }\r
- goto add_bacref_mems;\r
- }\r
- else {\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- if (NODE_IS_NEST_LEVEL(node)) {\r
- if ((reg->options & ONIG_OPTION_IGNORECASE) != 0)\r
- r = add_op(reg, OP_BACKREF_WITH_LEVEL_IC);\r
- else\r
- r = add_op(reg, OP_BACKREF_WITH_LEVEL);\r
-\r
- if (r != 0) return r;\r
- COP(reg)->backref_general.nest_level = br->nest_level;\r
- goto add_bacref_mems;\r
- }\r
- else\r
-#endif\r
- if (br->back_num == 1) {\r
- n = br->back_static[0];\r
- if (IS_IGNORECASE(reg->options)) {\r
- r = add_op(reg, OP_BACKREF_N_IC);\r
- if (r != 0) return r;\r
- COP(reg)->backref_n.n1 = n;\r
- }\r
- else {\r
- switch (n) {\r
- case 1: r = add_op(reg, OP_BACKREF1); break;\r
- case 2: r = add_op(reg, OP_BACKREF2); break;\r
- default:\r
- r = add_op(reg, OP_BACKREF_N);\r
- if (r != 0) return r;\r
- COP(reg)->backref_n.n1 = n;\r
- break;\r
- }\r
- }\r
- }\r
- else {\r
- int num;\r
- int* p;\r
-\r
- r = add_op(reg, IS_IGNORECASE(reg->options) ?\r
- OP_BACKREF_MULTI_IC : OP_BACKREF_MULTI);\r
- if (r != 0) return r;\r
-\r
- add_bacref_mems:\r
- num = br->back_num;\r
- COP(reg)->backref_general.num = num;\r
- if (num == 1) {\r
- COP(reg)->backref_general.n1 = br->back_static[0];\r
- }\r
- else {\r
- int i, j;\r
- MemNumType* ns;\r
-\r
- ns = xmalloc(sizeof(MemNumType) * num);\r
- CHECK_NULL_RETURN_MEMERR(ns);\r
- COP(reg)->backref_general.ns = ns;\r
- p = BACKREFS_P(br);\r
- for (i = num - 1, j = 0; i >= 0; i--, j++) {\r
- ns[j] = p[i];\r
- }\r
- }\r
- }\r
- }\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- r = compile_call(CALL_(node), reg, env);\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- r = compile_quantifier_node(QUANT_(node), reg, env);\r
- break;\r
-\r
- case NODE_BAG:\r
- r = compile_bag_node(BAG_(node), reg, env);\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- r = compile_anchor_node(ANCHOR_(node), reg, env);\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- r = compile_gimmick_node(GIMMICK_(node), reg);\r
- break;\r
-\r
- default:\r
-#ifdef ONIG_DEBUG\r
- fprintf(stderr, "compile_tree: undefined node type %d\n", NODE_TYPE(node));\r
-#endif\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-noname_disable_map(Node** plink, GroupNumRemap* map, int* counter)\r
-{\r
- int r = 0;\r
- Node* node = *plink;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = noname_disable_map(&(NODE_CAR(node)), map, counter);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- Node** ptarget = &(NODE_BODY(node));\r
- Node* old = *ptarget;\r
- r = noname_disable_map(ptarget, map, counter);\r
- if (*ptarget != old && NODE_TYPE(*ptarget) == NODE_QUANT) {\r
- onig_reduce_nested_quantifier(node, *ptarget);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_NAMED_GROUP(node)) {\r
- (*counter)++;\r
- map[en->m.regnum].new_val = *counter;\r
- en->m.regnum = *counter;\r
- r = noname_disable_map(&(NODE_BODY(node)), map, counter);\r
- }\r
- else {\r
- *plink = NODE_BODY(node);\r
- NODE_BODY(node) = NULL_NODE;\r
- onig_node_free(node);\r
- r = noname_disable_map(plink, map, counter);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- r = noname_disable_map(&(NODE_BAG_BODY(en)), map, counter);\r
- if (r != 0) return r;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = noname_disable_map(&(en->te.Then), map, counter);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = noname_disable_map(&(en->te.Else), map, counter);\r
- if (r != 0) return r;\r
- }\r
- }\r
- else\r
- r = noname_disable_map(&(NODE_BODY(node)), map, counter);\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (IS_NOT_NULL(NODE_BODY(node)))\r
- r = noname_disable_map(&(NODE_BODY(node)), map, counter);\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-renumber_node_backref(Node* node, GroupNumRemap* map)\r
-{\r
- int i, pos, n, old_num;\r
- int *backs;\r
- BackRefNode* bn = BACKREF_(node);\r
-\r
- if (! NODE_IS_BY_NAME(node))\r
- return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED;\r
-\r
- old_num = bn->back_num;\r
- if (IS_NULL(bn->back_dynamic))\r
- backs = bn->back_static;\r
- else\r
- backs = bn->back_dynamic;\r
-\r
- for (i = 0, pos = 0; i < old_num; i++) {\r
- n = map[backs[i]].new_val;\r
- if (n > 0) {\r
- backs[pos] = n;\r
- pos++;\r
- }\r
- }\r
-\r
- bn->back_num = pos;\r
- return 0;\r
-}\r
-\r
-static int\r
-renumber_by_map(Node* node, GroupNumRemap* map)\r
-{\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = renumber_by_map(NODE_CAR(node), map);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- r = renumber_by_map(NODE_BODY(node), map);\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- r = renumber_by_map(NODE_BODY(node), map);\r
- if (r != 0) return r;\r
-\r
- if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = renumber_by_map(en->te.Then, map);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = renumber_by_map(en->te.Else, map);\r
- if (r != 0) return r;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- r = renumber_node_backref(node, map);\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (IS_NOT_NULL(NODE_BODY(node)))\r
- r = renumber_by_map(NODE_BODY(node), map);\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-numbered_ref_check(Node* node)\r
-{\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = numbered_ref_check(NODE_CAR(node));\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (IS_NULL(NODE_BODY(node)))\r
- break;\r
- /* fall */\r
- case NODE_QUANT:\r
- r = numbered_ref_check(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- r = numbered_ref_check(NODE_BODY(node));\r
- if (r != 0) return r;\r
-\r
- if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = numbered_ref_check(en->te.Then);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = numbered_ref_check(en->te.Else);\r
- if (r != 0) return r;\r
- }\r
- }\r
- }\r
-\r
- break;\r
-\r
- case NODE_BACKREF:\r
- if (! NODE_IS_BY_NAME(node))\r
- return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-disable_noname_group_capture(Node** root, regex_t* reg, ScanEnv* env)\r
-{\r
- int r, i, pos, counter;\r
- int result;\r
- MemStatusType loc;\r
- GroupNumRemap* map;\r
-\r
- map = (GroupNumRemap* )xmalloc(sizeof(GroupNumRemap) * (env->num_mem + 1));\r
- CHECK_NULL_RETURN_MEMERR(map);\r
- for (i = 1; i <= env->num_mem; i++) {\r
- map[i].new_val = 0;\r
- }\r
- counter = 0;\r
- r = noname_disable_map(root, map, &counter);\r
- if (r != 0) return r;\r
-\r
- r = renumber_by_map(*root, map);\r
- if (r != 0) return r;\r
-\r
- for (i = 1, pos = 1; i <= env->num_mem; i++) {\r
- if (map[i].new_val > 0) {\r
- SCANENV_MEMENV(env)[pos] = SCANENV_MEMENV(env)[i];\r
- pos++;\r
- }\r
- }\r
-\r
- loc = env->capture_history;\r
- MEM_STATUS_CLEAR(env->capture_history);\r
- for (i = 1; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) {\r
- if (MEM_STATUS_AT(loc, i)) {\r
- MEM_STATUS_ON_SIMPLE(env->capture_history, map[i].new_val);\r
- }\r
- }\r
-\r
- env->num_mem = env->num_named;\r
- reg->num_mem = env->num_named;\r
- result = onig_renumber_name_table(reg, map);\r
- xfree(map);\r
- return result;\r
-}\r
-\r
-#ifdef USE_CALL\r
-static int\r
-fix_unset_addr_list(UnsetAddrList* uslist, regex_t* reg)\r
-{\r
- int i, offset;\r
- BagNode* en;\r
- AbsAddrType addr;\r
- AbsAddrType* paddr;\r
-\r
- for (i = 0; i < uslist->num; i++) {\r
- if (! NODE_IS_ADDR_FIXED(uslist->us[i].target))\r
- return ONIGERR_PARSER_BUG;\r
-\r
- en = BAG_(uslist->us[i].target);\r
- addr = en->m.called_addr;\r
- offset = uslist->us[i].offset;\r
-\r
- paddr = (AbsAddrType* )((char* )reg->ops + offset);\r
- *paddr = addr;\r
- }\r
- return 0;\r
-}\r
-#endif\r
-\r
-\r
-#define GET_CHAR_LEN_VARLEN -1\r
-#define GET_CHAR_LEN_TOP_ALT_VARLEN -2\r
-\r
-/* fixed size pattern node only */\r
-static int\r
-get_char_len_node1(Node* node, regex_t* reg, int* len, int level)\r
-{\r
- int tlen;\r
- int r = 0;\r
-\r
- level++;\r
- *len = 0;\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- do {\r
- r = get_char_len_node1(NODE_CAR(node), reg, &tlen, level);\r
- if (r == 0)\r
- *len = distance_add(*len, tlen);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- int tlen2;\r
- int varlen = 0;\r
-\r
- r = get_char_len_node1(NODE_CAR(node), reg, &tlen, level);\r
- while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node))) {\r
- r = get_char_len_node1(NODE_CAR(node), reg, &tlen2, level);\r
- if (r == 0) {\r
- if (tlen != tlen2)\r
- varlen = 1;\r
- }\r
- }\r
- if (r == 0) {\r
- if (varlen != 0) {\r
- if (level == 1)\r
- r = GET_CHAR_LEN_TOP_ALT_VARLEN;\r
- else\r
- r = GET_CHAR_LEN_VARLEN;\r
- }\r
- else\r
- *len = tlen;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
- UChar *s = sn->s;\r
-\r
- while (s < sn->end) {\r
- s += enclen(reg->enc, s);\r
- (*len)++;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
-\r
- if (qn->lower == qn->upper) {\r
- if (qn->upper == 0) {\r
- *len = 0;\r
- }\r
- else {\r
- r = get_char_len_node1(NODE_BODY(node), reg, &tlen, level);\r
- if (r == 0)\r
- *len = distance_multiply(tlen, qn->lower);\r
- }\r
- }\r
- else\r
- r = GET_CHAR_LEN_VARLEN;\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- if (! NODE_IS_RECURSION(node))\r
- r = get_char_len_node1(NODE_BODY(node), reg, len, level);\r
- else\r
- r = GET_CHAR_LEN_VARLEN;\r
- break;\r
-#endif\r
-\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- *len = 1;\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- switch (en->type) {\r
- case BAG_MEMORY:\r
-#ifdef USE_CALL\r
- if (NODE_IS_CLEN_FIXED(node))\r
- *len = en->char_len;\r
- else {\r
- r = get_char_len_node1(NODE_BODY(node), reg, len, level);\r
- if (r == 0) {\r
- en->char_len = *len;\r
- NODE_STATUS_ADD(node, CLEN_FIXED);\r
- }\r
- }\r
- break;\r
-#endif\r
- case BAG_OPTION:\r
- case BAG_STOP_BACKTRACK:\r
- r = get_char_len_node1(NODE_BODY(node), reg, len, level);\r
- break;\r
- case BAG_IF_ELSE:\r
- {\r
- int clen, elen;\r
-\r
- r = get_char_len_node1(NODE_BODY(node), reg, &clen, level);\r
- if (r == 0) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = get_char_len_node1(en->te.Then, reg, &tlen, level);\r
- if (r != 0) break;\r
- }\r
- else tlen = 0;\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = get_char_len_node1(en->te.Else, reg, &elen, level);\r
- if (r != 0) break;\r
- }\r
- else elen = 0;\r
-\r
- if (clen + tlen != elen) {\r
- r = GET_CHAR_LEN_VARLEN;\r
- }\r
- else {\r
- *len = elen;\r
- }\r
- }\r
- }\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- case NODE_GIMMICK:\r
- break;\r
-\r
- case NODE_BACKREF:\r
- if (NODE_IS_CHECKER(node))\r
- break;\r
- /* fall */\r
- default:\r
- r = GET_CHAR_LEN_VARLEN;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-get_char_len_node(Node* node, regex_t* reg, int* len)\r
-{\r
- return get_char_len_node1(node, reg, len, 0);\r
-}\r
-\r
-/* x is not included y ==> 1 : 0 */\r
-static int\r
-is_exclusive(Node* x, Node* y, regex_t* reg)\r
-{\r
- int i, len;\r
- OnigCodePoint code;\r
- UChar *p;\r
- NodeType ytype;\r
-\r
- retry:\r
- ytype = NODE_TYPE(y);\r
- switch (NODE_TYPE(x)) {\r
- case NODE_CTYPE:\r
- {\r
- if (CTYPE_(x)->ctype == CTYPE_ANYCHAR ||\r
- CTYPE_(y)->ctype == CTYPE_ANYCHAR)\r
- break;\r
-\r
- switch (ytype) {\r
- case NODE_CTYPE:\r
- if (CTYPE_(y)->ctype == CTYPE_(x)->ctype &&\r
- CTYPE_(y)->not != CTYPE_(x)->not &&\r
- CTYPE_(y)->ascii_mode == CTYPE_(x)->ascii_mode)\r
- return 1;\r
- else\r
- return 0;\r
- break;\r
-\r
- case NODE_CCLASS:\r
- swap:\r
- {\r
- Node* tmp;\r
- tmp = x; x = y; y = tmp;\r
- goto retry;\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- goto swap;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- {\r
- int range;\r
- CClassNode* xc = CCLASS_(x);\r
-\r
- switch (ytype) {\r
- case NODE_CTYPE:\r
- switch (CTYPE_(y)->ctype) {\r
- case CTYPE_ANYCHAR:\r
- return 0;\r
- break;\r
-\r
- case ONIGENC_CTYPE_WORD:\r
- if (CTYPE_(y)->not == 0) {\r
- if (IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) {\r
- range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE;\r
- for (i = 0; i < range; i++) {\r
- if (BITSET_AT(xc->bs, i)) {\r
- if (ONIGENC_IS_CODE_WORD(reg->enc, i)) return 0;\r
- }\r
- }\r
- return 1;\r
- }\r
- return 0;\r
- }\r
- else {\r
- if (IS_NOT_NULL(xc->mbuf)) return 0;\r
- if (IS_NCCLASS_NOT(xc)) return 0;\r
-\r
- range = CTYPE_(y)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE;\r
- for (i = 0; i < range; i++) {\r
- if (! ONIGENC_IS_CODE_WORD(reg->enc, i)) {\r
- if (BITSET_AT(xc->bs, i))\r
- return 0;\r
- }\r
- }\r
- for (i = range; i < SINGLE_BYTE_SIZE; i++) {\r
- if (BITSET_AT(xc->bs, i)) return 0;\r
- }\r
- return 1;\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- {\r
- int v;\r
- CClassNode* yc = CCLASS_(y);\r
-\r
- for (i = 0; i < SINGLE_BYTE_SIZE; i++) {\r
- v = BITSET_AT(xc->bs, i);\r
- if ((v != 0 && !IS_NCCLASS_NOT(xc)) || (v == 0 && IS_NCCLASS_NOT(xc))) {\r
- v = BITSET_AT(yc->bs, i);\r
- if ((v != 0 && !IS_NCCLASS_NOT(yc)) ||\r
- (v == 0 && IS_NCCLASS_NOT(yc)))\r
- return 0;\r
- }\r
- }\r
- if ((IS_NULL(xc->mbuf) && !IS_NCCLASS_NOT(xc)) ||\r
- (IS_NULL(yc->mbuf) && !IS_NCCLASS_NOT(yc)))\r
- return 1;\r
- return 0;\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- goto swap;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* xs = STR_(x);\r
-\r
- if (NODE_STRING_LEN(x) == 0)\r
- break;\r
-\r
- switch (ytype) {\r
- case NODE_CTYPE:\r
- switch (CTYPE_(y)->ctype) {\r
- case CTYPE_ANYCHAR:\r
- break;\r
-\r
- case ONIGENC_CTYPE_WORD:\r
- if (CTYPE_(y)->ascii_mode == 0) {\r
- if (ONIGENC_IS_MBC_WORD(reg->enc, xs->s, xs->end))\r
- return CTYPE_(y)->not;\r
- else\r
- return !(CTYPE_(y)->not);\r
- }\r
- else {\r
- if (ONIGENC_IS_MBC_WORD_ASCII(reg->enc, xs->s, xs->end))\r
- return CTYPE_(y)->not;\r
- else\r
- return !(CTYPE_(y)->not);\r
- }\r
- break;\r
- default:\r
- break;\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- {\r
- CClassNode* cc = CCLASS_(y);\r
-\r
- code = ONIGENC_MBC_TO_CODE(reg->enc, xs->s,\r
- xs->s + ONIGENC_MBC_MAXLEN(reg->enc));\r
- return onig_is_code_in_cc(reg->enc, code, cc) == 0;\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- UChar *q;\r
- StrNode* ys = STR_(y);\r
-\r
- len = NODE_STRING_LEN(x);\r
- if (len > NODE_STRING_LEN(y)) len = NODE_STRING_LEN(y);\r
- if (NODE_STRING_IS_AMBIG(x) || NODE_STRING_IS_AMBIG(y)) {\r
- /* tiny version */\r
- return 0;\r
- }\r
- else {\r
- for (i = 0, p = ys->s, q = xs->s; i < len; i++, p++, q++) {\r
- if (*p != *q) return 1;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static Node*\r
-get_head_value_node(Node* node, int exact, regex_t* reg)\r
-{\r
- Node* n = NULL_NODE;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_BACKREF:\r
- case NODE_ALT:\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
-#endif\r
- break;\r
-\r
- case NODE_CTYPE:\r
- if (CTYPE_(node)->ctype == CTYPE_ANYCHAR)\r
- break;\r
- /* fall */\r
- case NODE_CCLASS:\r
- if (exact == 0) {\r
- n = node;\r
- }\r
- break;\r
-\r
- case NODE_LIST:\r
- n = get_head_value_node(NODE_CAR(node), exact, reg);\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
-\r
- if (sn->end <= sn->s)\r
- break;\r
-\r
- if (exact == 0 ||\r
- ! IS_IGNORECASE(reg->options) || NODE_STRING_IS_RAW(node)) {\r
- n = node;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
- if (qn->lower > 0) {\r
- if (IS_NOT_NULL(qn->head_exact))\r
- n = qn->head_exact;\r
- else\r
- n = get_head_value_node(NODE_BODY(node), exact, reg);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- switch (en->type) {\r
- case BAG_OPTION:\r
- {\r
- OnigOptionType options = reg->options;\r
-\r
- reg->options = BAG_(node)->o.options;\r
- n = get_head_value_node(NODE_BODY(node), exact, reg);\r
- reg->options = options;\r
- }\r
- break;\r
-\r
- case BAG_MEMORY:\r
- case BAG_STOP_BACKTRACK:\r
- case BAG_IF_ELSE:\r
- n = get_head_value_node(NODE_BODY(node), exact, reg);\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (ANCHOR_(node)->type == ANCR_PREC_READ)\r
- n = get_head_value_node(NODE_BODY(node), exact, reg);\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
-\r
- return n;\r
-}\r
-\r
-static int\r
-check_type_tree(Node* node, int type_mask, int bag_mask, int anchor_mask)\r
-{\r
- NodeType type;\r
- int r = 0;\r
-\r
- type = NODE_TYPE(node);\r
- if ((NODE_TYPE2BIT(type) & type_mask) == 0)\r
- return 1;\r
-\r
- switch (type) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = check_type_tree(NODE_CAR(node), type_mask, bag_mask, anchor_mask);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask);\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- if (((1<<en->type) & bag_mask) == 0)\r
- return 1;\r
-\r
- r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask);\r
- if (r == 0 && en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = check_type_tree(en->te.Then, type_mask, bag_mask, anchor_mask);\r
- if (r != 0) break;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = check_type_tree(en->te.Else, type_mask, bag_mask, anchor_mask);\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- type = ANCHOR_(node)->type;\r
- if ((type & anchor_mask) == 0)\r
- return 1;\r
-\r
- if (IS_NOT_NULL(NODE_BODY(node)))\r
- r = check_type_tree(NODE_BODY(node), type_mask, bag_mask, anchor_mask);\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
- return r;\r
-}\r
-\r
-static OnigLen\r
-tree_min_len(Node* node, ScanEnv* env)\r
-{\r
- OnigLen len;\r
- OnigLen tmin;\r
-\r
- len = 0;\r
- switch (NODE_TYPE(node)) {\r
- case NODE_BACKREF:\r
- if (! NODE_IS_CHECKER(node)) {\r
- int i;\r
- int* backs;\r
- MemEnv* mem_env = SCANENV_MEMENV(env);\r
- BackRefNode* br = BACKREF_(node);\r
- if (NODE_IS_RECURSION(node)) break;\r
-\r
- backs = BACKREFS_P(br);\r
- len = tree_min_len(mem_env[backs[0]].node, env);\r
- for (i = 1; i < br->back_num; i++) {\r
- tmin = tree_min_len(mem_env[backs[i]].node, env);\r
- if (len > tmin) len = tmin;\r
- }\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- {\r
- Node* t = NODE_BODY(node);\r
- if (NODE_IS_RECURSION(node)) {\r
- if (NODE_IS_MIN_FIXED(t))\r
- len = BAG_(t)->min_len;\r
- }\r
- else\r
- len = tree_min_len(t, env);\r
- }\r
- break;\r
-#endif\r
-\r
- case NODE_LIST:\r
- do {\r
- tmin = tree_min_len(NODE_CAR(node), env);\r
- len = distance_add(len, tmin);\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- Node *x, *y;\r
- y = node;\r
- do {\r
- x = NODE_CAR(y);\r
- tmin = tree_min_len(x, env);\r
- if (y == node) len = tmin;\r
- else if (len > tmin) len = tmin;\r
- } while (IS_NOT_NULL(y = NODE_CDR(y)));\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
- len = (int )(sn->end - sn->s);\r
- }\r
- break;\r
-\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- len = ONIGENC_MBC_MINLEN(env->enc);\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
-\r
- if (qn->lower > 0) {\r
- len = tree_min_len(NODE_BODY(node), env);\r
- len = distance_multiply(len, qn->lower);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- switch (en->type) {\r
- case BAG_MEMORY:\r
- if (NODE_IS_MIN_FIXED(node))\r
- len = en->min_len;\r
- else {\r
- if (NODE_IS_MARK1(node))\r
- len = 0; /* recursive */\r
- else {\r
- NODE_STATUS_ADD(node, MARK1);\r
- len = tree_min_len(NODE_BODY(node), env);\r
- NODE_STATUS_REMOVE(node, MARK1);\r
-\r
- en->min_len = len;\r
- NODE_STATUS_ADD(node, MIN_FIXED);\r
- }\r
- }\r
- break;\r
-\r
- case BAG_OPTION:\r
- case BAG_STOP_BACKTRACK:\r
- len = tree_min_len(NODE_BODY(node), env);\r
- break;\r
- case BAG_IF_ELSE:\r
- {\r
- OnigLen elen;\r
-\r
- len = tree_min_len(NODE_BODY(node), env);\r
- if (IS_NOT_NULL(en->te.Then))\r
- len += tree_min_len(en->te.Then, env);\r
- if (IS_NOT_NULL(en->te.Else))\r
- elen = tree_min_len(en->te.Else, env);\r
- else elen = 0;\r
-\r
- if (elen < len) len = elen;\r
- }\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- {\r
- GimmickNode* g = GIMMICK_(node);\r
- if (g->type == GIMMICK_FAIL) {\r
- len = INFINITE_LEN;\r
- break;\r
- }\r
- }\r
- /* fall */\r
- case NODE_ANCHOR:\r
- default:\r
- break;\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static OnigLen\r
-tree_max_len(Node* node, ScanEnv* env)\r
-{\r
- OnigLen len;\r
- OnigLen tmax;\r
-\r
- len = 0;\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- do {\r
- tmax = tree_max_len(NODE_CAR(node), env);\r
- len = distance_add(len, tmax);\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ALT:\r
- do {\r
- tmax = tree_max_len(NODE_CAR(node), env);\r
- if (len < tmax) len = tmax;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
- len = (OnigLen )(sn->end - sn->s);\r
- }\r
- break;\r
-\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- len = ONIGENC_MBC_MAXLEN_DIST(env->enc);\r
- break;\r
-\r
- case NODE_BACKREF:\r
- if (! NODE_IS_CHECKER(node)) {\r
- int i;\r
- int* backs;\r
- MemEnv* mem_env = SCANENV_MEMENV(env);\r
- BackRefNode* br = BACKREF_(node);\r
- if (NODE_IS_RECURSION(node)) {\r
- len = INFINITE_LEN;\r
- break;\r
- }\r
- backs = BACKREFS_P(br);\r
- for (i = 0; i < br->back_num; i++) {\r
- tmax = tree_max_len(mem_env[backs[i]].node, env);\r
- if (len < tmax) len = tmax;\r
- }\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- if (! NODE_IS_RECURSION(node))\r
- len = tree_max_len(NODE_BODY(node), env);\r
- else\r
- len = INFINITE_LEN;\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
-\r
- if (qn->upper != 0) {\r
- len = tree_max_len(NODE_BODY(node), env);\r
- if (len != 0) {\r
- if (! IS_INFINITE_REPEAT(qn->upper))\r
- len = distance_multiply(len, qn->upper);\r
- else\r
- len = INFINITE_LEN;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- switch (en->type) {\r
- case BAG_MEMORY:\r
- if (NODE_IS_MAX_FIXED(node))\r
- len = en->max_len;\r
- else {\r
- if (NODE_IS_MARK1(node))\r
- len = INFINITE_LEN;\r
- else {\r
- NODE_STATUS_ADD(node, MARK1);\r
- len = tree_max_len(NODE_BODY(node), env);\r
- NODE_STATUS_REMOVE(node, MARK1);\r
-\r
- en->max_len = len;\r
- NODE_STATUS_ADD(node, MAX_FIXED);\r
- }\r
- }\r
- break;\r
-\r
- case BAG_OPTION:\r
- case BAG_STOP_BACKTRACK:\r
- len = tree_max_len(NODE_BODY(node), env);\r
- break;\r
- case BAG_IF_ELSE:\r
- {\r
- OnigLen tlen, elen;\r
-\r
- len = tree_max_len(NODE_BODY(node), env);\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- tlen = tree_max_len(en->te.Then, env);\r
- len = distance_add(len, tlen);\r
- }\r
- if (IS_NOT_NULL(en->te.Else))\r
- elen = tree_max_len(en->te.Else, env);\r
- else elen = 0;\r
-\r
- if (elen > len) len = elen;\r
- }\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
-\r
- return len;\r
-}\r
-\r
-static int\r
-check_backrefs(Node* node, ScanEnv* env)\r
-{\r
- int r;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = check_backrefs(NODE_CAR(node), env);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (! ANCHOR_HAS_BODY(ANCHOR_(node))) {\r
- r = 0;\r
- break;\r
- }\r
- /* fall */\r
- case NODE_QUANT:\r
- r = check_backrefs(NODE_BODY(node), env);\r
- break;\r
-\r
- case NODE_BAG:\r
- r = check_backrefs(NODE_BODY(node), env);\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_IF_ELSE) {\r
- if (r != 0) return r;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = check_backrefs(en->te.Then, env);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = check_backrefs(en->te.Else, env);\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- {\r
- int i;\r
- BackRefNode* br = BACKREF_(node);\r
- int* backs = BACKREFS_P(br);\r
- MemEnv* mem_env = SCANENV_MEMENV(env);\r
-\r
- for (i = 0; i < br->back_num; i++) {\r
- if (backs[i] > env->num_mem)\r
- return ONIGERR_INVALID_BACKREF;\r
-\r
- NODE_STATUS_ADD(mem_env[backs[i]].node, BACKREF);\r
- }\r
- r = 0;\r
- }\r
- break;\r
-\r
- default:\r
- r = 0;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-\r
-#ifdef USE_CALL\r
-\r
-#define RECURSION_EXIST (1<<0)\r
-#define RECURSION_MUST (1<<1)\r
-#define RECURSION_INFINITE (1<<2)\r
-\r
-static int\r
-infinite_recursive_call_check(Node* node, ScanEnv* env, int head)\r
-{\r
- int ret;\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- {\r
- Node *x;\r
- OnigLen min;\r
-\r
- x = node;\r
- do {\r
- ret = infinite_recursive_call_check(NODE_CAR(x), env, head);\r
- if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret;\r
- r |= ret;\r
- if (head != 0) {\r
- min = tree_min_len(NODE_CAR(x), env);\r
- if (min != 0) head = 0;\r
- }\r
- } while (IS_NOT_NULL(x = NODE_CDR(x)));\r
- }\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- int must;\r
-\r
- must = RECURSION_MUST;\r
- do {\r
- ret = infinite_recursive_call_check(NODE_CAR(node), env, head);\r
- if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret;\r
-\r
- r |= (ret & RECURSION_EXIST);\r
- must &= ret;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- r |= must;\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- r = infinite_recursive_call_check(NODE_BODY(node), env, head);\r
- if (r < 0) return r;\r
- if ((r & RECURSION_MUST) != 0) {\r
- if (QUANT_(node)->lower == 0)\r
- r &= ~RECURSION_MUST;\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (! ANCHOR_HAS_BODY(ANCHOR_(node)))\r
- break;\r
- /* fall */\r
- case NODE_CALL:\r
- r = infinite_recursive_call_check(NODE_BODY(node), env, head);\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_MARK2(node))\r
- return 0;\r
- else if (NODE_IS_MARK1(node))\r
- return (head == 0 ? RECURSION_EXIST | RECURSION_MUST\r
- : RECURSION_EXIST | RECURSION_MUST | RECURSION_INFINITE);\r
- else {\r
- NODE_STATUS_ADD(node, MARK2);\r
- r = infinite_recursive_call_check(NODE_BODY(node), env, head);\r
- NODE_STATUS_REMOVE(node, MARK2);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- int eret;\r
-\r
- ret = infinite_recursive_call_check(NODE_BODY(node), env, head);\r
- if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret;\r
- r |= ret;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- OnigLen min;\r
- if (head != 0) {\r
- min = tree_min_len(NODE_BODY(node), env);\r
- }\r
- else min = 0;\r
-\r
- ret = infinite_recursive_call_check(en->te.Then, env, min != 0 ? 0:head);\r
- if (ret < 0 || (ret & RECURSION_INFINITE) != 0) return ret;\r
- r |= ret;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- eret = infinite_recursive_call_check(en->te.Else, env, head);\r
- if (eret < 0 || (eret & RECURSION_INFINITE) != 0) return eret;\r
- r |= (eret & RECURSION_EXIST);\r
- if ((eret & RECURSION_MUST) == 0)\r
- r &= ~RECURSION_MUST;\r
- }\r
- }\r
- else {\r
- r = infinite_recursive_call_check(NODE_BODY(node), env, head);\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-infinite_recursive_call_check_trav(Node* node, ScanEnv* env)\r
-{\r
- int r;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = infinite_recursive_call_check_trav(NODE_CAR(node), env);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (! ANCHOR_HAS_BODY(ANCHOR_(node))) {\r
- r = 0;\r
- break;\r
- }\r
- /* fall */\r
- case NODE_QUANT:\r
- r = infinite_recursive_call_check_trav(NODE_BODY(node), env);\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_RECURSION(node) && NODE_IS_CALLED(node)) {\r
- int ret;\r
-\r
- NODE_STATUS_ADD(node, MARK1);\r
-\r
- ret = infinite_recursive_call_check(NODE_BODY(node), env, 1);\r
- if (ret < 0) return ret;\r
- else if ((ret & (RECURSION_MUST | RECURSION_INFINITE)) != 0)\r
- return ONIGERR_NEVER_ENDING_RECURSION;\r
-\r
- NODE_STATUS_REMOVE(node, MARK1);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = infinite_recursive_call_check_trav(en->te.Then, env);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = infinite_recursive_call_check_trav(en->te.Else, env);\r
- if (r != 0) return r;\r
- }\r
- }\r
- }\r
-\r
- r = infinite_recursive_call_check_trav(NODE_BODY(node), env);\r
- break;\r
-\r
- default:\r
- r = 0;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-recursive_call_check(Node* node)\r
-{\r
- int r;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- r = 0;\r
- do {\r
- r |= recursive_call_check(NODE_CAR(node));\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (! ANCHOR_HAS_BODY(ANCHOR_(node))) {\r
- r = 0;\r
- break;\r
- }\r
- /* fall */\r
- case NODE_QUANT:\r
- r = recursive_call_check(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_CALL:\r
- r = recursive_call_check(NODE_BODY(node));\r
- if (r != 0) {\r
- if (NODE_IS_MARK1(NODE_BODY(node)))\r
- NODE_STATUS_ADD(node, RECURSION);\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_MARK2(node))\r
- return 0;\r
- else if (NODE_IS_MARK1(node))\r
- return 1; /* recursion */\r
- else {\r
- NODE_STATUS_ADD(node, MARK2);\r
- r = recursive_call_check(NODE_BODY(node));\r
- NODE_STATUS_REMOVE(node, MARK2);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- r = 0;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r |= recursive_call_check(en->te.Then);\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r |= recursive_call_check(en->te.Else);\r
- }\r
- r |= recursive_call_check(NODE_BODY(node));\r
- }\r
- else {\r
- r = recursive_call_check(NODE_BODY(node));\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- r = 0;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-#define IN_RECURSION (1<<0)\r
-#define FOUND_CALLED_NODE 1\r
-\r
-static int\r
-recursive_call_check_trav(Node* node, ScanEnv* env, int state)\r
-{\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- {\r
- int ret;\r
- do {\r
- ret = recursive_call_check_trav(NODE_CAR(node), env, state);\r
- if (ret == FOUND_CALLED_NODE) r = FOUND_CALLED_NODE;\r
- else if (ret < 0) return ret;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- r = recursive_call_check_trav(NODE_BODY(node), env, state);\r
- if (QUANT_(node)->upper == 0) {\r
- if (r == FOUND_CALLED_NODE)\r
- QUANT_(node)->is_refered = 1;\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- {\r
- AnchorNode* an = ANCHOR_(node);\r
- if (ANCHOR_HAS_BODY(an))\r
- r = recursive_call_check_trav(NODE_ANCHOR_BODY(an), env, state);\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- int ret;\r
- int state1;\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_CALLED(node) || (state & IN_RECURSION) != 0) {\r
- if (! NODE_IS_RECURSION(node)) {\r
- NODE_STATUS_ADD(node, MARK1);\r
- r = recursive_call_check(NODE_BODY(node));\r
- if (r != 0)\r
- NODE_STATUS_ADD(node, RECURSION);\r
- NODE_STATUS_REMOVE(node, MARK1);\r
- }\r
-\r
- if (NODE_IS_CALLED(node))\r
- r = FOUND_CALLED_NODE;\r
- }\r
- }\r
-\r
- state1 = state;\r
- if (NODE_IS_RECURSION(node))\r
- state1 |= IN_RECURSION;\r
-\r
- ret = recursive_call_check_trav(NODE_BODY(node), env, state1);\r
- if (ret == FOUND_CALLED_NODE)\r
- r = FOUND_CALLED_NODE;\r
-\r
- if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- ret = recursive_call_check_trav(en->te.Then, env, state1);\r
- if (ret == FOUND_CALLED_NODE)\r
- r = FOUND_CALLED_NODE;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- ret = recursive_call_check_trav(en->te.Else, env, state1);\r
- if (ret == FOUND_CALLED_NODE)\r
- r = FOUND_CALLED_NODE;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-#endif\r
-\r
-#define IN_ALT (1<<0)\r
-#define IN_NOT (1<<1)\r
-#define IN_REAL_REPEAT (1<<2)\r
-#define IN_VAR_REPEAT (1<<3)\r
-#define IN_ZERO_REPEAT (1<<4)\r
-#define IN_MULTI_ENTRY (1<<5)\r
-#define IN_LOOK_BEHIND (1<<6)\r
-\r
-\r
-/* divide different length alternatives in look-behind.\r
- (?<=A|B) ==> (?<=A)|(?<=B)\r
- (?<!A|B) ==> (?<!A)(?<!B)\r
-*/\r
-static int\r
-divide_look_behind_alternatives(Node* node)\r
-{\r
- Node *head, *np, *insert_node;\r
- AnchorNode* an = ANCHOR_(node);\r
- int anc_type = an->type;\r
-\r
- head = NODE_ANCHOR_BODY(an);\r
- np = NODE_CAR(head);\r
- swap_node(node, head);\r
- NODE_CAR(node) = head;\r
- NODE_BODY(head) = np;\r
-\r
- np = node;\r
- while (IS_NOT_NULL(np = NODE_CDR(np))) {\r
- insert_node = onig_node_new_anchor(anc_type, an->ascii_mode);\r
- CHECK_NULL_RETURN_MEMERR(insert_node);\r
- NODE_BODY(insert_node) = NODE_CAR(np);\r
- NODE_CAR(np) = insert_node;\r
- }\r
-\r
- if (anc_type == ANCR_LOOK_BEHIND_NOT) {\r
- np = node;\r
- do {\r
- NODE_SET_TYPE(np, NODE_LIST); /* alt -> list */\r
- } while (IS_NOT_NULL(np = NODE_CDR(np)));\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-setup_look_behind(Node* node, regex_t* reg, ScanEnv* env)\r
-{\r
- int r, len;\r
- AnchorNode* an = ANCHOR_(node);\r
-\r
- r = get_char_len_node(NODE_ANCHOR_BODY(an), reg, &len);\r
- if (r == 0)\r
- an->char_len = len;\r
- else if (r == GET_CHAR_LEN_VARLEN)\r
- r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- else if (r == GET_CHAR_LEN_TOP_ALT_VARLEN) {\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND))\r
- r = divide_look_behind_alternatives(node);\r
- else\r
- r = ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-next_setup(Node* node, Node* next_node, regex_t* reg)\r
-{\r
- NodeType type;\r
-\r
- retry:\r
- type = NODE_TYPE(node);\r
- if (type == NODE_QUANT) {\r
- QuantNode* qn = QUANT_(node);\r
- if (qn->greedy && IS_INFINITE_REPEAT(qn->upper)) {\r
-#ifdef USE_QUANT_PEEK_NEXT\r
- Node* n = get_head_value_node(next_node, 1, reg);\r
- /* '\0': for UTF-16BE etc... */\r
- if (IS_NOT_NULL(n) && STR_(n)->s[0] != '\0') {\r
- qn->next_head_exact = n;\r
- }\r
-#endif\r
- /* automatic posseivation a*b ==> (?>a*)b */\r
- if (qn->lower <= 1) {\r
- if (is_strict_real_node(NODE_BODY(node))) {\r
- Node *x, *y;\r
- x = get_head_value_node(NODE_BODY(node), 0, reg);\r
- if (IS_NOT_NULL(x)) {\r
- y = get_head_value_node(next_node, 0, reg);\r
- if (IS_NOT_NULL(y) && is_exclusive(x, y, reg)) {\r
- Node* en = onig_node_new_bag(BAG_STOP_BACKTRACK);\r
- CHECK_NULL_RETURN_MEMERR(en);\r
- NODE_STATUS_ADD(en, STRICT_REAL_REPEAT);\r
- swap_node(node, en);\r
- NODE_BODY(node) = en;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
- else if (type == NODE_BAG) {\r
- BagNode* en = BAG_(node);\r
- if (en->type == BAG_MEMORY) {\r
- node = NODE_BODY(node);\r
- goto retry;\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-\r
-static int\r
-update_string_node_case_fold(regex_t* reg, Node *node)\r
-{\r
- UChar *p, *end, buf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
- UChar *sbuf, *ebuf, *sp;\r
- int r, i, len, sbuf_size;\r
- StrNode* sn = STR_(node);\r
-\r
- end = sn->end;\r
- sbuf_size = (int )(end - sn->s) * 2;\r
- sbuf = (UChar* )xmalloc(sbuf_size);\r
- CHECK_NULL_RETURN_MEMERR(sbuf);\r
- ebuf = sbuf + sbuf_size;\r
-\r
- sp = sbuf;\r
- p = sn->s;\r
- while (p < end) {\r
- len = ONIGENC_MBC_CASE_FOLD(reg->enc, reg->case_fold_flag, &p, end, buf);\r
- for (i = 0; i < len; i++) {\r
- if (sp >= ebuf) {\r
- sbuf = (UChar* )xrealloc(sbuf, sbuf_size * 2, sbuf_size);\r
- CHECK_NULL_RETURN_MEMERR(sbuf);\r
- sp = sbuf + sbuf_size;\r
- sbuf_size *= 2;\r
- ebuf = sbuf + sbuf_size;\r
- }\r
-\r
- *sp++ = buf[i];\r
- }\r
- }\r
-\r
- r = onig_node_str_set(node, sbuf, sp);\r
- if (r != 0) {\r
- xfree(sbuf);\r
- return r;\r
- }\r
-\r
- xfree(sbuf);\r
- return 0;\r
-}\r
-\r
-static int\r
-expand_case_fold_make_rem_string(Node** rnode, UChar *s, UChar *end, regex_t* reg)\r
-{\r
- int r;\r
- Node *node;\r
-\r
- node = onig_node_new_str(s, end);\r
- if (IS_NULL(node)) return ONIGERR_MEMORY;\r
-\r
- r = update_string_node_case_fold(reg, node);\r
- if (r != 0) {\r
- onig_node_free(node);\r
- return r;\r
- }\r
-\r
- NODE_STRING_SET_AMBIG(node);\r
- NODE_STRING_SET_DONT_GET_OPT_INFO(node);\r
- *rnode = node;\r
- return 0;\r
-}\r
-\r
-static int\r
-expand_case_fold_string_alt(int item_num, OnigCaseFoldCodeItem items[], UChar *p,\r
- int slen, UChar *end, regex_t* reg, Node **rnode)\r
-{\r
- int r, i, j;\r
- int len;\r
- int varlen;\r
- Node *anode, *var_anode, *snode, *xnode, *an;\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN];\r
-\r
- *rnode = var_anode = NULL_NODE;\r
-\r
- varlen = 0;\r
- for (i = 0; i < item_num; i++) {\r
- if (items[i].byte_len != slen) {\r
- varlen = 1;\r
- break;\r
- }\r
- }\r
-\r
- if (varlen != 0) {\r
- *rnode = var_anode = onig_node_new_alt(NULL_NODE, NULL_NODE);\r
- if (IS_NULL(var_anode)) return ONIGERR_MEMORY;\r
-\r
- xnode = onig_node_new_list(NULL, NULL);\r
- if (IS_NULL(xnode)) goto mem_err;\r
- NODE_CAR(var_anode) = xnode;\r
-\r
- anode = onig_node_new_alt(NULL_NODE, NULL_NODE);\r
- if (IS_NULL(anode)) goto mem_err;\r
- NODE_CAR(xnode) = anode;\r
- }\r
- else {\r
- *rnode = anode = onig_node_new_alt(NULL_NODE, NULL_NODE);\r
- if (IS_NULL(anode)) return ONIGERR_MEMORY;\r
- }\r
-\r
- snode = onig_node_new_str(p, p + slen);\r
- if (IS_NULL(snode)) goto mem_err;\r
-\r
- NODE_CAR(anode) = snode;\r
-\r
- for (i = 0; i < item_num; i++) {\r
- snode = onig_node_new_str(NULL, NULL);\r
- if (IS_NULL(snode)) goto mem_err;\r
-\r
- for (j = 0; j < items[i].code_len; j++) {\r
- len = ONIGENC_CODE_TO_MBC(reg->enc, items[i].code[j], buf);\r
- if (len < 0) {\r
- r = len;\r
- goto mem_err2;\r
- }\r
-\r
- r = onig_node_str_cat(snode, buf, buf + len);\r
- if (r != 0) goto mem_err2;\r
- }\r
-\r
- an = onig_node_new_alt(NULL_NODE, NULL_NODE);\r
- if (IS_NULL(an)) {\r
- goto mem_err2;\r
- }\r
- //The NULL pointer check is not necessary. It is added just for pass static\r
- //analysis. When condition "items[i].byte_len != slen" is true, "varlen = 1"\r
- //in line 3503 will be reached ,so that "if (IS_NULL(var_anode)) return ONIGERR_MEMORY"\r
- //in line 3510 will be executed, so the null pointer has been checked before\r
- //deferenced in line 3584.\r
- if (items[i].byte_len != slen && IS_NOT_NULL(var_anode)) {\r
- Node *rem;\r
- UChar *q = p + items[i].byte_len;\r
-\r
- if (q < end) {\r
- r = expand_case_fold_make_rem_string(&rem, q, end, reg);\r
- if (r != 0) {\r
- onig_node_free(an);\r
- goto mem_err2;\r
- }\r
-\r
- xnode = onig_node_list_add(NULL_NODE, snode);\r
- if (IS_NULL(xnode)) {\r
- onig_node_free(an);\r
- onig_node_free(rem);\r
- goto mem_err2;\r
- }\r
- if (IS_NULL(onig_node_list_add(xnode, rem))) {\r
- onig_node_free(an);\r
- onig_node_free(xnode);\r
- onig_node_free(rem);\r
- goto mem_err;\r
- }\r
-\r
- NODE_CAR(an) = xnode;\r
- }\r
- else {\r
- NODE_CAR(an) = snode;\r
- }\r
-\r
- NODE_CDR(var_anode) = an;\r
- var_anode = an;\r
- }\r
- else {\r
- NODE_CAR(an) = snode;\r
- NODE_CDR(anode) = an;\r
- anode = an;\r
- }\r
- }\r
-\r
- return varlen;\r
-\r
- mem_err2:\r
- onig_node_free(snode);\r
-\r
- mem_err:\r
- onig_node_free(*rnode);\r
-\r
- return ONIGERR_MEMORY;\r
-}\r
-\r
-static int\r
-is_good_case_fold_items_for_search(OnigEncoding enc, int slen,\r
- int n, OnigCaseFoldCodeItem items[])\r
-{\r
- int i, len;\r
- UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
-\r
- for (i = 0; i < n; i++) {\r
- OnigCaseFoldCodeItem* item = items + i;\r
-\r
- if (item->code_len != 1) return 0;\r
- if (item->byte_len != slen) return 0;\r
- len = ONIGENC_CODE_TO_MBC(enc, item->code[0], buf);\r
- if (len != slen) return 0;\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-#define THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION 8\r
-\r
-static int\r
-expand_case_fold_string(Node* node, regex_t* reg, int state)\r
-{\r
- int r, n, len, alt_num;\r
- int fold_len;\r
- int prev_is_ambig, prev_is_good, is_good, is_in_look_behind;\r
- UChar *start, *end, *p;\r
- UChar* foldp;\r
- Node *top_root, *root, *snode, *prev_node;\r
- OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM];\r
- UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
- StrNode* sn;\r
-\r
- if (NODE_STRING_IS_AMBIG(node)) return 0;\r
-\r
- sn = STR_(node);\r
-\r
- start = sn->s;\r
- end = sn->end;\r
- if (start >= end) return 0;\r
-\r
- is_in_look_behind = (state & IN_LOOK_BEHIND) != 0;\r
-\r
- r = 0;\r
- top_root = root = prev_node = snode = NULL_NODE;\r
- alt_num = 1;\r
- p = start;\r
- while (p < end) {\r
- n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(reg->enc, reg->case_fold_flag,\r
- p, end, items);\r
- if (n < 0) {\r
- r = n;\r
- goto err;\r
- }\r
-\r
- len = enclen(reg->enc, p);\r
- is_good = is_good_case_fold_items_for_search(reg->enc, len, n, items);\r
-\r
- if (is_in_look_behind ||\r
- (IS_NOT_NULL(snode) ||\r
- (is_good\r
- /* expand single char case: ex. /(?i:a)/ */\r
- && !(p == start && p + len >= end)))) {\r
- if (IS_NULL(snode)) {\r
- if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {\r
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);\r
- if (IS_NULL(root)) {\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- prev_node = snode = onig_node_new_str(NULL, NULL);\r
- if (IS_NULL(snode)) goto mem_err;\r
- if (IS_NOT_NULL(root)) {\r
- if (IS_NULL(onig_node_list_add(root, snode))) {\r
- onig_node_free(snode);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- prev_is_ambig = -1; /* -1: new */\r
- prev_is_good = 0; /* escape compiler warning */\r
- }\r
- else {\r
- prev_is_ambig = NODE_STRING_IS_AMBIG(snode);\r
- prev_is_good = NODE_STRING_IS_GOOD_AMBIG(snode);\r
- }\r
-\r
- if (n != 0) {\r
- foldp = p;\r
- fold_len = ONIGENC_MBC_CASE_FOLD(reg->enc, reg->case_fold_flag,\r
- &foldp, end, buf);\r
- foldp = buf;\r
- }\r
- else {\r
- foldp = p; fold_len = len;\r
- }\r
-\r
- if ((prev_is_ambig == 0 && n != 0) ||\r
- (prev_is_ambig > 0 && (n == 0 || prev_is_good != is_good))) {\r
- if (IS_NULL(root) /* && IS_NOT_NULL(prev_node) */) {\r
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);\r
- if (IS_NULL(root)) {\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- prev_node = snode = onig_node_new_str(foldp, foldp + fold_len);\r
- if (IS_NULL(snode)) goto mem_err;\r
- if (IS_NULL(onig_node_list_add(root, snode))) {\r
- onig_node_free(snode);\r
- goto mem_err;\r
- }\r
- }\r
- else {\r
- r = onig_node_str_cat(snode, foldp, foldp + fold_len);\r
- if (r != 0) goto err;\r
- }\r
-\r
- if (n != 0) NODE_STRING_SET_AMBIG(snode);\r
- if (is_good != 0) NODE_STRING_SET_GOOD_AMBIG(snode);\r
- }\r
- else {\r
- alt_num *= (n + 1);\r
- if (alt_num > THRESHOLD_CASE_FOLD_ALT_FOR_EXPANSION) break;\r
-\r
- if (IS_NULL(root) && IS_NOT_NULL(prev_node)) {\r
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);\r
- if (IS_NULL(root)) {\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- r = expand_case_fold_string_alt(n, items, p, len, end, reg, &prev_node);\r
- if (r < 0) goto mem_err;\r
- if (r == 1) {\r
- if (IS_NULL(root)) {\r
- top_root = prev_node;\r
- }\r
- else {\r
- if (IS_NULL(onig_node_list_add(root, prev_node))) {\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- root = NODE_CAR(prev_node);\r
- }\r
- else { /* r == 0 */\r
- if (IS_NOT_NULL(root)) {\r
- if (IS_NULL(onig_node_list_add(root, prev_node))) {\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
- }\r
-\r
- snode = NULL_NODE;\r
- }\r
-\r
- p += len;\r
- }\r
-\r
- if (p < end) {\r
- Node *srem;\r
-\r
- r = expand_case_fold_make_rem_string(&srem, p, end, reg);\r
- if (r != 0) goto mem_err;\r
-\r
- if (IS_NOT_NULL(prev_node) && IS_NULL(root)) {\r
- top_root = root = onig_node_list_add(NULL_NODE, prev_node);\r
- if (IS_NULL(root)) {\r
- onig_node_free(srem);\r
- onig_node_free(prev_node);\r
- goto mem_err;\r
- }\r
- }\r
-\r
- if (IS_NULL(root)) {\r
- prev_node = srem;\r
- }\r
- else {\r
- if (IS_NULL(onig_node_list_add(root, srem))) {\r
- onig_node_free(srem);\r
- goto mem_err;\r
- }\r
- }\r
- }\r
-\r
- /* ending */\r
- top_root = (IS_NOT_NULL(top_root) ? top_root : prev_node);\r
- swap_node(node, top_root);\r
- onig_node_free(top_root);\r
- return 0;\r
-\r
- mem_err:\r
- r = ONIGERR_MEMORY;\r
-\r
- err:\r
- onig_node_free(top_root);\r
- return r;\r
-}\r
-\r
-#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT\r
-static enum BodyEmptyType\r
-quantifiers_memory_node_info(Node* node)\r
-{\r
- int r = BODY_IS_EMPTY_POSSIBILITY;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- {\r
- int v;\r
- do {\r
- v = quantifiers_memory_node_info(NODE_CAR(node));\r
- if (v > r) r = v;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- if (NODE_IS_RECURSION(node)) {\r
- return BODY_IS_EMPTY_POSSIBILITY_REC; /* tiny version */\r
- }\r
- else\r
- r = quantifiers_memory_node_info(NODE_BODY(node));\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
- if (qn->upper != 0) {\r
- r = quantifiers_memory_node_info(NODE_BODY(node));\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
- switch (en->type) {\r
- case BAG_MEMORY:\r
- if (NODE_IS_RECURSION(node)) {\r
- return BODY_IS_EMPTY_POSSIBILITY_REC;\r
- }\r
- return BODY_IS_EMPTY_POSSIBILITY_MEM;\r
- break;\r
-\r
- case BAG_OPTION:\r
- case BAG_STOP_BACKTRACK:\r
- r = quantifiers_memory_node_info(NODE_BODY(node));\r
- break;\r
- case BAG_IF_ELSE:\r
- {\r
- int v;\r
- r = quantifiers_memory_node_info(NODE_BODY(node));\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- v = quantifiers_memory_node_info(en->te.Then);\r
- if (v > r) r = v;\r
- }\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- v = quantifiers_memory_node_info(en->te.Else);\r
- if (v > r) r = v;\r
- }\r
- }\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- case NODE_STRING:\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- case NODE_ANCHOR:\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-#endif /* USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT */\r
-\r
-\r
-#ifdef USE_CALL\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#endif\r
-static int\r
-setup_call_node_call(CallNode* cn, ScanEnv* env, int state)\r
-{\r
- MemEnv* mem_env = SCANENV_MEMENV(env);\r
-\r
- if (cn->by_number != 0) {\r
- int gnum = cn->group_num;\r
-\r
- if (env->num_named > 0 &&\r
- IS_SYNTAX_BV(env->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) &&\r
- ! ONIG_IS_OPTION_ON(env->options, ONIG_OPTION_CAPTURE_GROUP)) {\r
- return ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED;\r
- }\r
-\r
- if (gnum > env->num_mem) {\r
- onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_GROUP_REFERENCE,\r
- cn->name, cn->name_end);\r
- return ONIGERR_UNDEFINED_GROUP_REFERENCE;\r
- }\r
-\r
- set_call_attr:\r
- NODE_CALL_BODY(cn) = mem_env[cn->group_num].node;\r
- if (IS_NULL(NODE_CALL_BODY(cn))) {\r
- onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE,\r
- cn->name, cn->name_end);\r
- return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
- }\r
- }\r
- else {\r
- int *refs;\r
-\r
- int n = onig_name_to_group_numbers(env->reg, cn->name, cn->name_end, &refs);\r
- if (n <= 0) {\r
- onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE,\r
- cn->name, cn->name_end);\r
- return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
- }\r
- else if (n > 1) {\r
- onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL,\r
- cn->name, cn->name_end);\r
- return ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL;\r
- }\r
- else {\r
- cn->group_num = refs[0];\r
- goto set_call_attr;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static void\r
-setup_call2_call(Node* node)\r
-{\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- setup_call2_call(NODE_CAR(node));\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- setup_call2_call(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (ANCHOR_HAS_BODY(ANCHOR_(node)))\r
- setup_call2_call(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (! NODE_IS_MARK1(node)) {\r
- NODE_STATUS_ADD(node, MARK1);\r
- setup_call2_call(NODE_BODY(node));\r
- NODE_STATUS_REMOVE(node, MARK1);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- setup_call2_call(NODE_BODY(node));\r
- if (IS_NOT_NULL(en->te.Then))\r
- setup_call2_call(en->te.Then);\r
- if (IS_NOT_NULL(en->te.Else))\r
- setup_call2_call(en->te.Else);\r
- }\r
- else {\r
- setup_call2_call(NODE_BODY(node));\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CALL:\r
- if (! NODE_IS_MARK1(node)) {\r
- NODE_STATUS_ADD(node, MARK1);\r
- {\r
- CallNode* cn = CALL_(node);\r
- Node* called = NODE_CALL_BODY(cn);\r
-\r
- cn->entry_count++;\r
-\r
- NODE_STATUS_ADD(called, CALLED);\r
- BAG_(called)->m.entry_count++;\r
- setup_call2_call(called);\r
- }\r
- NODE_STATUS_REMOVE(node, MARK1);\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-}\r
-\r
-static int\r
-setup_call(Node* node, ScanEnv* env, int state)\r
-{\r
- int r;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = setup_call(NODE_CAR(node), env, state);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- if (QUANT_(node)->upper == 0)\r
- state |= IN_ZERO_REPEAT;\r
-\r
- r = setup_call(NODE_BODY(node), env, state);\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (ANCHOR_HAS_BODY(ANCHOR_(node)))\r
- r = setup_call(NODE_BODY(node), env, state);\r
- else\r
- r = 0;\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if ((state & IN_ZERO_REPEAT) != 0) {\r
- NODE_STATUS_ADD(node, IN_ZERO_REPEAT);\r
- BAG_(node)->m.entry_count--;\r
- }\r
- r = setup_call(NODE_BODY(node), env, state);\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- r = setup_call(NODE_BODY(node), env, state);\r
- if (r != 0) return r;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = setup_call(en->te.Then, env, state);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else))\r
- r = setup_call(en->te.Else, env, state);\r
- }\r
- else\r
- r = setup_call(NODE_BODY(node), env, state);\r
- }\r
- break;\r
-\r
- case NODE_CALL:\r
- if ((state & IN_ZERO_REPEAT) != 0) {\r
- NODE_STATUS_ADD(node, IN_ZERO_REPEAT);\r
- CALL_(node)->entry_count--;\r
- }\r
-\r
- r = setup_call_node_call(CALL_(node), env, state);\r
- break;\r
-\r
- default:\r
- r = 0;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-setup_call2(Node* node)\r
-{\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- do {\r
- r = setup_call2(NODE_CAR(node));\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- if (QUANT_(node)->upper != 0)\r
- r = setup_call2(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- if (ANCHOR_HAS_BODY(ANCHOR_(node)))\r
- r = setup_call2(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_BAG:\r
- if (! NODE_IS_IN_ZERO_REPEAT(node))\r
- r = setup_call2(NODE_BODY(node));\r
-\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (r != 0) return r;\r
- if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = setup_call2(en->te.Then);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else))\r
- r = setup_call2(en->te.Else);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CALL:\r
- if (! NODE_IS_IN_ZERO_REPEAT(node)) {\r
- setup_call2_call(node);\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-\r
-static void\r
-setup_called_state_call(Node* node, int state)\r
-{\r
- switch (NODE_TYPE(node)) {\r
- case NODE_ALT:\r
- state |= IN_ALT;\r
- /* fall */\r
- case NODE_LIST:\r
- do {\r
- setup_called_state_call(NODE_CAR(node), state);\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
-\r
- if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2)\r
- state |= IN_REAL_REPEAT;\r
- if (qn->lower != qn->upper)\r
- state |= IN_VAR_REPEAT;\r
-\r
- setup_called_state_call(NODE_QUANT_BODY(qn), state);\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- {\r
- AnchorNode* an = ANCHOR_(node);\r
-\r
- switch (an->type) {\r
- case ANCR_PREC_READ_NOT:\r
- case ANCR_LOOK_BEHIND_NOT:\r
- state |= IN_NOT;\r
- /* fall */\r
- case ANCR_PREC_READ:\r
- case ANCR_LOOK_BEHIND:\r
- setup_called_state_call(NODE_ANCHOR_BODY(an), state);\r
- break;\r
- default:\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- if (en->type == BAG_MEMORY) {\r
- if (NODE_IS_MARK1(node)) {\r
- if ((~en->m.called_state & state) != 0) {\r
- en->m.called_state |= state;\r
- setup_called_state_call(NODE_BODY(node), state);\r
- }\r
- }\r
- else {\r
- NODE_STATUS_ADD(node, MARK1);\r
- en->m.called_state |= state;\r
- setup_called_state_call(NODE_BODY(node), state);\r
- NODE_STATUS_REMOVE(node, MARK1);\r
- }\r
- }\r
- else if (en->type == BAG_IF_ELSE) {\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- setup_called_state_call(en->te.Then, state);\r
- }\r
- if (IS_NOT_NULL(en->te.Else))\r
- setup_called_state_call(en->te.Else, state);\r
- }\r
- else {\r
- setup_called_state_call(NODE_BODY(node), state);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CALL:\r
- setup_called_state_call(NODE_BODY(node), state);\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-}\r
-\r
-static void\r
-setup_called_state(Node* node, int state)\r
-{\r
- switch (NODE_TYPE(node)) {\r
- case NODE_ALT:\r
- state |= IN_ALT;\r
- /* fall */\r
- case NODE_LIST:\r
- do {\r
- setup_called_state(NODE_CAR(node), state);\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- setup_called_state_call(node, state);\r
- break;\r
-#endif\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- switch (en->type) {\r
- case BAG_MEMORY:\r
- if (en->m.entry_count > 1)\r
- state |= IN_MULTI_ENTRY;\r
-\r
- en->m.called_state |= state;\r
- /* fall */\r
- case BAG_OPTION:\r
- case BAG_STOP_BACKTRACK:\r
- setup_called_state(NODE_BODY(node), state);\r
- break;\r
- case BAG_IF_ELSE:\r
- setup_called_state(NODE_BODY(node), state);\r
- if (IS_NOT_NULL(en->te.Then))\r
- setup_called_state(en->te.Then, state);\r
- if (IS_NOT_NULL(en->te.Else))\r
- setup_called_state(en->te.Else, state);\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- {\r
- QuantNode* qn = QUANT_(node);\r
-\r
- if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2)\r
- state |= IN_REAL_REPEAT;\r
- if (qn->lower != qn->upper)\r
- state |= IN_VAR_REPEAT;\r
-\r
- setup_called_state(NODE_QUANT_BODY(qn), state);\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- {\r
- AnchorNode* an = ANCHOR_(node);\r
-\r
- switch (an->type) {\r
- case ANCR_PREC_READ_NOT:\r
- case ANCR_LOOK_BEHIND_NOT:\r
- state |= IN_NOT;\r
- /* fall */\r
- case ANCR_PREC_READ:\r
- case ANCR_LOOK_BEHIND:\r
- setup_called_state(NODE_ANCHOR_BODY(an), state);\r
- break;\r
- default:\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- case NODE_STRING:\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
-}\r
-\r
-#endif /* USE_CALL */\r
-\r
-\r
-static int setup_tree(Node* node, regex_t* reg, int state, ScanEnv* env);\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#endif\r
-static int\r
-setup_anchor(Node* node, regex_t* reg, int state, ScanEnv* env)\r
-{\r
-/* allowed node types in look-behind */\r
-#define ALLOWED_TYPE_IN_LB \\r
- ( NODE_BIT_LIST | NODE_BIT_ALT | NODE_BIT_STRING | NODE_BIT_CCLASS \\r
- | NODE_BIT_CTYPE | NODE_BIT_ANCHOR | NODE_BIT_BAG | NODE_BIT_QUANT \\r
- | NODE_BIT_CALL | NODE_BIT_GIMMICK)\r
-\r
-#define ALLOWED_BAG_IN_LB ( 1<<BAG_MEMORY | 1<<BAG_OPTION | 1<<BAG_IF_ELSE )\r
-#define ALLOWED_BAG_IN_LB_NOT ( 1<<BAG_OPTION | 1<<BAG_IF_ELSE )\r
-\r
-#define ALLOWED_ANCHOR_IN_LB \\r
- ( ANCR_LOOK_BEHIND | ANCR_BEGIN_LINE | ANCR_END_LINE | ANCR_BEGIN_BUF \\r
- | ANCR_BEGIN_POSITION | ANCR_WORD_BOUNDARY | ANCR_NO_WORD_BOUNDARY \\r
- | ANCR_WORD_BEGIN | ANCR_WORD_END \\r
- | ANCR_TEXT_SEGMENT_BOUNDARY | ANCR_NO_TEXT_SEGMENT_BOUNDARY )\r
-\r
-#define ALLOWED_ANCHOR_IN_LB_NOT \\r
- ( ANCR_LOOK_BEHIND | ANCR_LOOK_BEHIND_NOT | ANCR_BEGIN_LINE \\r
- | ANCR_END_LINE | ANCR_BEGIN_BUF | ANCR_BEGIN_POSITION | ANCR_WORD_BOUNDARY \\r
- | ANCR_NO_WORD_BOUNDARY | ANCR_WORD_BEGIN | ANCR_WORD_END \\r
- | ANCR_TEXT_SEGMENT_BOUNDARY | ANCR_NO_TEXT_SEGMENT_BOUNDARY )\r
-\r
- int r;\r
- AnchorNode* an = ANCHOR_(node);\r
-\r
- switch (an->type) {\r
- case ANCR_PREC_READ:\r
- r = setup_tree(NODE_ANCHOR_BODY(an), reg, state, env);\r
- break;\r
- case ANCR_PREC_READ_NOT:\r
- r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state | IN_NOT), env);\r
- break;\r
-\r
- case ANCR_LOOK_BEHIND:\r
- {\r
- r = check_type_tree(NODE_ANCHOR_BODY(an), ALLOWED_TYPE_IN_LB,\r
- ALLOWED_BAG_IN_LB, ALLOWED_ANCHOR_IN_LB);\r
- if (r < 0) return r;\r
- if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state|IN_LOOK_BEHIND), env);\r
- if (r != 0) return r;\r
- r = setup_look_behind(node, reg, env);\r
- }\r
- break;\r
-\r
- case ANCR_LOOK_BEHIND_NOT:\r
- {\r
- r = check_type_tree(NODE_ANCHOR_BODY(an), ALLOWED_TYPE_IN_LB,\r
- ALLOWED_BAG_IN_LB_NOT, ALLOWED_ANCHOR_IN_LB_NOT);\r
- if (r < 0) return r;\r
- if (r > 0) return ONIGERR_INVALID_LOOK_BEHIND_PATTERN;\r
- r = setup_tree(NODE_ANCHOR_BODY(an), reg, (state|IN_NOT|IN_LOOK_BEHIND),\r
- env);\r
- if (r != 0) return r;\r
- r = setup_look_behind(node, reg, env);\r
- }\r
- break;\r
-\r
- default:\r
- r = 0;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#endif\r
-static int\r
-setup_quant(Node* node, regex_t* reg, int state, ScanEnv* env)\r
-{\r
- int r;\r
- OnigLen d;\r
- QuantNode* qn = QUANT_(node);\r
- Node* body = NODE_BODY(node);\r
-\r
- if ((state & IN_REAL_REPEAT) != 0) {\r
- NODE_STATUS_ADD(node, IN_REAL_REPEAT);\r
- }\r
- if ((state & IN_MULTI_ENTRY) != 0) {\r
- NODE_STATUS_ADD(node, IN_MULTI_ENTRY);\r
- }\r
-\r
- if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 1) {\r
- d = tree_min_len(body, env);\r
- if (d == 0) {\r
-#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT\r
- qn->emptiness = quantifiers_memory_node_info(body);\r
- if (qn->emptiness == BODY_IS_EMPTY_POSSIBILITY_REC) {\r
- if (NODE_TYPE(body) == NODE_BAG &&\r
- BAG_(body)->type == BAG_MEMORY) {\r
- MEM_STATUS_ON(env->bt_mem_end, BAG_(body)->m.regnum);\r
- }\r
- }\r
-#else\r
- qn->emptiness = BODY_IS_EMPTY_POSSIBILITY;\r
-#endif\r
- }\r
- }\r
-\r
- if (IS_INFINITE_REPEAT(qn->upper) || qn->upper >= 2)\r
- state |= IN_REAL_REPEAT;\r
- if (qn->lower != qn->upper)\r
- state |= IN_VAR_REPEAT;\r
-\r
- r = setup_tree(body, reg, state, env);\r
- if (r != 0) return r;\r
-\r
- /* expand string */\r
-#define EXPAND_STRING_MAX_LENGTH 100\r
- if (NODE_TYPE(body) == NODE_STRING) {\r
- if (!IS_INFINITE_REPEAT(qn->lower) && qn->lower == qn->upper &&\r
- qn->lower > 1 && qn->lower <= EXPAND_STRING_MAX_LENGTH) {\r
- int len = NODE_STRING_LEN(body);\r
- StrNode* sn = STR_(body);\r
-\r
- if (len * qn->lower <= EXPAND_STRING_MAX_LENGTH) {\r
- int i, n = qn->lower;\r
- onig_node_conv_to_str_node(node, STR_(body)->flag);\r
- for (i = 0; i < n; i++) {\r
- r = onig_node_str_cat(node, sn->s, sn->end);\r
- if (r != 0) return r;\r
- }\r
- onig_node_free(body);\r
- return r;\r
- }\r
- }\r
- }\r
-\r
- if (qn->greedy && (qn->emptiness == BODY_IS_NOT_EMPTY)) {\r
- if (NODE_TYPE(body) == NODE_QUANT) {\r
- QuantNode* tqn = QUANT_(body);\r
- if (IS_NOT_NULL(tqn->head_exact)) {\r
- qn->head_exact = tqn->head_exact;\r
- tqn->head_exact = NULL;\r
- }\r
- }\r
- else {\r
- qn->head_exact = get_head_value_node(NODE_BODY(node), 1, reg);\r
- }\r
- }\r
-\r
- return r;\r
-}\r
-\r
-/* setup_tree does the following work.\r
- 1. check empty loop. (set qn->emptiness)\r
- 2. expand ignore-case in char class.\r
- 3. set memory status bit flags. (reg->mem_stats)\r
- 4. set qn->head_exact for [push, exact] -> [push_or_jump_exact1, exact].\r
- 5. find invalid patterns in look-behind.\r
- 6. expand repeated string.\r
- */\r
-static int\r
-setup_tree(Node* node, regex_t* reg, int state, ScanEnv* env)\r
-{\r
- int r = 0;\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- {\r
- Node* prev = NULL_NODE;\r
- do {\r
- r = setup_tree(NODE_CAR(node), reg, state, env);\r
- if (IS_NOT_NULL(prev) && r == 0) {\r
- r = next_setup(prev, NODE_CAR(node), reg);\r
- }\r
- prev = NODE_CAR(node);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- }\r
- break;\r
-\r
- case NODE_ALT:\r
- do {\r
- r = setup_tree(NODE_CAR(node), reg, (state | IN_ALT), env);\r
- } while (r == 0 && IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- case NODE_STRING:\r
- if (IS_IGNORECASE(reg->options) && !NODE_STRING_IS_RAW(node)) {\r
- r = expand_case_fold_string(node, reg, state);\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- {\r
- int i;\r
- int* p;\r
- BackRefNode* br = BACKREF_(node);\r
- p = BACKREFS_P(br);\r
- for (i = 0; i < br->back_num; i++) {\r
- if (p[i] > env->num_mem) return ONIGERR_INVALID_BACKREF;\r
- MEM_STATUS_ON(env->backrefed_mem, p[i]);\r
- MEM_STATUS_ON(env->bt_mem_start, p[i]);\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- if (NODE_IS_NEST_LEVEL(node)) {\r
- MEM_STATUS_ON(env->bt_mem_end, p[i]);\r
- }\r
-#endif\r
- }\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- switch (en->type) {\r
- case BAG_OPTION:\r
- {\r
- OnigOptionType options = reg->options;\r
- reg->options = BAG_(node)->o.options;\r
- r = setup_tree(NODE_BODY(node), reg, state, env);\r
- reg->options = options;\r
- }\r
- break;\r
-\r
- case BAG_MEMORY:\r
-#ifdef USE_CALL\r
- state |= en->m.called_state;\r
-#endif\r
-\r
- if ((state & (IN_ALT | IN_NOT | IN_VAR_REPEAT | IN_MULTI_ENTRY)) != 0\r
- || NODE_IS_RECURSION(node)) {\r
- MEM_STATUS_ON(env->bt_mem_start, en->m.regnum);\r
- }\r
- r = setup_tree(NODE_BODY(node), reg, state, env);\r
- break;\r
-\r
- case BAG_STOP_BACKTRACK:\r
- {\r
- Node* target = NODE_BODY(node);\r
- r = setup_tree(target, reg, state, env);\r
- if (NODE_TYPE(target) == NODE_QUANT) {\r
- QuantNode* tqn = QUANT_(target);\r
- if (IS_INFINITE_REPEAT(tqn->upper) && tqn->lower <= 1 &&\r
- tqn->greedy != 0) { /* (?>a*), a*+ etc... */\r
- if (is_strict_real_node(NODE_BODY(target)))\r
- NODE_STATUS_ADD(node, STRICT_REAL_REPEAT);\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case BAG_IF_ELSE:\r
- r = setup_tree(NODE_BODY(node), reg, (state | IN_ALT), env);\r
- if (r != 0) return r;\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = setup_tree(en->te.Then, reg, (state | IN_ALT), env);\r
- if (r != 0) return r;\r
- }\r
- if (IS_NOT_NULL(en->te.Else))\r
- r = setup_tree(en->te.Else, reg, (state | IN_ALT), env);\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- r = setup_quant(node, reg, state, env);\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- r = setup_anchor(node, reg, state, env);\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
-#endif\r
- case NODE_CTYPE:\r
- case NODE_CCLASS:\r
- case NODE_GIMMICK:\r
- default:\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-set_sunday_quick_search_or_bmh_skip_table(regex_t* reg, int case_expand,\r
- UChar* s, UChar* end,\r
- UChar skip[], int* roffset)\r
-{\r
- int i, j, k, len, offset;\r
- int n, clen;\r
- UChar* p;\r
- OnigEncoding enc;\r
- OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM];\r
- UChar buf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
-\r
- enc = reg->enc;\r
- offset = ENC_GET_SKIP_OFFSET(enc);\r
- if (offset == ENC_SKIP_OFFSET_1_OR_0) {\r
- UChar* p = s;\r
- while (1) {\r
- len = enclen(enc, p);\r
- if (p + len >= end) {\r
- if (len == 1) offset = 1;\r
- else offset = 0;\r
- break;\r
- }\r
- p += len;\r
- }\r
- }\r
-\r
- len = (int )(end - s);\r
- if (len + offset >= 255)\r
- return ONIGERR_PARSER_BUG;\r
-\r
- *roffset = offset;\r
-\r
- for (i = 0; i < CHAR_MAP_SIZE; i++) {\r
- skip[i] = (UChar )(len + offset);\r
- }\r
-\r
- for (p = s; p < end; ) {\r
- int z;\r
-\r
- clen = enclen(enc, p);\r
- if (p + clen > end) clen = (int )(end - p);\r
-\r
- len = (int )(end - p);\r
- for (j = 0; j < clen; j++) {\r
- z = len - j + (offset - 1);\r
- if (z <= 0) break;\r
- skip[p[j]] = z;\r
- }\r
-\r
- if (case_expand != 0) {\r
- n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, reg->case_fold_flag,\r
- p, end, items);\r
- for (k = 0; k < n; k++) {\r
- ONIGENC_CODE_TO_MBC(enc, items[k].code[0], buf);\r
- for (j = 0; j < clen; j++) {\r
- z = len - j + (offset - 1);\r
- if (z <= 0) break;\r
- if (skip[buf[j]] > z)\r
- skip[buf[j]] = z;\r
- }\r
- }\r
- }\r
-\r
- p += clen;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-\r
-#define OPT_EXACT_MAXLEN 24\r
-\r
-#if OPT_EXACT_MAXLEN >= 255\r
-#error Too big OPT_EXACT_MAXLEN\r
-#endif\r
-\r
-typedef struct {\r
- OnigLen min; /* min byte length */\r
- OnigLen max; /* max byte length */\r
-} MinMax;\r
-\r
-typedef struct {\r
- MinMax mmd;\r
- OnigEncoding enc;\r
- OnigOptionType options;\r
- OnigCaseFoldType case_fold_flag;\r
- ScanEnv* scan_env;\r
-} OptEnv;\r
-\r
-typedef struct {\r
- int left;\r
- int right;\r
-} OptAnc;\r
-\r
-typedef struct {\r
- MinMax mmd; /* position */\r
- OptAnc anc;\r
- int reach_end;\r
- int case_fold;\r
- int good_case_fold;\r
- int len;\r
- UChar s[OPT_EXACT_MAXLEN];\r
-} OptStr;\r
-\r
-typedef struct {\r
- MinMax mmd; /* position */\r
- OptAnc anc;\r
- int value; /* weighted value */\r
- UChar map[CHAR_MAP_SIZE];\r
-} OptMap;\r
-\r
-typedef struct {\r
- MinMax len;\r
- OptAnc anc;\r
- OptStr sb; /* boundary */\r
- OptStr sm; /* middle */\r
- OptStr spr; /* prec read (?=...) */\r
- OptMap map; /* boundary */\r
-} OptNode;\r
-\r
-\r
-static int\r
-map_position_value(OnigEncoding enc, int i)\r
-{\r
- static const short int Vals[] = {\r
- 5, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 10, 1, 1,\r
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
- 12, 4, 7, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5,\r
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5,\r
- 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\r
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 5, 5, 5,\r
- 5, 6, 6, 6, 6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,\r
- 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5, 5, 5, 1\r
- };\r
-\r
- if (i < (int )(sizeof(Vals)/sizeof(Vals[0]))) {\r
- if (i == 0 && ONIGENC_MBC_MINLEN(enc) > 1)\r
- return 20;\r
- else\r
- return (int )Vals[i];\r
- }\r
- else\r
- return 4; /* Take it easy. */\r
-}\r
-\r
-static int\r
-distance_value(MinMax* mm)\r
-{\r
- /* 1000 / (min-max-dist + 1) */\r
- static const short int dist_vals[] = {\r
- 1000, 500, 333, 250, 200, 167, 143, 125, 111, 100,\r
- 91, 83, 77, 71, 67, 63, 59, 56, 53, 50,\r
- 48, 45, 43, 42, 40, 38, 37, 36, 34, 33,\r
- 32, 31, 30, 29, 29, 28, 27, 26, 26, 25,\r
- 24, 24, 23, 23, 22, 22, 21, 21, 20, 20,\r
- 20, 19, 19, 19, 18, 18, 18, 17, 17, 17,\r
- 16, 16, 16, 16, 15, 15, 15, 15, 14, 14,\r
- 14, 14, 14, 14, 13, 13, 13, 13, 13, 13,\r
- 12, 12, 12, 12, 12, 12, 11, 11, 11, 11,\r
- 11, 11, 11, 11, 11, 10, 10, 10, 10, 10\r
- };\r
-\r
- OnigLen d;\r
-\r
- if (mm->max == INFINITE_LEN) return 0;\r
-\r
- d = mm->max - mm->min;\r
- if (d < (OnigLen )(sizeof(dist_vals)/sizeof(dist_vals[0])))\r
- /* return dist_vals[d] * 16 / (mm->min + 12); */\r
- return (int )dist_vals[d];\r
- else\r
- return 1;\r
-}\r
-\r
-static int\r
-comp_distance_value(MinMax* d1, MinMax* d2, int v1, int v2)\r
-{\r
- if (v2 <= 0) return -1;\r
- if (v1 <= 0) return 1;\r
-\r
- v1 *= distance_value(d1);\r
- v2 *= distance_value(d2);\r
-\r
- if (v2 > v1) return 1;\r
- if (v2 < v1) return -1;\r
-\r
- if (d2->min < d1->min) return 1;\r
- if (d2->min > d1->min) return -1;\r
- return 0;\r
-}\r
-\r
-static int\r
-is_equal_mml(MinMax* a, MinMax* b)\r
-{\r
- return a->min == b->min && a->max == b->max;\r
-}\r
-\r
-static void\r
-set_mml(MinMax* l, OnigLen min, OnigLen max)\r
-{\r
- l->min = min;\r
- l->max = max;\r
-}\r
-\r
-static void\r
-clear_mml(MinMax* l)\r
-{\r
- l->min = l->max = 0;\r
-}\r
-\r
-static void\r
-copy_mml(MinMax* to, MinMax* from)\r
-{\r
- to->min = from->min;\r
- to->max = from->max;\r
-}\r
-\r
-static void\r
-add_mml(MinMax* to, MinMax* from)\r
-{\r
- to->min = distance_add(to->min, from->min);\r
- to->max = distance_add(to->max, from->max);\r
-}\r
-\r
-static void\r
-alt_merge_mml(MinMax* to, MinMax* from)\r
-{\r
- if (to->min > from->min) to->min = from->min;\r
- if (to->max < from->max) to->max = from->max;\r
-}\r
-\r
-static void\r
-copy_opt_env(OptEnv* to, OptEnv* from)\r
-{\r
- *to = *from;\r
-}\r
-\r
-static void\r
-clear_opt_anc_info(OptAnc* a)\r
-{\r
- a->left = 0;\r
- a->right = 0;\r
-}\r
-\r
-static void\r
-copy_opt_anc_info(OptAnc* to, OptAnc* from)\r
-{\r
- *to = *from;\r
-}\r
-\r
-static void\r
-concat_opt_anc_info(OptAnc* to, OptAnc* left, OptAnc* right,\r
- OnigLen left_len, OnigLen right_len)\r
-{\r
- clear_opt_anc_info(to);\r
-\r
- to->left = left->left;\r
- if (left_len == 0) {\r
- to->left |= right->left;\r
- }\r
-\r
- to->right = right->right;\r
- if (right_len == 0) {\r
- to->right |= left->right;\r
- }\r
- else {\r
- to->right |= (left->right & ANCR_PREC_READ_NOT);\r
- }\r
-}\r
-\r
-static int\r
-is_left(int a)\r
-{\r
- if (a == ANCR_END_BUF || a == ANCR_SEMI_END_BUF ||\r
- a == ANCR_END_LINE || a == ANCR_PREC_READ || a == ANCR_PREC_READ_NOT)\r
- return 0;\r
-\r
- return 1;\r
-}\r
-\r
-static int\r
-is_set_opt_anc_info(OptAnc* to, int anc)\r
-{\r
- if ((to->left & anc) != 0) return 1;\r
-\r
- return ((to->right & anc) != 0 ? 1 : 0);\r
-}\r
-\r
-static void\r
-add_opt_anc_info(OptAnc* to, int anc)\r
-{\r
- if (is_left(anc))\r
- to->left |= anc;\r
- else\r
- to->right |= anc;\r
-}\r
-\r
-static void\r
-remove_opt_anc_info(OptAnc* to, int anc)\r
-{\r
- if (is_left(anc))\r
- to->left &= ~anc;\r
- else\r
- to->right &= ~anc;\r
-}\r
-\r
-static void\r
-alt_merge_opt_anc_info(OptAnc* to, OptAnc* add)\r
-{\r
- to->left &= add->left;\r
- to->right &= add->right;\r
-}\r
-\r
-static int\r
-is_full_opt_exact(OptStr* e)\r
-{\r
- return e->len >= OPT_EXACT_MAXLEN;\r
-}\r
-\r
-static void\r
-clear_opt_exact(OptStr* e)\r
-{\r
- clear_mml(&e->mmd);\r
- clear_opt_anc_info(&e->anc);\r
- e->reach_end = 0;\r
- e->case_fold = 0;\r
- e->good_case_fold = 0;\r
- e->len = 0;\r
- e->s[0] = '\0';\r
-}\r
-\r
-static void\r
-copy_opt_exact(OptStr* to, OptStr* from)\r
-{\r
- *to = *from;\r
-}\r
-\r
-static int\r
-concat_opt_exact(OptStr* to, OptStr* add, OnigEncoding enc)\r
-{\r
- int i, j, len, r;\r
- UChar *p, *end;\r
- OptAnc tanc;\r
-\r
- if (add->case_fold != 0) {\r
- if (! to->case_fold) {\r
- if (to->len > 1 || to->len >= add->len) return 0; /* avoid */\r
-\r
- to->case_fold = 1;\r
- }\r
- else {\r
- if (to->good_case_fold != 0) {\r
- if (add->good_case_fold == 0) return 0;\r
- }\r
- }\r
- }\r
-\r
- r = 0;\r
- p = add->s;\r
- end = p + add->len;\r
- for (i = to->len; p < end; ) {\r
- len = enclen(enc, p);\r
- if (i + len > OPT_EXACT_MAXLEN) {\r
- r = 1; /* 1:full */\r
- break;\r
- }\r
- for (j = 0; j < len && p < end; j++)\r
- to->s[i++] = *p++;\r
- }\r
-\r
- to->len = i;\r
- to->reach_end = (p == end ? add->reach_end : 0);\r
-\r
- concat_opt_anc_info(&tanc, &to->anc, &add->anc, 1, 1);\r
- if (! to->reach_end) tanc.right = 0;\r
- copy_opt_anc_info(&to->anc, &tanc);\r
-\r
- return r;\r
-}\r
-\r
-static void\r
-concat_opt_exact_str(OptStr* to, UChar* s, UChar* end, OnigEncoding enc)\r
-{\r
- int i, j, len;\r
- UChar *p;\r
-\r
- for (i = to->len, p = s; p < end && i < OPT_EXACT_MAXLEN; ) {\r
- len = enclen(enc, p);\r
- if (i + len > OPT_EXACT_MAXLEN) break;\r
- for (j = 0; j < len && p < end; j++)\r
- to->s[i++] = *p++;\r
- }\r
-\r
- to->len = i;\r
-\r
- if (p >= end && to->len == (int )(end - s))\r
- to->reach_end = 1;\r
-}\r
-\r
-static void\r
-alt_merge_opt_exact(OptStr* to, OptStr* add, OptEnv* env)\r
-{\r
- int i, j, len;\r
-\r
- if (add->len == 0 || to->len == 0) {\r
- clear_opt_exact(to);\r
- return ;\r
- }\r
-\r
- if (! is_equal_mml(&to->mmd, &add->mmd)) {\r
- clear_opt_exact(to);\r
- return ;\r
- }\r
-\r
- for (i = 0; i < to->len && i < add->len; ) {\r
- if (to->s[i] != add->s[i]) break;\r
- len = enclen(env->enc, to->s + i);\r
-\r
- for (j = 1; j < len; j++) {\r
- if (to->s[i+j] != add->s[i+j]) break;\r
- }\r
- if (j < len) break;\r
- i += len;\r
- }\r
-\r
- if (! add->reach_end || i < add->len || i < to->len) {\r
- to->reach_end = 0;\r
- }\r
- to->len = i;\r
- if (add->case_fold != 0)\r
- to->case_fold = 1;\r
- if (add->good_case_fold == 0)\r
- to->good_case_fold = 0;\r
-\r
- alt_merge_opt_anc_info(&to->anc, &add->anc);\r
- if (! to->reach_end) to->anc.right = 0;\r
-}\r
-\r
-static void\r
-select_opt_exact(OnigEncoding enc, OptStr* now, OptStr* alt)\r
-{\r
- int vn, va;\r
-\r
- vn = now->len;\r
- va = alt->len;\r
-\r
- if (va == 0) {\r
- return ;\r
- }\r
- else if (vn == 0) {\r
- copy_opt_exact(now, alt);\r
- return ;\r
- }\r
- else if (vn <= 2 && va <= 2) {\r
- /* ByteValTable[x] is big value --> low price */\r
- va = map_position_value(enc, now->s[0]);\r
- vn = map_position_value(enc, alt->s[0]);\r
-\r
- if (now->len > 1) vn += 5;\r
- if (alt->len > 1) va += 5;\r
- }\r
-\r
- if (now->case_fold == 0) vn *= 2;\r
- if (alt->case_fold == 0) va *= 2;\r
-\r
- if (now->good_case_fold != 0) vn *= 4;\r
- if (alt->good_case_fold != 0) va *= 4;\r
-\r
- if (comp_distance_value(&now->mmd, &alt->mmd, vn, va) > 0)\r
- copy_opt_exact(now, alt);\r
-}\r
-\r
-static void\r
-clear_opt_map(OptMap* map)\r
-{\r
- static const OptMap clean_info = {\r
- {0, 0}, {0, 0}, 0,\r
- {\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\r
- }\r
- };\r
-\r
- xmemcpy(map, &clean_info, sizeof(OptMap));\r
-}\r
-\r
-static void\r
-copy_opt_map(OptMap* to, OptMap* from)\r
-{\r
- xmemcpy(to,from,sizeof(OptMap));\r
-}\r
-\r
-static void\r
-add_char_opt_map(OptMap* m, UChar c, OnigEncoding enc)\r
-{\r
- if (m->map[c] == 0) {\r
- m->map[c] = 1;\r
- m->value += map_position_value(enc, c);\r
- }\r
-}\r
-\r
-static int\r
-add_char_amb_opt_map(OptMap* map, UChar* p, UChar* end,\r
- OnigEncoding enc, OnigCaseFoldType fold_flag)\r
-{\r
- OnigCaseFoldCodeItem items[ONIGENC_GET_CASE_FOLD_CODES_MAX_NUM];\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN];\r
- int i, n;\r
-\r
- add_char_opt_map(map, p[0], enc);\r
-\r
- fold_flag = DISABLE_CASE_FOLD_MULTI_CHAR(fold_flag);\r
- n = ONIGENC_GET_CASE_FOLD_CODES_BY_STR(enc, fold_flag, p, end, items);\r
- if (n < 0) return n;\r
-\r
- for (i = 0; i < n; i++) {\r
- ONIGENC_CODE_TO_MBC(enc, items[i].code[0], buf);\r
- add_char_opt_map(map, buf[0], enc);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static void\r
-select_opt_map(OptMap* now, OptMap* alt)\r
-{\r
- static int z = 1<<15; /* 32768: something big value */\r
-\r
- int vn, va;\r
-\r
- if (alt->value == 0) return ;\r
- if (now->value == 0) {\r
- copy_opt_map(now, alt);\r
- return ;\r
- }\r
-\r
- vn = z / now->value;\r
- va = z / alt->value;\r
- if (comp_distance_value(&now->mmd, &alt->mmd, vn, va) > 0)\r
- copy_opt_map(now, alt);\r
-}\r
-\r
-static int\r
-comp_opt_exact_or_map(OptStr* e, OptMap* m)\r
-{\r
-#define COMP_EM_BASE 20\r
- int ae, am;\r
- int case_value;\r
-\r
- if (m->value <= 0) return -1;\r
-\r
- if (e->case_fold != 0) {\r
- if (e->good_case_fold != 0)\r
- case_value = 2;\r
- else\r
- case_value = 1;\r
- }\r
- else\r
- case_value = 3;\r
-\r
- ae = COMP_EM_BASE * e->len * case_value;\r
- am = COMP_EM_BASE * 5 * 2 / m->value;\r
- return comp_distance_value(&e->mmd, &m->mmd, ae, am);\r
-}\r
-\r
-static void\r
-alt_merge_opt_map(OnigEncoding enc, OptMap* to, OptMap* add)\r
-{\r
- int i, val;\r
-\r
- /* if (! is_equal_mml(&to->mmd, &add->mmd)) return ; */\r
- if (to->value == 0) return ;\r
- if (add->value == 0 || to->mmd.max < add->mmd.min) {\r
- clear_opt_map(to);\r
- return ;\r
- }\r
-\r
- alt_merge_mml(&to->mmd, &add->mmd);\r
-\r
- val = 0;\r
- for (i = 0; i < CHAR_MAP_SIZE; i++) {\r
- if (add->map[i])\r
- to->map[i] = 1;\r
-\r
- if (to->map[i])\r
- val += map_position_value(enc, i);\r
- }\r
- to->value = val;\r
-\r
- alt_merge_opt_anc_info(&to->anc, &add->anc);\r
-}\r
-\r
-static void\r
-set_bound_node_opt_info(OptNode* opt, MinMax* plen)\r
-{\r
- copy_mml(&(opt->sb.mmd), plen);\r
- copy_mml(&(opt->spr.mmd), plen);\r
- copy_mml(&(opt->map.mmd), plen);\r
-}\r
-\r
-static void\r
-clear_node_opt_info(OptNode* opt)\r
-{\r
- clear_mml(&opt->len);\r
- clear_opt_anc_info(&opt->anc);\r
- clear_opt_exact(&opt->sb);\r
- clear_opt_exact(&opt->sm);\r
- clear_opt_exact(&opt->spr);\r
- clear_opt_map(&opt->map);\r
-}\r
-\r
-static void\r
-copy_node_opt_info(OptNode* to, OptNode* from)\r
-{\r
- xmemcpy(to,from,sizeof(OptNode));\r
-}\r
-\r
-static void\r
-concat_left_node_opt_info(OnigEncoding enc, OptNode* to, OptNode* add)\r
-{\r
- int sb_reach, sm_reach;\r
- OptAnc tanc;\r
-\r
- concat_opt_anc_info(&tanc, &to->anc, &add->anc, to->len.max, add->len.max);\r
- copy_opt_anc_info(&to->anc, &tanc);\r
-\r
- if (add->sb.len > 0 && to->len.max == 0) {\r
- concat_opt_anc_info(&tanc, &to->anc, &add->sb.anc, to->len.max, add->len.max);\r
- copy_opt_anc_info(&add->sb.anc, &tanc);\r
- }\r
-\r
- if (add->map.value > 0 && to->len.max == 0) {\r
- if (add->map.mmd.max == 0)\r
- add->map.anc.left |= to->anc.left;\r
- }\r
-\r
- sb_reach = to->sb.reach_end;\r
- sm_reach = to->sm.reach_end;\r
-\r
- if (add->len.max != 0)\r
- to->sb.reach_end = to->sm.reach_end = 0;\r
-\r
- if (add->sb.len > 0) {\r
- if (sb_reach) {\r
- concat_opt_exact(&to->sb, &add->sb, enc);\r
- clear_opt_exact(&add->sb);\r
- }\r
- else if (sm_reach) {\r
- concat_opt_exact(&to->sm, &add->sb, enc);\r
- clear_opt_exact(&add->sb);\r
- }\r
- }\r
- select_opt_exact(enc, &to->sm, &add->sb);\r
- select_opt_exact(enc, &to->sm, &add->sm);\r
-\r
- if (to->spr.len > 0) {\r
- if (add->len.max > 0) {\r
- if (to->spr.len > (int )add->len.max)\r
- to->spr.len = add->len.max;\r
-\r
- if (to->spr.mmd.max == 0)\r
- select_opt_exact(enc, &to->sb, &to->spr);\r
- else\r
- select_opt_exact(enc, &to->sm, &to->spr);\r
- }\r
- }\r
- else if (add->spr.len > 0) {\r
- copy_opt_exact(&to->spr, &add->spr);\r
- }\r
-\r
- select_opt_map(&to->map, &add->map);\r
- add_mml(&to->len, &add->len);\r
-}\r
-\r
-static void\r
-alt_merge_node_opt_info(OptNode* to, OptNode* add, OptEnv* env)\r
-{\r
- alt_merge_opt_anc_info(&to->anc, &add->anc);\r
- alt_merge_opt_exact(&to->sb, &add->sb, env);\r
- alt_merge_opt_exact(&to->sm, &add->sm, env);\r
- alt_merge_opt_exact(&to->spr, &add->spr, env);\r
- alt_merge_opt_map(env->enc, &to->map, &add->map);\r
-\r
- alt_merge_mml(&to->len, &add->len);\r
-}\r
-\r
-\r
-#define MAX_NODE_OPT_INFO_REF_COUNT 5\r
-\r
-static int\r
-optimize_nodes(Node* node, OptNode* opt, OptEnv* env)\r
-{\r
- int i;\r
- int r;\r
- OptNode xo;\r
- OnigEncoding enc;\r
-\r
- r = 0;\r
- enc = env->enc;\r
- clear_node_opt_info(opt);\r
- set_bound_node_opt_info(opt, &env->mmd);\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_LIST:\r
- {\r
- OptEnv nenv;\r
- Node* nd = node;\r
-\r
- copy_opt_env(&nenv, env);\r
- do {\r
- r = optimize_nodes(NODE_CAR(nd), &xo, &nenv);\r
- if (r == 0) {\r
- add_mml(&nenv.mmd, &xo.len);\r
- concat_left_node_opt_info(enc, opt, &xo);\r
- }\r
- } while (r == 0 && IS_NOT_NULL(nd = NODE_CDR(nd)));\r
- }\r
- break;\r
-\r
- case NODE_ALT:\r
- {\r
- Node* nd = node;\r
-\r
- do {\r
- r = optimize_nodes(NODE_CAR(nd), &xo, env);\r
- if (r == 0) {\r
- if (nd == node) copy_node_opt_info(opt, &xo);\r
- else alt_merge_node_opt_info(opt, &xo, env);\r
- }\r
- } while ((r == 0) && IS_NOT_NULL(nd = NODE_CDR(nd)));\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- StrNode* sn = STR_(node);\r
- int slen = (int )(sn->end - sn->s);\r
- /* int is_raw = NODE_STRING_IS_RAW(node); */\r
-\r
- if (! NODE_STRING_IS_AMBIG(node)) {\r
- concat_opt_exact_str(&opt->sb, sn->s, sn->end, enc);\r
- if (slen > 0) {\r
- add_char_opt_map(&opt->map, *(sn->s), enc);\r
- }\r
- set_mml(&opt->len, slen, slen);\r
- }\r
- else {\r
- int max;\r
-\r
- if (NODE_STRING_IS_DONT_GET_OPT_INFO(node)) {\r
- int n = onigenc_strlen(enc, sn->s, sn->end);\r
- max = ONIGENC_MBC_MAXLEN_DIST(enc) * n;\r
- }\r
- else {\r
- concat_opt_exact_str(&opt->sb, sn->s, sn->end, enc);\r
- opt->sb.case_fold = 1;\r
- if (NODE_STRING_IS_GOOD_AMBIG(node))\r
- opt->sb.good_case_fold = 1;\r
-\r
- if (slen > 0) {\r
- r = add_char_amb_opt_map(&opt->map, sn->s, sn->end,\r
- enc, env->case_fold_flag);\r
- if (r != 0) break;\r
- }\r
-\r
- max = slen;\r
- }\r
-\r
- set_mml(&opt->len, slen, max);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- {\r
- int z;\r
- CClassNode* cc = CCLASS_(node);\r
-\r
- /* no need to check ignore case. (set in setup_tree()) */\r
-\r
- if (IS_NOT_NULL(cc->mbuf) || IS_NCCLASS_NOT(cc)) {\r
- OnigLen min = ONIGENC_MBC_MINLEN(enc);\r
- OnigLen max = ONIGENC_MBC_MAXLEN_DIST(enc);\r
-\r
- set_mml(&opt->len, min, max);\r
- }\r
- else {\r
- for (i = 0; i < SINGLE_BYTE_SIZE; i++) {\r
- z = BITSET_AT(cc->bs, i);\r
- if ((z && ! IS_NCCLASS_NOT(cc)) || (! z && IS_NCCLASS_NOT(cc))) {\r
- add_char_opt_map(&opt->map, (UChar )i, enc);\r
- }\r
- }\r
- set_mml(&opt->len, 1, 1);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CTYPE:\r
- {\r
- int min, max;\r
- int range;\r
-\r
- max = ONIGENC_MBC_MAXLEN_DIST(enc);\r
-\r
- if (max == 1) {\r
- min = 1;\r
-\r
- switch (CTYPE_(node)->ctype) {\r
- case CTYPE_ANYCHAR:\r
- break;\r
-\r
- case ONIGENC_CTYPE_WORD:\r
- range = CTYPE_(node)->ascii_mode != 0 ? 128 : SINGLE_BYTE_SIZE;\r
- if (CTYPE_(node)->not != 0) {\r
- for (i = 0; i < range; i++) {\r
- if (! ONIGENC_IS_CODE_WORD(enc, i)) {\r
- add_char_opt_map(&opt->map, (UChar )i, enc);\r
- }\r
- }\r
- for (i = range; i < SINGLE_BYTE_SIZE; i++) {\r
- add_char_opt_map(&opt->map, (UChar )i, enc);\r
- }\r
- }\r
- else {\r
- for (i = 0; i < range; i++) {\r
- if (ONIGENC_IS_CODE_WORD(enc, i)) {\r
- add_char_opt_map(&opt->map, (UChar )i, enc);\r
- }\r
- }\r
- }\r
- break;\r
- }\r
- }\r
- else {\r
- min = ONIGENC_MBC_MINLEN(enc);\r
- }\r
- set_mml(&opt->len, min, max);\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- switch (ANCHOR_(node)->type) {\r
- case ANCR_BEGIN_BUF:\r
- case ANCR_BEGIN_POSITION:\r
- case ANCR_BEGIN_LINE:\r
- case ANCR_END_BUF:\r
- case ANCR_SEMI_END_BUF:\r
- case ANCR_END_LINE:\r
- case ANCR_PREC_READ_NOT:\r
- case ANCR_LOOK_BEHIND:\r
- add_opt_anc_info(&opt->anc, ANCHOR_(node)->type);\r
- break;\r
-\r
- case ANCR_PREC_READ:\r
- {\r
- r = optimize_nodes(NODE_BODY(node), &xo, env);\r
- if (r == 0) {\r
- if (xo.sb.len > 0)\r
- copy_opt_exact(&opt->spr, &xo.sb);\r
- else if (xo.sm.len > 0)\r
- copy_opt_exact(&opt->spr, &xo.sm);\r
-\r
- opt->spr.reach_end = 0;\r
-\r
- if (xo.map.value > 0)\r
- copy_opt_map(&opt->map, &xo.map);\r
- }\r
- }\r
- break;\r
-\r
- case ANCR_LOOK_BEHIND_NOT:\r
- break;\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- if (! NODE_IS_CHECKER(node)) {\r
- int* backs;\r
- OnigLen min, max, tmin, tmax;\r
- MemEnv* mem_env = SCANENV_MEMENV(env->scan_env);\r
- BackRefNode* br = BACKREF_(node);\r
-\r
- if (NODE_IS_RECURSION(node)) {\r
- set_mml(&opt->len, 0, INFINITE_LEN);\r
- break;\r
- }\r
- backs = BACKREFS_P(br);\r
- min = tree_min_len(mem_env[backs[0]].node, env->scan_env);\r
- max = tree_max_len(mem_env[backs[0]].node, env->scan_env);\r
- for (i = 1; i < br->back_num; i++) {\r
- tmin = tree_min_len(mem_env[backs[i]].node, env->scan_env);\r
- tmax = tree_max_len(mem_env[backs[i]].node, env->scan_env);\r
- if (min > tmin) min = tmin;\r
- if (max < tmax) max = tmax;\r
- }\r
- set_mml(&opt->len, min, max);\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- if (NODE_IS_RECURSION(node))\r
- set_mml(&opt->len, 0, INFINITE_LEN);\r
- else {\r
- OnigOptionType save = env->options;\r
- env->options = BAG_(NODE_BODY(node))->o.options;\r
- r = optimize_nodes(NODE_BODY(node), opt, env);\r
- env->options = save;\r
- }\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- {\r
- OnigLen min, max;\r
- QuantNode* qn = QUANT_(node);\r
-\r
- r = optimize_nodes(NODE_BODY(node), &xo, env);\r
- if (r != 0) break;\r
-\r
- if (qn->lower > 0) {\r
- copy_node_opt_info(opt, &xo);\r
- if (xo.sb.len > 0) {\r
- if (xo.sb.reach_end) {\r
- for (i = 2; i <= qn->lower && ! is_full_opt_exact(&opt->sb); i++) {\r
- int rc = concat_opt_exact(&opt->sb, &xo.sb, enc);\r
- if (rc > 0) break;\r
- }\r
- if (i < qn->lower) opt->sb.reach_end = 0;\r
- }\r
- }\r
-\r
- if (qn->lower != qn->upper) {\r
- opt->sb.reach_end = 0;\r
- opt->sm.reach_end = 0;\r
- }\r
- if (qn->lower > 1)\r
- opt->sm.reach_end = 0;\r
- }\r
-\r
- if (IS_INFINITE_REPEAT(qn->upper)) {\r
- if (env->mmd.max == 0 &&\r
- NODE_IS_ANYCHAR(NODE_BODY(node)) && qn->greedy != 0) {\r
- if (IS_MULTILINE(CTYPE_OPTION(NODE_QUANT_BODY(qn), env)))\r
- add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_ML);\r
- else\r
- add_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF);\r
- }\r
-\r
- max = (xo.len.max > 0 ? INFINITE_LEN : 0);\r
- }\r
- else {\r
- max = distance_multiply(xo.len.max, qn->upper);\r
- }\r
-\r
- min = distance_multiply(xo.len.min, qn->lower);\r
- set_mml(&opt->len, min, max);\r
- }\r
- break;\r
-\r
- case NODE_BAG:\r
- {\r
- BagNode* en = BAG_(node);\r
-\r
- switch (en->type) {\r
- case BAG_OPTION:\r
- {\r
- OnigOptionType save = env->options;\r
-\r
- env->options = en->o.options;\r
- r = optimize_nodes(NODE_BODY(node), opt, env);\r
- env->options = save;\r
- }\r
- break;\r
-\r
- case BAG_MEMORY:\r
-#ifdef USE_CALL\r
- en->opt_count++;\r
- if (en->opt_count > MAX_NODE_OPT_INFO_REF_COUNT) {\r
- OnigLen min, max;\r
-\r
- min = 0;\r
- max = INFINITE_LEN;\r
- if (NODE_IS_MIN_FIXED(node)) min = en->min_len;\r
- if (NODE_IS_MAX_FIXED(node)) max = en->max_len;\r
- set_mml(&opt->len, min, max);\r
- }\r
- else\r
-#endif\r
- {\r
- r = optimize_nodes(NODE_BODY(node), opt, env);\r
- if (is_set_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK)) {\r
- if (MEM_STATUS_AT0(env->scan_env->backrefed_mem, en->m.regnum))\r
- remove_opt_anc_info(&opt->anc, ANCR_ANYCHAR_INF_MASK);\r
- }\r
- }\r
- break;\r
-\r
- case BAG_STOP_BACKTRACK:\r
- r = optimize_nodes(NODE_BODY(node), opt, env);\r
- break;\r
-\r
- case BAG_IF_ELSE:\r
- {\r
- OptEnv nenv;\r
-\r
- copy_opt_env(&nenv, env);\r
- r = optimize_nodes(NODE_BAG_BODY(en), &xo, &nenv);\r
- if (r == 0) {\r
- add_mml(&nenv.mmd, &xo.len);\r
- concat_left_node_opt_info(enc, opt, &xo);\r
- if (IS_NOT_NULL(en->te.Then)) {\r
- r = optimize_nodes(en->te.Then, &xo, &nenv);\r
- if (r == 0) {\r
- concat_left_node_opt_info(enc, opt, &xo);\r
- }\r
- }\r
-\r
- if (IS_NOT_NULL(en->te.Else)) {\r
- r = optimize_nodes(en->te.Else, &xo, env);\r
- if (r == 0)\r
- alt_merge_node_opt_info(opt, &xo, env);\r
- }\r
- }\r
- }\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- break;\r
-\r
- default:\r
-#ifdef ONIG_DEBUG\r
- fprintf(stderr, "optimize_nodes: undefined node type %d\n", NODE_TYPE(node));\r
-#endif\r
- r = ONIGERR_TYPE_BUG;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-set_optimize_exact(regex_t* reg, OptStr* e)\r
-{\r
- int r;\r
-\r
- if (e->len == 0) return 0;\r
-\r
- reg->exact = (UChar* )xmalloc(e->len);\r
- CHECK_NULL_RETURN_MEMERR(reg->exact);\r
- xmemcpy(reg->exact, e->s, e->len);\r
- reg->exact_end = reg->exact + e->len;\r
-\r
- if (e->case_fold) {\r
- reg->optimize = OPTIMIZE_STR_CASE_FOLD;\r
- if (e->good_case_fold != 0) {\r
- if (e->len >= 2) {\r
- r = set_sunday_quick_search_or_bmh_skip_table(reg, 1,\r
- reg->exact, reg->exact_end,\r
- reg->map, &(reg->map_offset));\r
- if (r != 0) return r;\r
- reg->optimize = OPTIMIZE_STR_CASE_FOLD_FAST;\r
- }\r
- }\r
- }\r
- else {\r
- int allow_reverse;\r
-\r
- allow_reverse =\r
- ONIGENC_IS_ALLOWED_REVERSE_MATCH(reg->enc, reg->exact, reg->exact_end);\r
-\r
- if (e->len >= 2 || (e->len >= 1 && allow_reverse)) {\r
- r = set_sunday_quick_search_or_bmh_skip_table(reg, 0,\r
- reg->exact, reg->exact_end,\r
- reg->map, &(reg->map_offset));\r
- if (r != 0) return r;\r
-\r
- reg->optimize = (allow_reverse != 0\r
- ? OPTIMIZE_STR_FAST\r
- : OPTIMIZE_STR_FAST_STEP_FORWARD);\r
- }\r
- else {\r
- reg->optimize = OPTIMIZE_STR;\r
- }\r
- }\r
-\r
- reg->dmin = e->mmd.min;\r
- reg->dmax = e->mmd.max;\r
-\r
- if (reg->dmin != INFINITE_LEN) {\r
- reg->threshold_len = reg->dmin + (int )(reg->exact_end - reg->exact);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static void\r
-set_optimize_map(regex_t* reg, OptMap* m)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < CHAR_MAP_SIZE; i++)\r
- reg->map[i] = m->map[i];\r
-\r
- reg->optimize = OPTIMIZE_MAP;\r
- reg->dmin = m->mmd.min;\r
- reg->dmax = m->mmd.max;\r
-\r
- if (reg->dmin != INFINITE_LEN) {\r
- reg->threshold_len = reg->dmin + 1;\r
- }\r
-}\r
-\r
-static void\r
-set_sub_anchor(regex_t* reg, OptAnc* anc)\r
-{\r
- reg->sub_anchor |= anc->left & ANCR_BEGIN_LINE;\r
- reg->sub_anchor |= anc->right & ANCR_END_LINE;\r
-}\r
-\r
-#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH)\r
-static void print_optimize_info(FILE* f, regex_t* reg);\r
-#endif\r
-\r
-static int\r
-set_optimize_info_from_tree(Node* node, regex_t* reg, ScanEnv* scan_env)\r
-{\r
- int r;\r
- OptNode opt;\r
- OptEnv env;\r
-\r
- env.enc = reg->enc;\r
- env.options = reg->options;\r
- env.case_fold_flag = reg->case_fold_flag;\r
- env.scan_env = scan_env;\r
- clear_mml(&env.mmd);\r
-\r
- r = optimize_nodes(node, &opt, &env);\r
- if (r != 0) return r;\r
-\r
- reg->anchor = opt.anc.left & (ANCR_BEGIN_BUF |\r
- ANCR_BEGIN_POSITION | ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML |\r
- ANCR_LOOK_BEHIND);\r
-\r
- if ((opt.anc.left & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) != 0)\r
- reg->anchor &= ~ANCR_ANYCHAR_INF_ML;\r
-\r
- reg->anchor |= opt.anc.right & (ANCR_END_BUF | ANCR_SEMI_END_BUF |\r
- ANCR_PREC_READ_NOT);\r
-\r
- if (reg->anchor & (ANCR_END_BUF | ANCR_SEMI_END_BUF)) {\r
- reg->anchor_dmin = opt.len.min;\r
- reg->anchor_dmax = opt.len.max;\r
- }\r
-\r
- if (opt.sb.len > 0 || opt.sm.len > 0) {\r
- select_opt_exact(reg->enc, &opt.sb, &opt.sm);\r
- if (opt.map.value > 0 && comp_opt_exact_or_map(&opt.sb, &opt.map) > 0) {\r
- goto set_map;\r
- }\r
- else {\r
- r = set_optimize_exact(reg, &opt.sb);\r
- set_sub_anchor(reg, &opt.sb.anc);\r
- }\r
- }\r
- else if (opt.map.value > 0) {\r
- set_map:\r
- set_optimize_map(reg, &opt.map);\r
- set_sub_anchor(reg, &opt.map.anc);\r
- }\r
- else {\r
- reg->sub_anchor |= opt.anc.left & ANCR_BEGIN_LINE;\r
- if (opt.len.max == 0)\r
- reg->sub_anchor |= opt.anc.right & ANCR_END_LINE;\r
- }\r
-\r
-#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH)\r
- print_optimize_info(stderr, reg);\r
-#endif\r
- return r;\r
-}\r
-\r
-static void\r
-clear_optimize_info(regex_t* reg)\r
-{\r
- reg->optimize = OPTIMIZE_NONE;\r
- reg->anchor = 0;\r
- reg->anchor_dmin = 0;\r
- reg->anchor_dmax = 0;\r
- reg->sub_anchor = 0;\r
- reg->exact_end = (UChar* )NULL;\r
- reg->map_offset = 0;\r
- reg->threshold_len = 0;\r
- if (IS_NOT_NULL(reg->exact)) {\r
- xfree(reg->exact);\r
- reg->exact = (UChar* )NULL;\r
- }\r
-}\r
-\r
-#ifdef ONIG_DEBUG\r
-\r
-static void print_enc_string(FILE* fp, OnigEncoding enc,\r
- const UChar *s, const UChar *end)\r
-{\r
- fprintf(fp, "\nPATTERN: /");\r
-\r
- if (ONIGENC_MBC_MINLEN(enc) > 1) {\r
- const UChar *p;\r
- OnigCodePoint code;\r
-\r
- p = s;\r
- while (p < end) {\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- if (code >= 0x80) {\r
- fprintf(fp, " 0x%04x ", (int )code);\r
- }\r
- else {\r
- fputc((int )code, fp);\r
- }\r
-\r
- p += enclen(enc, p);\r
- }\r
- }\r
- else {\r
- while (s < end) {\r
- fputc((int )*s, fp);\r
- s++;\r
- }\r
- }\r
-\r
- fprintf(fp, "/\n");\r
-}\r
-\r
-#endif /* ONIG_DEBUG */\r
-\r
-#if defined(ONIG_DEBUG_COMPILE) || defined(ONIG_DEBUG_MATCH)\r
-\r
-static void\r
-print_distance_range(FILE* f, OnigLen a, OnigLen b)\r
-{\r
- if (a == INFINITE_LEN)\r
- fputs("inf", f);\r
- else\r
- fprintf(f, "(%u)", a);\r
-\r
- fputs("-", f);\r
-\r
- if (b == INFINITE_LEN)\r
- fputs("inf", f);\r
- else\r
- fprintf(f, "(%u)", b);\r
-}\r
-\r
-static void\r
-print_anchor(FILE* f, int anchor)\r
-{\r
- int q = 0;\r
-\r
- fprintf(f, "[");\r
-\r
- if (anchor & ANCR_BEGIN_BUF) {\r
- fprintf(f, "begin-buf");\r
- q = 1;\r
- }\r
- if (anchor & ANCR_BEGIN_LINE) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "begin-line");\r
- }\r
- if (anchor & ANCR_BEGIN_POSITION) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "begin-pos");\r
- }\r
- if (anchor & ANCR_END_BUF) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "end-buf");\r
- }\r
- if (anchor & ANCR_SEMI_END_BUF) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "semi-end-buf");\r
- }\r
- if (anchor & ANCR_END_LINE) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "end-line");\r
- }\r
- if (anchor & ANCR_ANYCHAR_INF) {\r
- if (q) fprintf(f, ", ");\r
- q = 1;\r
- fprintf(f, "anychar-inf");\r
- }\r
- if (anchor & ANCR_ANYCHAR_INF_ML) {\r
- if (q) fprintf(f, ", ");\r
- fprintf(f, "anychar-inf-ml");\r
- }\r
-\r
- fprintf(f, "]");\r
-}\r
-\r
-static void\r
-print_optimize_info(FILE* f, regex_t* reg)\r
-{\r
- static const char* on[] = { "NONE", "STR",\r
- "STR_FAST", "STR_FAST_STEP_FORWARD",\r
- "STR_CASE_FOLD_FAST", "STR_CASE_FOLD", "MAP" };\r
-\r
- fprintf(f, "optimize: %s\n", on[reg->optimize]);\r
- fprintf(f, " anchor: "); print_anchor(f, reg->anchor);\r
- if ((reg->anchor & ANCR_END_BUF_MASK) != 0)\r
- print_distance_range(f, reg->anchor_dmin, reg->anchor_dmax);\r
- fprintf(f, "\n");\r
-\r
- if (reg->optimize) {\r
- fprintf(f, " sub anchor: "); print_anchor(f, reg->sub_anchor);\r
- fprintf(f, "\n");\r
- }\r
- fprintf(f, "\n");\r
-\r
- if (reg->exact) {\r
- UChar *p;\r
- fprintf(f, "exact: [");\r
- for (p = reg->exact; p < reg->exact_end; p++) {\r
- fputc(*p, f);\r
- }\r
- fprintf(f, "]: length: %ld\n", (reg->exact_end - reg->exact));\r
- }\r
- else if (reg->optimize & OPTIMIZE_MAP) {\r
- int c, i, n = 0;\r
-\r
- for (i = 0; i < CHAR_MAP_SIZE; i++)\r
- if (reg->map[i]) n++;\r
-\r
- fprintf(f, "map: n=%d\n", n);\r
- if (n > 0) {\r
- c = 0;\r
- fputc('[', f);\r
- for (i = 0; i < CHAR_MAP_SIZE; i++) {\r
- if (reg->map[i] != 0) {\r
- if (c > 0) fputs(", ", f);\r
- c++;\r
- if (ONIGENC_MBC_MAXLEN(reg->enc) == 1 &&\r
- ONIGENC_IS_CODE_PRINT(reg->enc, (OnigCodePoint )i))\r
- fputc(i, f);\r
- else\r
- fprintf(f, "%d", i);\r
- }\r
- }\r
- fprintf(f, "]\n");\r
- }\r
- }\r
-}\r
-#endif\r
-\r
-\r
-extern RegexExt*\r
-onig_get_regex_ext(regex_t* reg)\r
-{\r
- if (IS_NULL(reg->extp)) {\r
- RegexExt* ext = (RegexExt* )xmalloc(sizeof(*ext));\r
- if (IS_NULL(ext)) return 0;\r
-\r
- ext->pattern = 0;\r
- ext->pattern_end = 0;\r
-#ifdef USE_CALLOUT\r
- ext->tag_table = 0;\r
- ext->callout_num = 0;\r
- ext->callout_list_alloc = 0;\r
- ext->callout_list = 0;\r
-#endif\r
-\r
- reg->extp = ext;\r
- }\r
-\r
- return reg->extp;\r
-}\r
-\r
-static void\r
-free_regex_ext(RegexExt* ext)\r
-{\r
- if (IS_NOT_NULL(ext)) {\r
- if (IS_NOT_NULL(ext->pattern))\r
- xfree((void* )ext->pattern);\r
-\r
-#ifdef USE_CALLOUT\r
- if (IS_NOT_NULL(ext->tag_table))\r
- onig_callout_tag_table_free(ext->tag_table);\r
-\r
- if (IS_NOT_NULL(ext->callout_list))\r
- onig_free_reg_callout_list(ext->callout_num, ext->callout_list);\r
-#endif\r
-\r
- xfree(ext);\r
- }\r
-}\r
-\r
-extern int\r
-onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end)\r
-{\r
- RegexExt* ext;\r
- UChar* s;\r
-\r
- ext = onig_get_regex_ext(reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
-\r
- s = onigenc_strdup(reg->enc, pattern, pattern_end);\r
- CHECK_NULL_RETURN_MEMERR(s);\r
-\r
- ext->pattern = s;\r
- ext->pattern_end = s + (pattern_end - pattern);\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern void\r
-onig_free_body(regex_t* reg)\r
-{\r
- if (IS_NOT_NULL(reg)) {\r
- ops_free(reg);\r
- if (IS_NOT_NULL(reg->string_pool)) {\r
- xfree(reg->string_pool);\r
- reg->string_pool_end = reg->string_pool = 0;\r
- }\r
- if (IS_NOT_NULL(reg->exact)) xfree(reg->exact);\r
- if (IS_NOT_NULL(reg->repeat_range)) xfree(reg->repeat_range);\r
- if (IS_NOT_NULL(reg->extp)) {\r
- free_regex_ext(reg->extp);\r
- reg->extp = 0;\r
- }\r
-\r
- onig_names_free(reg);\r
- }\r
-}\r
-\r
-extern void\r
-onig_free(regex_t* reg)\r
-{\r
- if (IS_NOT_NULL(reg)) {\r
- onig_free_body(reg);\r
- xfree(reg);\r
- }\r
-}\r
-\r
-\r
-#ifdef ONIG_DEBUG_PARSE\r
-static void print_tree P_((FILE* f, Node* node));\r
-#endif\r
-\r
-extern int onig_init_for_match_at(regex_t* reg);\r
-\r
-extern int\r
-onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end,\r
- OnigErrorInfo* einfo)\r
-{\r
- int r;\r
- Node* root;\r
- ScanEnv scan_env;\r
-#ifdef USE_CALL\r
- UnsetAddrList uslist;\r
-#endif\r
-\r
- root = 0;\r
- if (IS_NOT_NULL(einfo)) {\r
- einfo->enc = reg->enc;\r
- einfo->par = (UChar* )NULL;\r
- }\r
-\r
-#ifdef ONIG_DEBUG\r
- print_enc_string(stderr, reg->enc, pattern, pattern_end);\r
-#endif\r
-\r
- if (reg->ops_alloc == 0) {\r
- r = ops_init(reg, OPS_INIT_SIZE);\r
- if (r != 0) goto end;\r
- }\r
- else\r
- reg->ops_used = 0;\r
-\r
- reg->string_pool = 0;\r
- reg->string_pool_end = 0;\r
- reg->num_mem = 0;\r
- reg->num_repeat = 0;\r
- reg->num_null_check = 0;\r
- reg->repeat_range_alloc = 0;\r
- reg->repeat_range = (OnigRepeatRange* )NULL;\r
-\r
- r = onig_parse_tree(&root, pattern, pattern_end, reg, &scan_env);\r
- if (r != 0) goto err;\r
-\r
- /* mixed use named group and no-named group */\r
- if (scan_env.num_named > 0 &&\r
- IS_SYNTAX_BV(scan_env.syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) &&\r
- ! ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_CAPTURE_GROUP)) {\r
- if (scan_env.num_named != scan_env.num_mem)\r
- r = disable_noname_group_capture(&root, reg, &scan_env);\r
- else\r
- r = numbered_ref_check(root);\r
-\r
- if (r != 0) goto err;\r
- }\r
-\r
- r = check_backrefs(root, &scan_env);\r
- if (r != 0) goto err;\r
-\r
-#ifdef USE_CALL\r
- if (scan_env.num_call > 0) {\r
- r = unset_addr_list_init(&uslist, scan_env.num_call);\r
- if (r != 0) goto err;\r
- scan_env.unset_addr_list = &uslist;\r
- r = setup_call(root, &scan_env, 0);\r
- if (r != 0) goto err_unset;\r
- r = setup_call2(root);\r
- if (r != 0) goto err_unset;\r
- r = recursive_call_check_trav(root, &scan_env, 0);\r
- if (r < 0) goto err_unset;\r
- r = infinite_recursive_call_check_trav(root, &scan_env);\r
- if (r != 0) goto err_unset;\r
-\r
- setup_called_state(root, 0);\r
- }\r
-\r
- reg->num_call = scan_env.num_call;\r
-#endif\r
-\r
- r = setup_tree(root, reg, 0, &scan_env);\r
- if (r != 0) goto err_unset;\r
-\r
-#ifdef ONIG_DEBUG_PARSE\r
- print_tree(stderr, root);\r
-#endif\r
-\r
- reg->capture_history = scan_env.capture_history;\r
- reg->bt_mem_start = scan_env.bt_mem_start;\r
- reg->bt_mem_start |= reg->capture_history;\r
- if (IS_FIND_CONDITION(reg->options))\r
- MEM_STATUS_ON_ALL(reg->bt_mem_end);\r
- else {\r
- reg->bt_mem_end = scan_env.bt_mem_end;\r
- reg->bt_mem_end |= reg->capture_history;\r
- }\r
- reg->bt_mem_start |= reg->bt_mem_end;\r
-\r
- clear_optimize_info(reg);\r
-#ifndef ONIG_DONT_OPTIMIZE\r
- r = set_optimize_info_from_tree(root, reg, &scan_env);\r
- if (r != 0) goto err_unset;\r
-#endif\r
-\r
- if (IS_NOT_NULL(scan_env.mem_env_dynamic)) {\r
- xfree(scan_env.mem_env_dynamic);\r
- scan_env.mem_env_dynamic = (MemEnv* )NULL;\r
- }\r
-\r
- r = compile_tree(root, reg, &scan_env);\r
- if (r == 0) {\r
- if (scan_env.keep_num > 0) {\r
- r = add_op(reg, OP_UPDATE_VAR);\r
- if (r != 0) goto err;\r
-\r
- COP(reg)->update_var.type = UPDATE_VAR_KEEP_FROM_STACK_LAST;\r
- COP(reg)->update_var.id = 0; /* not used */\r
- }\r
-\r
- r = add_op(reg, OP_END);\r
- if (r != 0) goto err;\r
-\r
-#ifdef USE_CALL\r
- if (scan_env.num_call > 0) {\r
- r = fix_unset_addr_list(&uslist, reg);\r
- unset_addr_list_end(&uslist);\r
- if (r != 0) goto err;\r
- }\r
-#endif\r
-\r
- if ((reg->num_repeat != 0) || (reg->bt_mem_end != 0)\r
-#ifdef USE_CALLOUT\r
- || (IS_NOT_NULL(reg->extp) && reg->extp->callout_num != 0)\r
-#endif\r
- )\r
- reg->stack_pop_level = STACK_POP_LEVEL_ALL;\r
- else {\r
- if (reg->bt_mem_start != 0)\r
- reg->stack_pop_level = STACK_POP_LEVEL_MEM_START;\r
- else\r
- reg->stack_pop_level = STACK_POP_LEVEL_FREE;\r
- }\r
-\r
- r = ops_make_string_pool(reg);\r
- if (r != 0) goto err;\r
- }\r
-#ifdef USE_CALL\r
- else if (scan_env.num_call > 0) {\r
- unset_addr_list_end(&uslist);\r
- }\r
-#endif\r
- onig_node_free(root);\r
-\r
-#ifdef ONIG_DEBUG_COMPILE\r
- onig_print_names(stderr, reg);\r
- onig_print_compiled_byte_code_list(stderr, reg);\r
-#endif\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- /* opcode -> opaddr */\r
- onig_init_for_match_at(reg);\r
-#endif\r
-\r
- end:\r
- return r;\r
-\r
- err_unset:\r
-#ifdef USE_CALL\r
- if (scan_env.num_call > 0) {\r
- unset_addr_list_end(&uslist);\r
- }\r
-#endif\r
- err:\r
- if (IS_NOT_NULL(scan_env.error)) {\r
- if (IS_NOT_NULL(einfo)) {\r
- einfo->par = scan_env.error;\r
- einfo->par_end = scan_env.error_end;\r
- }\r
- }\r
-\r
- onig_node_free(root);\r
- if (IS_NOT_NULL(scan_env.mem_env_dynamic))\r
- xfree(scan_env.mem_env_dynamic);\r
- return r;\r
-}\r
-\r
-\r
-static int onig_inited = 0;\r
-\r
-extern int\r
-onig_reg_init(regex_t* reg, OnigOptionType option, OnigCaseFoldType case_fold_flag,\r
- OnigEncoding enc, OnigSyntaxType* syntax)\r
-{\r
- int r;\r
-\r
- xmemset(reg, 0, sizeof(*reg));\r
-\r
- if (onig_inited == 0) {\r
-#if 0\r
- return ONIGERR_LIBRARY_IS_NOT_INITIALIZED;\r
-#else\r
- r = onig_initialize(&enc, 1);\r
- if (r != 0)\r
- return ONIGERR_FAIL_TO_INITIALIZE;\r
-\r
- onig_warning("You didn't call onig_initialize() explicitly");\r
-#endif\r
- }\r
-\r
- if (IS_NULL(reg))\r
- return ONIGERR_INVALID_ARGUMENT;\r
-\r
- if (ONIGENC_IS_UNDEF(enc))\r
- return ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED;\r
-\r
- if ((option & (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP))\r
- == (ONIG_OPTION_DONT_CAPTURE_GROUP|ONIG_OPTION_CAPTURE_GROUP)) {\r
- return ONIGERR_INVALID_COMBINATION_OF_OPTIONS;\r
- }\r
-\r
- if ((option & ONIG_OPTION_NEGATE_SINGLELINE) != 0) {\r
- option |= syntax->options;\r
- option &= ~ONIG_OPTION_SINGLELINE;\r
- }\r
- else\r
- option |= syntax->options;\r
-\r
- (reg)->enc = enc;\r
- (reg)->options = option;\r
- (reg)->syntax = syntax;\r
- (reg)->optimize = 0;\r
- (reg)->exact = (UChar* )NULL;\r
- (reg)->extp = (RegexExt* )NULL;\r
-\r
- (reg)->ops = (Operation* )NULL;\r
- (reg)->ops_curr = (Operation* )NULL;\r
- (reg)->ops_used = 0;\r
- (reg)->ops_alloc = 0;\r
- (reg)->name_table = (void* )NULL;\r
-\r
- (reg)->case_fold_flag = case_fold_flag;\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_new_without_alloc(regex_t* reg,\r
- const UChar* pattern, const UChar* pattern_end,\r
- OnigOptionType option, OnigEncoding enc,\r
- OnigSyntaxType* syntax, OnigErrorInfo* einfo)\r
-{\r
- int r;\r
-\r
- r = onig_reg_init(reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax);\r
- if (r != 0) return r;\r
-\r
- r = onig_compile(reg, pattern, pattern_end, einfo);\r
- return r;\r
-}\r
-\r
-extern int\r
-onig_new(regex_t** reg, const UChar* pattern, const UChar* pattern_end,\r
- OnigOptionType option, OnigEncoding enc, OnigSyntaxType* syntax,\r
- OnigErrorInfo* einfo)\r
-{\r
- int r;\r
-\r
- *reg = (regex_t* )xmalloc(sizeof(regex_t));\r
- if (IS_NULL(*reg)) return ONIGERR_MEMORY;\r
-\r
- r = onig_reg_init(*reg, option, ONIGENC_CASE_FOLD_DEFAULT, enc, syntax);\r
- if (r != 0) goto err;\r
-\r
- r = onig_compile(*reg, pattern, pattern_end, einfo);\r
- if (r != 0) {\r
- err:\r
- onig_free(*reg);\r
- *reg = NULL;\r
- }\r
- return r;\r
-}\r
-\r
-extern int\r
-onig_initialize(OnigEncoding encodings[], int n)\r
-{\r
- int i;\r
- int r;\r
-\r
- if (onig_inited != 0)\r
- return 0;\r
-\r
- onigenc_init();\r
-\r
- onig_inited = 1;\r
-\r
- for (i = 0; i < n; i++) {\r
- OnigEncoding enc = encodings[i];\r
- r = onig_initialize_encoding(enc);\r
- if (r != 0)\r
- return r;\r
- }\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-typedef struct EndCallListItem {\r
- struct EndCallListItem* next;\r
- void (*func)(void);\r
-} EndCallListItemType;\r
-\r
-static EndCallListItemType* EndCallTop;\r
-\r
-extern void onig_add_end_call(void (*func)(void))\r
-{\r
- EndCallListItemType* item;\r
-\r
- item = (EndCallListItemType* )xmalloc(sizeof(*item));\r
- if (item == 0) return ;\r
-\r
- item->next = EndCallTop;\r
- item->func = func;\r
-\r
- EndCallTop = item;\r
-}\r
-\r
-static void\r
-exec_end_call_list(void)\r
-{\r
- EndCallListItemType* prev;\r
- void (*func)(void);\r
-\r
- while (EndCallTop != 0) {\r
- func = EndCallTop->func;\r
- (*func)();\r
-\r
- prev = EndCallTop;\r
- EndCallTop = EndCallTop->next;\r
- xfree(prev);\r
- }\r
-}\r
-\r
-extern int\r
-onig_end(void)\r
-{\r
- exec_end_call_list();\r
-\r
-#ifdef USE_CALLOUT\r
- onig_global_callout_names_free();\r
-#endif\r
-\r
- onigenc_end();\r
-\r
- onig_inited = 0;\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_is_in_code_range(const UChar* p, OnigCodePoint code)\r
-{\r
- OnigCodePoint n, *data;\r
- OnigCodePoint low, high, x;\r
-\r
- GET_CODE_POINT(n, p);\r
- data = (OnigCodePoint* )p;\r
- data++;\r
-\r
- for (low = 0, high = n; low < high; ) {\r
- x = (low + high) >> 1;\r
- if (code > data[x * 2 + 1])\r
- low = x + 1;\r
- else\r
- high = x;\r
- }\r
-\r
- return ((low < n && code >= data[low * 2]) ? 1 : 0);\r
-}\r
-\r
-extern int\r
-onig_is_code_in_cc_len(int elen, OnigCodePoint code, /* CClassNode* */ void* cc_arg)\r
-{\r
- int found;\r
- CClassNode* cc = (CClassNode* )cc_arg;\r
-\r
- if (elen > 1 || (code >= SINGLE_BYTE_SIZE)) {\r
- if (IS_NULL(cc->mbuf)) {\r
- found = 0;\r
- }\r
- else {\r
- found = onig_is_in_code_range(cc->mbuf->p, code) != 0;\r
- }\r
- }\r
- else {\r
- found = BITSET_AT(cc->bs, code) != 0;\r
- }\r
-\r
- if (IS_NCCLASS_NOT(cc))\r
- return !found;\r
- else\r
- return found;\r
-}\r
-\r
-extern int\r
-onig_is_code_in_cc(OnigEncoding enc, OnigCodePoint code, CClassNode* cc)\r
-{\r
- int len;\r
-\r
- if (ONIGENC_MBC_MINLEN(enc) > 1) {\r
- len = 2;\r
- }\r
- else {\r
- len = ONIGENC_CODE_TO_MBCLEN(enc, code);\r
- if (len < 0) return 0;\r
- }\r
- return onig_is_code_in_cc_len(len, code, cc);\r
-}\r
-\r
-\r
-#ifdef ONIG_DEBUG_PARSE\r
-\r
-static void\r
-p_string(FILE* f, int len, UChar* s)\r
-{\r
- fputs(":", f);\r
- while (len-- > 0) { fputc(*s++, f); }\r
-}\r
-\r
-static void\r
-Indent(FILE* f, int indent)\r
-{\r
- int i;\r
- for (i = 0; i < indent; i++) putc(' ', f);\r
-}\r
-\r
-static void\r
-print_indent_tree(FILE* f, Node* node, int indent)\r
-{\r
- int i;\r
- NodeType type;\r
- UChar* p;\r
- int add = 3;\r
-\r
- Indent(f, indent);\r
- if (IS_NULL(node)) {\r
- fprintf(f, "ERROR: null node!!!\n");\r
- exit (0);\r
- }\r
-\r
- type = NODE_TYPE(node);\r
- switch (type) {\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- if (type == NODE_LIST)\r
- fprintf(f, "<list:%p>\n", node);\r
- else\r
- fprintf(f, "<alt:%p>\n", node);\r
-\r
- print_indent_tree(f, NODE_CAR(node), indent + add);\r
- while (IS_NOT_NULL(node = NODE_CDR(node))) {\r
- if (NODE_TYPE(node) != type) {\r
- fprintf(f, "ERROR: list/alt right is not a cons. %d\n", NODE_TYPE(node));\r
- exit(0);\r
- }\r
- print_indent_tree(f, NODE_CAR(node), indent + add);\r
- }\r
- break;\r
-\r
- case NODE_STRING:\r
- {\r
- char* mode;\r
- char* dont;\r
- char* good;\r
-\r
- if (NODE_STRING_IS_RAW(node))\r
- mode = "-raw";\r
- else if (NODE_STRING_IS_AMBIG(node))\r
- mode = "-ambig";\r
- else\r
- mode = "";\r
-\r
- if (NODE_STRING_IS_GOOD_AMBIG(node))\r
- good = "-good";\r
- else\r
- good = "";\r
-\r
- if (NODE_STRING_IS_DONT_GET_OPT_INFO(node))\r
- dont = " (dont-opt)";\r
- else\r
- dont = "";\r
-\r
- fprintf(f, "<string%s%s%s:%p>", mode, good, dont, node);\r
- for (p = STR_(node)->s; p < STR_(node)->end; p++) {\r
- if (*p >= 0x20 && *p < 0x7f)\r
- fputc(*p, f);\r
- else {\r
- fprintf(f, " 0x%02x", *p);\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- fprintf(f, "<cclass:%p>", node);\r
- if (IS_NCCLASS_NOT(CCLASS_(node))) fputs(" not", f);\r
- if (CCLASS_(node)->mbuf) {\r
- BBuf* bbuf = CCLASS_(node)->mbuf;\r
- for (i = 0; i < bbuf->used; i++) {\r
- if (i > 0) fprintf(f, ",");\r
- fprintf(f, "%0x", bbuf->p[i]);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_CTYPE:\r
- fprintf(f, "<ctype:%p> ", node);\r
- switch (CTYPE_(node)->ctype) {\r
- case CTYPE_ANYCHAR:\r
- fprintf(f, "<anychar:%p>", node);\r
- break;\r
-\r
- case ONIGENC_CTYPE_WORD:\r
- if (CTYPE_(node)->not != 0)\r
- fputs("not word", f);\r
- else\r
- fputs("word", f);\r
-\r
- if (CTYPE_(node)->ascii_mode != 0)\r
- fputs(" (ascii)", f);\r
-\r
- break;\r
-\r
- default:\r
- fprintf(f, "ERROR: undefined ctype.\n");\r
- exit(0);\r
- }\r
- break;\r
-\r
- case NODE_ANCHOR:\r
- fprintf(f, "<anchor:%p> ", node);\r
- switch (ANCHOR_(node)->type) {\r
- case ANCR_BEGIN_BUF: fputs("begin buf", f); break;\r
- case ANCR_END_BUF: fputs("end buf", f); break;\r
- case ANCR_BEGIN_LINE: fputs("begin line", f); break;\r
- case ANCR_END_LINE: fputs("end line", f); break;\r
- case ANCR_SEMI_END_BUF: fputs("semi end buf", f); break;\r
- case ANCR_BEGIN_POSITION: fputs("begin position", f); break;\r
-\r
- case ANCR_WORD_BOUNDARY: fputs("word boundary", f); break;\r
- case ANCR_NO_WORD_BOUNDARY: fputs("not word boundary", f); break;\r
-#ifdef USE_WORD_BEGIN_END\r
- case ANCR_WORD_BEGIN: fputs("word begin", f); break;\r
- case ANCR_WORD_END: fputs("word end", f); break;\r
-#endif\r
- case ANCR_TEXT_SEGMENT_BOUNDARY:\r
- fputs("text-segment boundary", f); break;\r
- case ANCR_NO_TEXT_SEGMENT_BOUNDARY:\r
- fputs("no text-segment boundary", f); break;\r
- case ANCR_PREC_READ:\r
- fprintf(f, "prec read\n");\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
- case ANCR_PREC_READ_NOT:\r
- fprintf(f, "prec read not\n");\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
- case ANCR_LOOK_BEHIND:\r
- fprintf(f, "look behind\n");\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
- case ANCR_LOOK_BEHIND_NOT:\r
- fprintf(f, "look behind not\n");\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
-\r
- default:\r
- fprintf(f, "ERROR: undefined anchor type.\n");\r
- break;\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- {\r
- int* p;\r
- BackRefNode* br = BACKREF_(node);\r
- p = BACKREFS_P(br);\r
- fprintf(f, "<backref%s:%p>", NODE_IS_CHECKER(node) ? "-checker" : "", node);\r
- for (i = 0; i < br->back_num; i++) {\r
- if (i > 0) fputs(", ", f);\r
- fprintf(f, "%d", p[i]);\r
- }\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case NODE_CALL:\r
- {\r
- CallNode* cn = CALL_(node);\r
- fprintf(f, "<call:%p>", node);\r
- p_string(f, cn->name_end - cn->name, cn->name);\r
- }\r
- break;\r
-#endif\r
-\r
- case NODE_QUANT:\r
- fprintf(f, "<quantifier:%p>{%d,%d}%s\n", node,\r
- QUANT_(node)->lower, QUANT_(node)->upper,\r
- (QUANT_(node)->greedy ? "" : "?"));\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
-\r
- case NODE_BAG:\r
- fprintf(f, "<bag:%p> ", node);\r
- switch (BAG_(node)->type) {\r
- case BAG_OPTION:\r
- fprintf(f, "option:%d", BAG_(node)->o.options);\r
- break;\r
- case BAG_MEMORY:\r
- fprintf(f, "memory:%d", BAG_(node)->m.regnum);\r
- break;\r
- case BAG_STOP_BACKTRACK:\r
- fprintf(f, "stop-bt");\r
- break;\r
- case BAG_IF_ELSE:\r
- fprintf(f, "if-else");\r
- break;\r
- }\r
- fprintf(f, "\n");\r
- print_indent_tree(f, NODE_BODY(node), indent + add);\r
- break;\r
-\r
- case NODE_GIMMICK:\r
- fprintf(f, "<gimmick:%p> ", node);\r
- switch (GIMMICK_(node)->type) {\r
- case GIMMICK_FAIL:\r
- fprintf(f, "fail");\r
- break;\r
- case GIMMICK_SAVE:\r
- fprintf(f, "save:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id);\r
- break;\r
- case GIMMICK_UPDATE_VAR:\r
- fprintf(f, "update_var:%d:%d", GIMMICK_(node)->detail_type, GIMMICK_(node)->id);\r
- break;\r
-#ifdef USE_CALLOUT\r
- case GIMMICK_CALLOUT:\r
- switch (GIMMICK_(node)->detail_type) {\r
- case ONIG_CALLOUT_OF_CONTENTS:\r
- fprintf(f, "callout:contents:%d", GIMMICK_(node)->num);\r
- break;\r
- case ONIG_CALLOUT_OF_NAME:\r
- fprintf(f, "callout:name:%d:%d", GIMMICK_(node)->id, GIMMICK_(node)->num);\r
- break;\r
- }\r
-#endif\r
- }\r
- break;\r
-\r
- default:\r
- fprintf(f, "print_indent_tree: undefined node type %d\n", NODE_TYPE(node));\r
- break;\r
- }\r
-\r
- if (type != NODE_LIST && type != NODE_ALT && type != NODE_QUANT &&\r
- type != NODE_BAG)\r
- fprintf(f, "\n");\r
- fflush(f);\r
-}\r
-\r
-static void\r
-print_tree(FILE* f, Node* node)\r
-{\r
- print_indent_tree(f, node, 0);\r
-}\r
-#endif\r
+++ /dev/null
-/**********************************************************************\r
- regenc.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-OnigEncoding OnigEncDefaultCharEncoding = ONIG_ENCODING_INIT_DEFAULT;\r
-\r
-#define INITED_LIST_SIZE 20\r
-\r
-static int InitedListNum;\r
-\r
-static struct {\r
- OnigEncoding enc;\r
- int inited;\r
-} InitedList[INITED_LIST_SIZE];\r
-\r
-static int\r
-enc_inited_entry(OnigEncoding enc)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < InitedListNum; i++) {\r
- if (InitedList[i].enc == enc) {\r
- InitedList[i].inited = 1;\r
- return i;\r
- }\r
- }\r
-\r
- i = InitedListNum;\r
- if (i < INITED_LIST_SIZE - 1) {\r
- InitedList[i].enc = enc;\r
- InitedList[i].inited = 1;\r
- InitedListNum++;\r
- return i;\r
- }\r
-\r
- return -1;\r
-}\r
-\r
-static int\r
-enc_is_inited(OnigEncoding enc)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < InitedListNum; i++) {\r
- if (InitedList[i].enc == enc) {\r
- return InitedList[i].inited;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int OnigEncInited;\r
-\r
-extern int\r
-onigenc_init(void)\r
-{\r
- if (OnigEncInited != 0) return 0;\r
-\r
- OnigEncInited = 1;\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_end(void)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < InitedListNum; i++) {\r
- InitedList[i].enc = 0;\r
- InitedList[i].inited = 0;\r
- }\r
- InitedListNum = 0;\r
-\r
- OnigEncInited = 0;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_initialize_encoding(OnigEncoding enc)\r
-{\r
- int r;\r
-\r
- if (enc != ONIG_ENCODING_ASCII &&\r
- ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) {\r
- OnigEncoding ascii = ONIG_ENCODING_ASCII;\r
- if (ascii->init != 0 && enc_is_inited(ascii) == 0) {\r
- r = ascii->init();\r
- if (r != ONIG_NORMAL) return r;\r
- enc_inited_entry(ascii);\r
- }\r
- }\r
-\r
- if (enc->init != 0 &&\r
- enc_is_inited(enc) == 0) {\r
- r = (enc->init)();\r
- if (r == ONIG_NORMAL)\r
- enc_inited_entry(enc);\r
- return r;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern OnigEncoding\r
-onigenc_get_default_encoding(void)\r
-{\r
- return OnigEncDefaultCharEncoding;\r
-}\r
-\r
-extern int\r
-onigenc_set_default_encoding(OnigEncoding enc)\r
-{\r
- OnigEncDefaultCharEncoding = enc;\r
- return 0;\r
-}\r
-\r
-extern UChar*\r
-onigenc_strdup(OnigEncoding enc, const UChar* s, const UChar* end)\r
-{\r
- int slen, term_len, i;\r
- UChar *r;\r
-\r
- slen = (int )(end - s);\r
- term_len = ONIGENC_MBC_MINLEN(enc);\r
-\r
- r = (UChar* )xmalloc(slen + term_len);\r
- CHECK_NULL_RETURN(r);\r
- xmemcpy(r, s, slen);\r
-\r
- for (i = 0; i < term_len; i++)\r
- r[slen + i] = (UChar )0;\r
-\r
- return r;\r
-}\r
-\r
-extern UChar*\r
-onigenc_get_right_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s)\r
-{\r
- UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s);\r
- if (p < s) {\r
- p += enclen(enc, p);\r
- }\r
- return p;\r
-}\r
-\r
-extern UChar*\r
-onigenc_get_right_adjust_char_head_with_prev(OnigEncoding enc,\r
- const UChar* start, const UChar* s, const UChar** prev)\r
-{\r
- UChar* p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s);\r
-\r
- if (p < s) {\r
- if (prev) *prev = (const UChar* )p;\r
- p += enclen(enc, p);\r
- }\r
- else {\r
- if (prev) *prev = (const UChar* )NULL; /* Sorry */\r
- }\r
- return p;\r
-}\r
-\r
-extern UChar*\r
-onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s)\r
-{\r
- if (s <= start)\r
- return (UChar* )NULL;\r
-\r
- return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1);\r
-}\r
-\r
-extern UChar*\r
-onigenc_step_back(OnigEncoding enc, const UChar* start, const UChar* s, int n)\r
-{\r
- while (ONIG_IS_NOT_NULL(s) && n-- > 0) {\r
- if (s <= start)\r
- return (UChar* )NULL;\r
-\r
- s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s - 1);\r
- }\r
- return (UChar* )s;\r
-}\r
-\r
-#if 0\r
-extern int\r
-onigenc_mbc_enc_len_end(OnigEncoding enc, const UChar* p, const UChar* end)\r
-{\r
- int len;\r
- int n;\r
-\r
- len = ONIGENC_MBC_ENC_LEN(enc, p);\r
- n = (int )(end - p);\r
-\r
- return (n < len ? n : len);\r
-}\r
-#endif\r
-\r
-extern UChar*\r
-onigenc_step(OnigEncoding enc, const UChar* p, const UChar* end, int n)\r
-{\r
- UChar* q = (UChar* )p;\r
- while (n-- > 0) {\r
- q += ONIGENC_MBC_ENC_LEN(enc, q);\r
- }\r
- return (q <= end ? q : NULL);\r
-}\r
-\r
-extern int\r
-onigenc_strlen(OnigEncoding enc, const UChar* p, const UChar* end)\r
-{\r
- int n = 0;\r
- UChar* q = (UChar* )p;\r
-\r
- while (q < end) {\r
- q += ONIGENC_MBC_ENC_LEN(enc, q);\r
- n++;\r
- }\r
- return n;\r
-}\r
-\r
-extern int\r
-onigenc_strlen_null(OnigEncoding enc, const UChar* s)\r
-{\r
- int n = 0;\r
- UChar* p = (UChar* )s;\r
-\r
- while (1) {\r
- if (*p == '\0') {\r
- UChar* q;\r
- int len = ONIGENC_MBC_MINLEN(enc);\r
-\r
- if (len == 1) return n;\r
- q = p + 1;\r
- while (len > 1) {\r
- if (*q != '\0') break;\r
- q++;\r
- len--;\r
- }\r
- if (len == 1) return n;\r
- }\r
- p += ONIGENC_MBC_ENC_LEN(enc, p);\r
- n++;\r
- }\r
-}\r
-\r
-extern int\r
-onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s)\r
-{\r
- UChar* start = (UChar* )s;\r
- UChar* p = (UChar* )s;\r
-\r
- while (1) {\r
- if (*p == '\0') {\r
- UChar* q;\r
- int len = ONIGENC_MBC_MINLEN(enc);\r
-\r
- if (len == 1) return (int )(p - start);\r
- q = p + 1;\r
- while (len > 1) {\r
- if (*q != '\0') break;\r
- q++;\r
- len--;\r
- }\r
- if (len == 1) return (int )(p - start);\r
- }\r
- p += ONIGENC_MBC_ENC_LEN(enc, p);\r
- }\r
-}\r
-\r
-const UChar OnigEncAsciiToLowerCaseTable[] = {\r
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',\r
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',\r
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',\r
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',\r
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',\r
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',\r
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',\r
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',\r
- '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',\r
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',\r
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',\r
- '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',\r
- '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',\r
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',\r
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',\r
- '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',\r
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',\r
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',\r
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',\r
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',\r
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',\r
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',\r
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',\r
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',\r
- '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',\r
- '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',\r
- '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',\r
- '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',\r
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',\r
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',\r
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',\r
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',\r
-};\r
-\r
-#ifdef USE_UPPER_CASE_TABLE\r
-const UChar OnigEncAsciiToUpperCaseTable[256] = {\r
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',\r
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',\r
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',\r
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',\r
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',\r
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',\r
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',\r
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',\r
- '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107',\r
- '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',\r
- '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',\r
- '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137',\r
- '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107',\r
- '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',\r
- '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',\r
- '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177',\r
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',\r
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',\r
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',\r
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',\r
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',\r
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',\r
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',\r
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',\r
- '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',\r
- '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',\r
- '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',\r
- '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',\r
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',\r
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',\r
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',\r
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',\r
-};\r
-#endif\r
-\r
-const unsigned short OnigEncAsciiCtypeTable[256] = {\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4008, 0x420c, 0x4209, 0x4208, 0x4208, 0x4208, 0x4008, 0x4008,\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,\r
- 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,\r
- 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,\r
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000\r
-};\r
-\r
-const UChar OnigEncISO_8859_1_ToLowerCaseTable[256] = {\r
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',\r
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',\r
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',\r
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',\r
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',\r
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',\r
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',\r
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',\r
- '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',\r
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',\r
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',\r
- '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',\r
- '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',\r
- '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',\r
- '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',\r
- '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',\r
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',\r
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',\r
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',\r
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',\r
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',\r
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',\r
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',\r
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',\r
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',\r
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',\r
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\327',\r
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\337',\r
- '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',\r
- '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',\r
- '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',\r
- '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377'\r
-};\r
-\r
-#ifdef USE_UPPER_CASE_TABLE\r
-const UChar OnigEncISO_8859_1_ToUpperCaseTable[256] = {\r
- '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',\r
- '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',\r
- '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',\r
- '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',\r
- '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',\r
- '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',\r
- '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',\r
- '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',\r
- '\100', '\101', '\102', '\103', '\104', '\105', '\106', '\107',\r
- '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',\r
- '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',\r
- '\130', '\131', '\132', '\133', '\134', '\135', '\136', '\137',\r
- '\140', '\101', '\102', '\103', '\104', '\105', '\106', '\107',\r
- '\110', '\111', '\112', '\113', '\114', '\115', '\116', '\117',\r
- '\120', '\121', '\122', '\123', '\124', '\125', '\126', '\127',\r
- '\130', '\131', '\132', '\173', '\174', '\175', '\176', '\177',\r
- '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',\r
- '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',\r
- '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',\r
- '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',\r
- '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',\r
- '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',\r
- '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',\r
- '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',\r
- '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',\r
- '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',\r
- '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',\r
- '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',\r
- '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',\r
- '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',\r
- '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\367',\r
- '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\377',\r
-};\r
-#endif\r
-\r
-extern void\r
-onigenc_set_default_caseconv_table(const UChar* table ARG_UNUSED)\r
-{\r
- /* nothing */\r
- /* obsoleted. */\r
-}\r
-\r
-extern UChar*\r
-onigenc_get_left_adjust_char_head(OnigEncoding enc, const UChar* start, const UChar* s)\r
-{\r
- return ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, start, s);\r
-}\r
-\r
-const OnigPairCaseFoldCodes OnigAsciiLowerMap[] = {\r
- { 0x41, 0x61 },\r
- { 0x42, 0x62 },\r
- { 0x43, 0x63 },\r
- { 0x44, 0x64 },\r
- { 0x45, 0x65 },\r
- { 0x46, 0x66 },\r
- { 0x47, 0x67 },\r
- { 0x48, 0x68 },\r
- { 0x49, 0x69 },\r
- { 0x4a, 0x6a },\r
- { 0x4b, 0x6b },\r
- { 0x4c, 0x6c },\r
- { 0x4d, 0x6d },\r
- { 0x4e, 0x6e },\r
- { 0x4f, 0x6f },\r
- { 0x50, 0x70 },\r
- { 0x51, 0x71 },\r
- { 0x52, 0x72 },\r
- { 0x53, 0x73 },\r
- { 0x54, 0x74 },\r
- { 0x55, 0x75 },\r
- { 0x56, 0x76 },\r
- { 0x57, 0x77 },\r
- { 0x58, 0x78 },\r
- { 0x59, 0x79 },\r
- { 0x5a, 0x7a }\r
-};\r
-\r
-extern int\r
-onigenc_ascii_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED,\r
- OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- OnigCodePoint code;\r
- int i, r;\r
-\r
- for (i = 0;\r
- i < (int )(sizeof(OnigAsciiLowerMap)/sizeof(OnigPairCaseFoldCodes));\r
- i++) {\r
- code = OnigAsciiLowerMap[i].to;\r
- r = (*f)(OnigAsciiLowerMap[i].from, &code, 1, arg);\r
- if (r != 0) return r;\r
-\r
- code = OnigAsciiLowerMap[i].from;\r
- r = (*f)(OnigAsciiLowerMap[i].to, &code, 1, arg);\r
- if (r != 0) return r;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_ascii_get_case_fold_codes_by_str(OnigCaseFoldType flag ARG_UNUSED,\r
- const OnigUChar* p, const OnigUChar* end ARG_UNUSED,\r
- OnigCaseFoldCodeItem items[])\r
-{\r
- if (0x41 <= *p && *p <= 0x5a) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = (OnigCodePoint )(*p + 0x20);\r
- return 1;\r
- }\r
- else if (0x61 <= *p && *p <= 0x7a) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = (OnigCodePoint )(*p - 0x20);\r
- return 1;\r
- }\r
- else\r
- return 0;\r
-}\r
-\r
-static int\r
-ss_apply_all_case_fold(OnigCaseFoldType flag ARG_UNUSED,\r
- OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- static OnigCodePoint ss[] = { 0x73, 0x73 };\r
-\r
- return (*f)((OnigCodePoint )0xdf, ss, 2, arg);\r
-}\r
-\r
-extern int\r
-onigenc_apply_all_case_fold_with_map(int map_size,\r
- const OnigPairCaseFoldCodes map[],\r
- int ess_tsett_flag, OnigCaseFoldType flag,\r
- OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- OnigCodePoint code;\r
- int i, r;\r
-\r
- r = onigenc_ascii_apply_all_case_fold(flag, f, arg);\r
- if (r != 0) return r;\r
-\r
- for (i = 0; i < map_size; i++) {\r
- code = map[i].to;\r
- r = (*f)(map[i].from, &code, 1, arg);\r
- if (r != 0) return r;\r
-\r
- code = map[i].from;\r
- r = (*f)(map[i].to, &code, 1, arg);\r
- if (r != 0) return r;\r
- }\r
-\r
- if (ess_tsett_flag != 0)\r
- return ss_apply_all_case_fold(flag, f, arg);\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_get_case_fold_codes_by_str_with_map(int map_size,\r
- const OnigPairCaseFoldCodes map[],\r
- int ess_tsett_flag, OnigCaseFoldType flag ARG_UNUSED,\r
- const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])\r
-{\r
- if (0x41 <= *p && *p <= 0x5a) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = (OnigCodePoint )(*p + 0x20);\r
- if (*p == 0x53 && ess_tsett_flag != 0 && end > p + 1\r
- && (*(p+1) == 0x53 || *(p+1) == 0x73)) {\r
- /* SS */\r
- items[1].byte_len = 2;\r
- items[1].code_len = 1;\r
- items[1].code[0] = (OnigCodePoint )0xdf;\r
- return 2;\r
- }\r
- else\r
- return 1;\r
- }\r
- else if (0x61 <= *p && *p <= 0x7a) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = (OnigCodePoint )(*p - 0x20);\r
- if (*p == 0x73 && ess_tsett_flag != 0 && end > p + 1\r
- && (*(p+1) == 0x73 || *(p+1) == 0x53)) {\r
- /* ss */\r
- items[1].byte_len = 2;\r
- items[1].code_len = 1;\r
- items[1].code[0] = (OnigCodePoint )0xdf;\r
- return 2;\r
- }\r
- else\r
- return 1;\r
- }\r
- else if (*p == 0xdf && ess_tsett_flag != 0) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 2;\r
- items[0].code[0] = (OnigCodePoint )'s';\r
- items[0].code[1] = (OnigCodePoint )'s';\r
-\r
- items[1].byte_len = 1;\r
- items[1].code_len = 2;\r
- items[1].code[0] = (OnigCodePoint )'S';\r
- items[1].code[1] = (OnigCodePoint )'S';\r
-\r
- items[2].byte_len = 1;\r
- items[2].code_len = 2;\r
- items[2].code[0] = (OnigCodePoint )'s';\r
- items[2].code[1] = (OnigCodePoint )'S';\r
-\r
- items[3].byte_len = 1;\r
- items[3].code_len = 2;\r
- items[3].code[0] = (OnigCodePoint )'S';\r
- items[3].code[1] = (OnigCodePoint )'s';\r
-\r
- return 4;\r
- }\r
- else {\r
- int i;\r
-\r
- for (i = 0; i < map_size; i++) {\r
- if (*p == map[i].from) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = map[i].to;\r
- return 1;\r
- }\r
- else if (*p == map[i].to) {\r
- items[0].byte_len = 1;\r
- items[0].code_len = 1;\r
- items[0].code[0] = map[i].from;\r
- return 1;\r
- }\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-\r
-extern int\r
-onigenc_not_support_get_ctype_code_range(OnigCtype ctype ARG_UNUSED,\r
- OnigCodePoint* sb_out ARG_UNUSED,\r
- const OnigCodePoint* ranges[] ARG_UNUSED)\r
-{\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-}\r
-\r
-extern int\r
-onigenc_is_mbc_newline_0x0a(const UChar* p, const UChar* end)\r
-{\r
- if (p < end) {\r
- if (*p == 0x0a) return 1;\r
- }\r
- return 0;\r
-}\r
-\r
-/* for single byte encodings */\r
-extern int\r
-onigenc_ascii_mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED, const UChar** p,\r
- const UChar*end ARG_UNUSED, UChar* lower)\r
-{\r
- *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(**p);\r
-\r
- (*p)++;\r
- return 1; /* return byte length of converted char to lower */\r
-}\r
-\r
-#if 0\r
-extern int\r
-onigenc_ascii_is_mbc_ambiguous(OnigCaseFoldType flag,\r
- const UChar** pp, const UChar* end)\r
-{\r
- const UChar* p = *pp;\r
-\r
- (*pp)++;\r
- return ONIGENC_IS_ASCII_CODE_CASE_AMBIG(*p);\r
-}\r
-#endif\r
-\r
-extern int\r
-onigenc_single_byte_mbc_enc_len(const UChar* p ARG_UNUSED)\r
-{\r
- return 1;\r
-}\r
-\r
-extern OnigCodePoint\r
-onigenc_single_byte_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED)\r
-{\r
- return (OnigCodePoint )(*p);\r
-}\r
-\r
-extern int\r
-onigenc_single_byte_code_to_mbclen(OnigCodePoint code ARG_UNUSED)\r
-{\r
- return (code < 0x100 ? 1 : ONIGERR_INVALID_CODE_POINT_VALUE);\r
-}\r
-\r
-extern int\r
-onigenc_single_byte_code_to_mbc(OnigCodePoint code, UChar *buf)\r
-{\r
- *buf = (UChar )(code & 0xff);\r
- return 1;\r
-}\r
-\r
-extern UChar*\r
-onigenc_single_byte_left_adjust_char_head(const UChar* start ARG_UNUSED,\r
- const UChar* s)\r
-{\r
- return (UChar* )s;\r
-}\r
-\r
-extern int\r
-onigenc_always_true_is_allowed_reverse_match(const UChar* s ARG_UNUSED,\r
- const UChar* end ARG_UNUSED)\r
-{\r
- return TRUE;\r
-}\r
-\r
-extern int\r
-onigenc_always_false_is_allowed_reverse_match(const UChar* s ARG_UNUSED,\r
- const UChar* end ARG_UNUSED)\r
-{\r
- return FALSE;\r
-}\r
-\r
-extern int\r
-onigenc_always_true_is_valid_mbc_string(const UChar* s ARG_UNUSED,\r
- const UChar* end ARG_UNUSED)\r
-{\r
- return TRUE;\r
-}\r
-\r
-extern int\r
-onigenc_length_check_is_valid_mbc_string(OnigEncoding enc,\r
- const UChar* p, const UChar* end)\r
-{\r
- while (p < end) {\r
- p += enclen(enc, p);\r
- }\r
-\r
- if (p != end)\r
- return FALSE;\r
- else\r
- return TRUE;\r
-}\r
-\r
-extern int\r
-onigenc_is_valid_mbc_string(OnigEncoding enc, const UChar* s, const UChar* end)\r
-{\r
- return ONIGENC_IS_VALID_MBC_STRING(enc, s, end);\r
-}\r
-\r
-extern OnigCodePoint\r
-onigenc_mbn_mbc_to_code(OnigEncoding enc, const UChar* p, const UChar* end)\r
-{\r
- int c, i, len;\r
- OnigCodePoint n;\r
-\r
- len = enclen(enc, p);\r
- n = (OnigCodePoint )(*p++);\r
- if (len == 1) return n;\r
-\r
- for (i = 1; i < len; i++) {\r
- if (p >= end) break;\r
- c = *p++;\r
- n <<= 8; n += c;\r
- }\r
- return n;\r
-}\r
-\r
-extern int\r
-onigenc_mbn_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag ARG_UNUSED,\r
- const UChar** pp, const UChar* end ARG_UNUSED,\r
- UChar* lower)\r
-{\r
- int len;\r
- const UChar *p = *pp;\r
-\r
- if (ONIGENC_IS_MBC_ASCII(p)) {\r
- *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);\r
- (*pp)++;\r
- return 1;\r
- }\r
- else {\r
- int i;\r
-\r
- len = enclen(enc, p);\r
- for (i = 0; i < len; i++) {\r
- *lower++ = *p++;\r
- }\r
- (*pp) += len;\r
- return len; /* return byte length of converted to lower char */\r
- }\r
-}\r
-\r
-#if 0\r
-extern int\r
-onigenc_mbn_is_mbc_ambiguous(OnigEncoding enc, OnigCaseFoldType flag,\r
- const UChar** pp, const UChar* end)\r
-{\r
- const UChar* p = *pp;\r
-\r
- if (ONIGENC_IS_MBC_ASCII(p)) {\r
- (*pp)++;\r
- return ONIGENC_IS_ASCII_CODE_CASE_AMBIG(*p);\r
- }\r
-\r
- (*pp) += enclen(enc, p);\r
- return FALSE;\r
-}\r
-#endif\r
-\r
-extern int\r
-onigenc_mb2_code_to_mbclen(OnigCodePoint code)\r
-{\r
- if ((code & (~0xffff)) != 0) return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-\r
- if ((code & 0xff00) != 0) return 2;\r
- else return 1;\r
-}\r
-\r
-extern int\r
-onigenc_mb4_code_to_mbclen(OnigCodePoint code)\r
-{\r
- if ((code & 0xff000000) != 0) return 4;\r
- else if ((code & 0xff0000) != 0) return 3;\r
- else if ((code & 0xff00) != 0) return 2;\r
- else return 1;\r
-}\r
-\r
-extern int\r
-onigenc_mb2_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf)\r
-{\r
- UChar *p = buf;\r
-\r
- if ((code & 0xff00) != 0) {\r
- *p++ = (UChar )((code >> 8) & 0xff);\r
- }\r
- *p++ = (UChar )(code & 0xff);\r
-\r
-#if 1\r
- if (enclen(enc, buf) != (p - buf))\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-#endif\r
- return (int )(p - buf);\r
-}\r
-\r
-extern int\r
-onigenc_mb4_code_to_mbc(OnigEncoding enc, OnigCodePoint code, UChar *buf)\r
-{\r
- UChar *p = buf;\r
-\r
- if ((code & 0xff000000) != 0) {\r
- *p++ = (UChar )((code >> 24) & 0xff);\r
- }\r
- if ((code & 0xff0000) != 0 || p != buf) {\r
- *p++ = (UChar )((code >> 16) & 0xff);\r
- }\r
- if ((code & 0xff00) != 0 || p != buf) {\r
- *p++ = (UChar )((code >> 8) & 0xff);\r
- }\r
- *p++ = (UChar )(code & 0xff);\r
-\r
-#if 1\r
- if (enclen(enc, buf) != (p - buf))\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-#endif\r
- return (int )(p - buf);\r
-}\r
-\r
-extern int\r
-onigenc_minimum_property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end)\r
-{\r
- static PosixBracketEntryType PBS[] = {\r
- { (UChar* )"Alnum", ONIGENC_CTYPE_ALNUM, 5 },\r
- { (UChar* )"Alpha", ONIGENC_CTYPE_ALPHA, 5 },\r
- { (UChar* )"Blank", ONIGENC_CTYPE_BLANK, 5 },\r
- { (UChar* )"Cntrl", ONIGENC_CTYPE_CNTRL, 5 },\r
- { (UChar* )"Digit", ONIGENC_CTYPE_DIGIT, 5 },\r
- { (UChar* )"Graph", ONIGENC_CTYPE_GRAPH, 5 },\r
- { (UChar* )"Lower", ONIGENC_CTYPE_LOWER, 5 },\r
- { (UChar* )"Print", ONIGENC_CTYPE_PRINT, 5 },\r
- { (UChar* )"Punct", ONIGENC_CTYPE_PUNCT, 5 },\r
- { (UChar* )"Space", ONIGENC_CTYPE_SPACE, 5 },\r
- { (UChar* )"Upper", ONIGENC_CTYPE_UPPER, 5 },\r
- { (UChar* )"XDigit", ONIGENC_CTYPE_XDIGIT, 6 },\r
- { (UChar* )"ASCII", ONIGENC_CTYPE_ASCII, 5 },\r
- { (UChar* )"Word", ONIGENC_CTYPE_WORD, 4 },\r
- { (UChar* )NULL, -1, 0 }\r
- };\r
-\r
- PosixBracketEntryType *pb;\r
- int len;\r
-\r
- len = onigenc_strlen(enc, p, end);\r
- for (pb = PBS; IS_NOT_NULL(pb->name); pb++) {\r
- if (len == pb->len &&\r
- onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0)\r
- return pb->ctype;\r
- }\r
-\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
-}\r
-\r
-extern int\r
-onigenc_is_mbc_word_ascii(OnigEncoding enc, UChar* s, const UChar* end)\r
-{\r
- OnigCodePoint code = ONIGENC_MBC_TO_CODE(enc, s, end);\r
-\r
- if (code > 127) return 0;\r
-\r
- return ONIGENC_IS_ASCII_CODE_WORD(code);\r
-}\r
-\r
-extern int\r
-onigenc_mb2_is_code_ctype(OnigEncoding enc, OnigCodePoint code,\r
- unsigned int ctype)\r
-{\r
- if (code < 128)\r
- return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);\r
- else {\r
- if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {\r
- return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE);\r
- }\r
- }\r
-\r
- return FALSE;\r
-}\r
-\r
-extern int\r
-onigenc_mb4_is_code_ctype(OnigEncoding enc, OnigCodePoint code,\r
- unsigned int ctype)\r
-{\r
- if (code < 128)\r
- return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);\r
- else {\r
- if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {\r
- return (ONIGENC_CODE_TO_MBCLEN(enc, code) > 1 ? TRUE : FALSE);\r
- }\r
- }\r
-\r
- return FALSE;\r
-}\r
-\r
-extern int\r
-onigenc_with_ascii_strncmp(OnigEncoding enc, const UChar* p, const UChar* end,\r
- const UChar* sascii /* ascii */, int n)\r
-{\r
- int x, c;\r
-\r
- while (n-- > 0) {\r
- if (p >= end) return (int )(*sascii);\r
-\r
- c = (int )ONIGENC_MBC_TO_CODE(enc, p, end);\r
- x = *sascii - c;\r
- if (x) return x;\r
-\r
- sascii++;\r
- p += enclen(enc, p);\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < n; i++) {\r
- if (a[i] != b[i])\r
- return -1;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_codes_byte_at(OnigCodePoint codes[], int at)\r
-{\r
- int index;\r
- int b;\r
- OnigCodePoint code;\r
-\r
- index = at / 3;\r
- b = at % 3;\r
- code = codes[index];\r
-\r
- return ((code >> ((2 - b) * 8)) & 0xff);\r
-}\r
+++ /dev/null
-#ifndef REGENC_H\r
-#define REGENC_H\r
-/**********************************************************************\r
- regenc.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#ifndef ONIGURUMA_EXPORT\r
-#define ONIGURUMA_EXPORT\r
-#endif\r
-\r
-//#include "config.h"\r
-//#include <stddef.h>\r
-\r
-#ifdef ONIG_ESCAPE_UCHAR_COLLISION\r
-#undef ONIG_ESCAPE_UCHAR_COLLISION\r
-#endif\r
-\r
-#include "oniguruma.h"\r
-\r
-typedef struct {\r
- OnigCodePoint from;\r
- OnigCodePoint to;\r
-} OnigPairCaseFoldCodes;\r
-\r
-\r
-#ifndef NULL\r
-#define NULL ((void* )0)\r
-#endif\r
-\r
-#ifndef TRUE\r
-#define TRUE 1\r
-#endif\r
-\r
-#ifndef FALSE\r
-#define FALSE 0\r
-#endif\r
-\r
-#ifndef ARG_UNUSED\r
-#if defined(__GNUC__)\r
-# define ARG_UNUSED __attribute__ ((unused))\r
-#else\r
-# define ARG_UNUSED\r
-#endif\r
-#endif\r
-\r
-#define ONIG_IS_NULL(p) (((void*)(p)) == (void*)0)\r
-#define ONIG_IS_NOT_NULL(p) (((void*)(p)) != (void*)0)\r
-#define ONIG_CHECK_NULL_RETURN(p) if (ONIG_IS_NULL(p)) return NULL\r
-#define ONIG_CHECK_NULL_RETURN_VAL(p,val) if (ONIG_IS_NULL(p)) return (val)\r
-\r
-#define MAX_CODE_POINT (~((OnigCodePoint )0))\r
-\r
-#define enclen(enc,p) ONIGENC_MBC_ENC_LEN(enc,p)\r
-\r
-/* character types bit flag */\r
-#define BIT_CTYPE_NEWLINE (1<< ONIGENC_CTYPE_NEWLINE)\r
-#define BIT_CTYPE_ALPHA (1<< ONIGENC_CTYPE_ALPHA)\r
-#define BIT_CTYPE_BLANK (1<< ONIGENC_CTYPE_BLANK)\r
-#define BIT_CTYPE_CNTRL (1<< ONIGENC_CTYPE_CNTRL)\r
-#define BIT_CTYPE_DIGIT (1<< ONIGENC_CTYPE_DIGIT)\r
-#define BIT_CTYPE_GRAPH (1<< ONIGENC_CTYPE_GRAPH)\r
-#define BIT_CTYPE_LOWER (1<< ONIGENC_CTYPE_LOWER)\r
-#define BIT_CTYPE_PRINT (1<< ONIGENC_CTYPE_PRINT)\r
-#define BIT_CTYPE_PUNCT (1<< ONIGENC_CTYPE_PUNCT)\r
-#define BIT_CTYPE_SPACE (1<< ONIGENC_CTYPE_SPACE)\r
-#define BIT_CTYPE_UPPER (1<< ONIGENC_CTYPE_UPPER)\r
-#define BIT_CTYPE_XDIGIT (1<< ONIGENC_CTYPE_XDIGIT)\r
-#define BIT_CTYPE_WORD (1<< ONIGENC_CTYPE_WORD)\r
-#define BIT_CTYPE_ALNUM (1<< ONIGENC_CTYPE_ALNUM)\r
-#define BIT_CTYPE_ASCII (1<< ONIGENC_CTYPE_ASCII)\r
-\r
-#define CTYPE_TO_BIT(ctype) (1<<(ctype))\r
-#define CTYPE_IS_WORD_GRAPH_PRINT(ctype) \\r
- ((ctype) == ONIGENC_CTYPE_WORD || (ctype) == ONIGENC_CTYPE_GRAPH ||\\r
- (ctype) == ONIGENC_CTYPE_PRINT)\r
-\r
-\r
-typedef struct {\r
- UChar *name;\r
- int ctype;\r
- short int len;\r
-} PosixBracketEntryType;\r
-\r
-struct PropertyNameCtype {\r
- char *name;\r
- int ctype;\r
-};\r
-\r
-/* #define USE_CRNL_AS_LINE_TERMINATOR */\r
-#define USE_UNICODE_PROPERTIES\r
-#define USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER\r
-#define USE_UNICODE_WORD_BREAK\r
-/* #define USE_UNICODE_CASE_FOLD_TURKISH_AZERI */\r
-/* #define USE_UNICODE_ALL_LINE_TERMINATORS */ /* see Unicode.org UTS #18 */\r
-\r
-\r
-#define ONIG_ENCODING_INIT_DEFAULT ONIG_ENCODING_ASCII\r
-\r
-\r
-#define ENC_SKIP_OFFSET_1_OR_0 7\r
-\r
-#define ENC_FLAG_ASCII_COMPATIBLE (1<<0)\r
-#define ENC_FLAG_UNICODE (1<<1)\r
-#define ENC_FLAG_SKIP_OFFSET_MASK (7<<2)\r
-#define ENC_FLAG_SKIP_OFFSET_0 0\r
-#define ENC_FLAG_SKIP_OFFSET_1 (1<<2)\r
-#define ENC_FLAG_SKIP_OFFSET_2 (2<<2)\r
-#define ENC_FLAG_SKIP_OFFSET_3 (3<<2)\r
-#define ENC_FLAG_SKIP_OFFSET_4 (4<<2)\r
-#define ENC_FLAG_SKIP_OFFSET_1_OR_0 (ENC_SKIP_OFFSET_1_OR_0<<2)\r
-\r
-#define ENC_GET_SKIP_OFFSET(enc) \\r
- (((enc)->flag & ENC_FLAG_SKIP_OFFSET_MASK)>>2)\r
-\r
-\r
-/* for encoding system implementation (internal) */\r
-extern int onigenc_end(void);\r
-extern int onigenc_ascii_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));\r
-extern int onigenc_ascii_get_case_fold_codes_by_str P_((OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));\r
-extern int onigenc_apply_all_case_fold_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));\r
-extern int onigenc_get_case_fold_codes_by_str_with_map P_((int map_size, const OnigPairCaseFoldCodes map[], int ess_tsett_flag, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));\r
-extern int onigenc_not_support_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint* sb_out, const OnigCodePoint* ranges[]));\r
-extern int onigenc_is_mbc_newline_0x0a P_((const UChar* p, const UChar* end));\r
-\r
-\r
-/* methods for single byte encoding */\r
-extern int onigenc_ascii_mbc_case_fold P_((OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));\r
-extern int onigenc_single_byte_mbc_enc_len P_((const UChar* p));\r
-extern OnigCodePoint onigenc_single_byte_mbc_to_code P_((const UChar* p, const UChar* end));\r
-extern int onigenc_single_byte_code_to_mbclen P_((OnigCodePoint code));\r
-extern int onigenc_single_byte_code_to_mbc P_((OnigCodePoint code, UChar *buf));\r
-extern UChar* onigenc_single_byte_left_adjust_char_head P_((const UChar* start, const UChar* s));\r
-extern int onigenc_always_true_is_allowed_reverse_match P_((const UChar* s, const UChar* end));\r
-extern int onigenc_always_false_is_allowed_reverse_match P_((const UChar* s, const UChar* end));\r
-extern int onigenc_always_true_is_valid_mbc_string P_((const UChar* s, const UChar* end));\r
-extern int onigenc_length_check_is_valid_mbc_string P_((OnigEncoding enc, const UChar* s, const UChar* end));\r
-\r
-/* methods for multi byte encoding */\r
-extern OnigCodePoint onigenc_mbn_mbc_to_code P_((OnigEncoding enc, const UChar* p, const UChar* end));\r
-extern int onigenc_mbn_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** p, const UChar* end, UChar* lower));\r
-extern int onigenc_mb2_code_to_mbclen P_((OnigCodePoint code));\r
-extern int onigenc_mb2_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));\r
-extern int onigenc_minimum_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));\r
-extern int onigenc_unicode_property_name_to_ctype P_((OnigEncoding enc, UChar* p, UChar* end));\r
-extern int onigenc_is_mbc_word_ascii P_((OnigEncoding enc, UChar* s, const UChar* end));\r
-extern int onigenc_mb2_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));\r
-extern int onigenc_mb4_code_to_mbclen P_((OnigCodePoint code));\r
-extern int onigenc_mb4_code_to_mbc P_((OnigEncoding enc, OnigCodePoint code, UChar *buf));\r
-extern int onigenc_mb4_is_code_ctype P_((OnigEncoding enc, OnigCodePoint code, unsigned int ctype));\r
-extern struct PropertyNameCtype* onigenc_euc_jp_lookup_property_name P_((register const char *str, register size_t len));\r
-extern struct PropertyNameCtype* onigenc_sjis_lookup_property_name P_((register const char *str, register size_t len));\r
-\r
-/* in unicode.c */\r
-extern int onigenc_unicode_is_code_ctype P_((OnigCodePoint code, unsigned int ctype));\r
-extern int onigenc_utf16_32_get_ctype_code_range P_((OnigCtype ctype, OnigCodePoint *sb_out, const OnigCodePoint* ranges[]));\r
-extern int onigenc_unicode_ctype_code_range P_((OnigCtype ctype, const OnigCodePoint* ranges[]));\r
-extern int onigenc_unicode_get_case_fold_codes_by_str P_((OnigEncoding enc, OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[]));\r
-extern int onigenc_unicode_mbc_case_fold P_((OnigEncoding enc, OnigCaseFoldType flag, const UChar** pp, const UChar* end, UChar* fold));\r
-extern int onigenc_unicode_apply_all_case_fold P_((OnigCaseFoldType flag, OnigApplyAllCaseFoldFunc f, void* arg));\r
-\r
-extern int onigenc_egcb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end));\r
-\r
-#ifdef USE_UNICODE_WORD_BREAK\r
-extern int onigenc_wb_is_break_position P_((OnigEncoding enc, UChar* p, UChar* prev, const UChar* start, const UChar* end));\r
-#endif\r
-\r
-#define UTF16_IS_SURROGATE_FIRST(c) (((c) & 0xfc) == 0xd8)\r
-#define UTF16_IS_SURROGATE_SECOND(c) (((c) & 0xfc) == 0xdc)\r
-\r
-/* from unicode generated codes */\r
-#define FOLDS1_FOLD(i) (OnigUnicodeFolds1 + (i))\r
-#define FOLDS2_FOLD(i) (OnigUnicodeFolds2 + (i))\r
-#define FOLDS3_FOLD(i) (OnigUnicodeFolds3 + (i))\r
-#define FOLDS1_UNFOLDS_NUM(i) (OnigUnicodeFolds1[(i)+1])\r
-#define FOLDS2_UNFOLDS_NUM(i) (OnigUnicodeFolds2[(i)+2])\r
-#define FOLDS3_UNFOLDS_NUM(i) (OnigUnicodeFolds3[(i)+3])\r
-#define FOLDS1_UNFOLDS(i) (OnigUnicodeFolds1 + (i) + 2)\r
-#define FOLDS2_UNFOLDS(i) (OnigUnicodeFolds2 + (i) + 3)\r
-#define FOLDS3_UNFOLDS(i) (OnigUnicodeFolds3 + (i) + 4)\r
-#define FOLDS1_NEXT_INDEX(i) ((i) + 2 + OnigUnicodeFolds1[(i)+1])\r
-#define FOLDS2_NEXT_INDEX(i) ((i) + 3 + OnigUnicodeFolds2[(i)+2])\r
-#define FOLDS3_NEXT_INDEX(i) ((i) + 4 + OnigUnicodeFolds3[(i)+3])\r
-\r
-#define FOLDS_FOLD_ADDR_BUK(buk, addr) do {\\r
- if ((buk)->fold_len == 1)\\r
- addr = OnigUnicodeFolds1 + (buk)->index;\\r
- else if ((buk)->fold_len == 2)\\r
- addr = OnigUnicodeFolds2 + (buk)->index;\\r
- else if ((buk)->fold_len == 3)\\r
- addr = OnigUnicodeFolds3 + (buk)->index;\\r
- else\\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\\r
-} while (0)\r
-\r
-extern OnigCodePoint OnigUnicodeFolds1[];\r
-extern OnigCodePoint OnigUnicodeFolds2[];\r
-extern OnigCodePoint OnigUnicodeFolds3[];\r
-\r
-struct ByUnfoldKey {\r
- OnigCodePoint code;\r
- short int index;\r
- short int fold_len;\r
-};\r
-\r
-extern const struct ByUnfoldKey* onigenc_unicode_unfold_key(OnigCodePoint code);\r
-extern int onigenc_unicode_fold1_key(OnigCodePoint code[]);\r
-extern int onigenc_unicode_fold2_key(OnigCodePoint code[]);\r
-extern int onigenc_unicode_fold3_key(OnigCodePoint code[]);\r
-\r
-extern int onig_codes_cmp(OnigCodePoint a[], OnigCodePoint b[], int n);\r
-extern int onig_codes_byte_at(OnigCodePoint code[], int at);\r
-\r
-\r
-\r
-#define ONIGENC_ISO_8859_1_TO_LOWER_CASE(c) \\r
- OnigEncISO_8859_1_ToLowerCaseTable[c]\r
-#define ONIGENC_ISO_8859_1_TO_UPPER_CASE(c) \\r
- OnigEncISO_8859_1_ToUpperCaseTable[c]\r
-\r
-extern const UChar OnigEncISO_8859_1_ToLowerCaseTable[];\r
-extern const UChar OnigEncISO_8859_1_ToUpperCaseTable[];\r
-\r
-extern int\r
-onigenc_with_ascii_strncmp P_((OnigEncoding enc, const UChar* p, const UChar* end, const UChar* sascii /* ascii */, int n));\r
-extern UChar*\r
-onigenc_step P_((OnigEncoding enc, const UChar* p, const UChar* end, int n));\r
-\r
-/* defined in regexec.c, but used in enc/xxx.c */\r
-extern int onig_is_in_code_range P_((const UChar* p, OnigCodePoint code));\r
-\r
-extern OnigEncoding OnigEncDefaultCharEncoding;\r
-extern const UChar OnigEncAsciiToLowerCaseTable[];\r
-extern const UChar OnigEncAsciiToUpperCaseTable[];\r
-extern const unsigned short OnigEncAsciiCtypeTable[];\r
-\r
-\r
-#define ONIGENC_IS_ASCII_CODE(code) ((code) < 0x80)\r
-#define ONIGENC_ASCII_CODE_TO_LOWER_CASE(c) OnigEncAsciiToLowerCaseTable[c]\r
-#define ONIGENC_ASCII_CODE_TO_UPPER_CASE(c) OnigEncAsciiToUpperCaseTable[c]\r
-#define ONIGENC_IS_ASCII_CODE_CTYPE(code,ctype) \\r
- ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)\r
-#define ONIGENC_IS_ASCII_CODE_WORD(code) \\r
- ((OnigEncAsciiCtypeTable[code] & CTYPE_TO_BIT(ONIGENC_CTYPE_WORD)) != 0)\r
-#define ONIGENC_IS_ASCII_CODE_CASE_AMBIG(code) \\r
- (ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_UPPER) ||\\r
- ONIGENC_IS_ASCII_CODE_CTYPE(code, ONIGENC_CTYPE_LOWER))\r
-\r
-#define ONIGENC_IS_UNICODE_ENCODING(enc) \\r
- (((enc)->flag & ENC_FLAG_UNICODE) != 0)\r
-\r
-#define ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc) \\r
- (((enc)->flag & ENC_FLAG_ASCII_COMPATIBLE) != 0)\r
-\r
-#endif /* REGENC_H */\r
+++ /dev/null
-/**********************************************************************\r
- regerror.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-#if 0\r
-#include <stdio.h> /* for vsnprintf() */\r
-\r
-#include <stdarg.h>\r
-#endif\r
-\r
-extern UChar*\r
-onig_error_code_to_format(int code)\r
-{\r
- char *p;\r
-\r
- switch (code) {\r
- case ONIG_MISMATCH:\r
- p = "mismatch"; break;\r
- case ONIG_NO_SUPPORT_CONFIG:\r
- p = "no support in this configuration"; break;\r
- case ONIG_ABORT:\r
- p = "abort"; break;\r
- case ONIGERR_MEMORY:\r
- p = "fail to memory allocation"; break;\r
- case ONIGERR_MATCH_STACK_LIMIT_OVER:\r
- p = "match-stack limit over"; break;\r
- case ONIGERR_PARSE_DEPTH_LIMIT_OVER:\r
- p = "parse depth limit over"; break;\r
- case ONIGERR_RETRY_LIMIT_IN_MATCH_OVER:\r
- p = "retry-limit-in-match over"; break;\r
- case ONIGERR_TYPE_BUG:\r
- p = "undefined type (bug)"; break;\r
- case ONIGERR_PARSER_BUG:\r
- p = "internal parser error (bug)"; break;\r
- case ONIGERR_STACK_BUG:\r
- p = "stack error (bug)"; break;\r
- case ONIGERR_UNDEFINED_BYTECODE:\r
- p = "undefined bytecode (bug)"; break;\r
- case ONIGERR_UNEXPECTED_BYTECODE:\r
- p = "unexpected bytecode (bug)"; break;\r
- case ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED:\r
- p = "default multibyte-encoding is not setted"; break;\r
- case ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR:\r
- p = "can't convert to wide-char on specified multibyte-encoding"; break;\r
- case ONIGERR_FAIL_TO_INITIALIZE:\r
- p = "fail to initialize"; break;\r
- case ONIGERR_INVALID_ARGUMENT:\r
- p = "invalid argument"; break;\r
- case ONIGERR_END_PATTERN_AT_LEFT_BRACE:\r
- p = "end pattern at left brace"; break;\r
- case ONIGERR_END_PATTERN_AT_LEFT_BRACKET:\r
- p = "end pattern at left bracket"; break;\r
- case ONIGERR_EMPTY_CHAR_CLASS:\r
- p = "empty char-class"; break;\r
- case ONIGERR_PREMATURE_END_OF_CHAR_CLASS:\r
- p = "premature end of char-class"; break;\r
- case ONIGERR_END_PATTERN_AT_ESCAPE:\r
- p = "end pattern at escape"; break;\r
- case ONIGERR_END_PATTERN_AT_META:\r
- p = "end pattern at meta"; break;\r
- case ONIGERR_END_PATTERN_AT_CONTROL:\r
- p = "end pattern at control"; break;\r
- case ONIGERR_META_CODE_SYNTAX:\r
- p = "invalid meta-code syntax"; break;\r
- case ONIGERR_CONTROL_CODE_SYNTAX:\r
- p = "invalid control-code syntax"; break;\r
- case ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE:\r
- p = "char-class value at end of range"; break;\r
- case ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE:\r
- p = "char-class value at start of range"; break;\r
- case ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS:\r
- p = "unmatched range specifier in char-class"; break;\r
- case ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED:\r
- p = "target of repeat operator is not specified"; break;\r
- case ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID:\r
- p = "target of repeat operator is invalid"; break;\r
- case ONIGERR_NESTED_REPEAT_OPERATOR:\r
- p = "nested repeat operator"; break;\r
- case ONIGERR_UNMATCHED_CLOSE_PARENTHESIS:\r
- p = "unmatched close parenthesis"; break;\r
- case ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS:\r
- p = "end pattern with unmatched parenthesis"; break;\r
- case ONIGERR_END_PATTERN_IN_GROUP:\r
- p = "end pattern in group"; break;\r
- case ONIGERR_UNDEFINED_GROUP_OPTION:\r
- p = "undefined group option"; break;\r
- case ONIGERR_INVALID_POSIX_BRACKET_TYPE:\r
- p = "invalid POSIX bracket type"; break;\r
- case ONIGERR_INVALID_LOOK_BEHIND_PATTERN:\r
- p = "invalid pattern in look-behind"; break;\r
- case ONIGERR_INVALID_REPEAT_RANGE_PATTERN:\r
- p = "invalid repeat range {lower,upper}"; break;\r
- case ONIGERR_TOO_BIG_NUMBER:\r
- p = "too big number"; break;\r
- case ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE:\r
- p = "too big number for repeat range"; break;\r
- case ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE:\r
- p = "upper is smaller than lower in repeat range"; break;\r
- case ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS:\r
- p = "empty range in char class"; break;\r
- case ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE:\r
- p = "mismatch multibyte code length in char-class range"; break;\r
- case ONIGERR_TOO_MANY_MULTI_BYTE_RANGES:\r
- p = "too many multibyte code ranges are specified"; break;\r
- case ONIGERR_TOO_SHORT_MULTI_BYTE_STRING:\r
- p = "too short multibyte code string"; break;\r
- case ONIGERR_TOO_BIG_BACKREF_NUMBER:\r
- p = "too big backref number"; break;\r
- case ONIGERR_INVALID_BACKREF:\r
- p = "invalid backref number/name"; break;\r
- case ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED:\r
- p = "numbered backref/call is not allowed. (use name)"; break;\r
- case ONIGERR_TOO_MANY_CAPTURES:\r
- p = "too many captures"; break;\r
- case ONIGERR_TOO_BIG_WIDE_CHAR_VALUE:\r
- p = "too big wide-char value"; break;\r
- case ONIGERR_TOO_LONG_WIDE_CHAR_VALUE:\r
- p = "too long wide-char value"; break;\r
- case ONIGERR_INVALID_CODE_POINT_VALUE:\r
- p = "invalid code point value"; break;\r
- case ONIGERR_EMPTY_GROUP_NAME:\r
- p = "group name is empty"; break;\r
- case ONIGERR_INVALID_GROUP_NAME:\r
- p = "invalid group name <%n>"; break;\r
- case ONIGERR_INVALID_CHAR_IN_GROUP_NAME:\r
- p = "invalid char in group name <%n>"; break;\r
- case ONIGERR_UNDEFINED_NAME_REFERENCE:\r
- p = "undefined name <%n> reference"; break;\r
- case ONIGERR_UNDEFINED_GROUP_REFERENCE:\r
- p = "undefined group <%n> reference"; break;\r
- case ONIGERR_MULTIPLEX_DEFINED_NAME:\r
- p = "multiplex defined name <%n>"; break;\r
- case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL:\r
- p = "multiplex definition name <%n> call"; break;\r
- case ONIGERR_NEVER_ENDING_RECURSION:\r
- p = "never ending recursion"; break;\r
- case ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY:\r
- p = "group number is too big for capture history"; break;\r
- case ONIGERR_INVALID_CHAR_PROPERTY_NAME:\r
- p = "invalid character property name {%n}"; break;\r
- case ONIGERR_INVALID_IF_ELSE_SYNTAX:\r
- p = "invalid if-else syntax"; break;\r
- case ONIGERR_INVALID_ABSENT_GROUP_PATTERN:\r
- p = "invalid absent group pattern"; break;\r
- case ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN:\r
- p = "invalid absent group generator pattern"; break;\r
- case ONIGERR_INVALID_CALLOUT_PATTERN:\r
- p = "invalid callout pattern"; break;\r
- case ONIGERR_INVALID_CALLOUT_NAME:\r
- p = "invalid callout name"; break;\r
- case ONIGERR_UNDEFINED_CALLOUT_NAME:\r
- p = "undefined callout name"; break;\r
- case ONIGERR_INVALID_CALLOUT_BODY:\r
- p = "invalid callout body"; break;\r
- case ONIGERR_INVALID_CALLOUT_TAG_NAME:\r
- p = "invalid callout tag name"; break;\r
- case ONIGERR_INVALID_CALLOUT_ARG:\r
- p = "invalid callout arg"; break;\r
- case ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION:\r
- p = "not supported encoding combination"; break;\r
- case ONIGERR_INVALID_COMBINATION_OF_OPTIONS:\r
- p = "invalid combination of options"; break;\r
- case ONIGERR_LIBRARY_IS_NOT_INITIALIZED:\r
- p = "library is not initialized"; break;\r
-\r
- default:\r
- p = "undefined error code"; break;\r
- }\r
-\r
- return (UChar* )p;\r
-}\r
-\r
-static void sprint_byte(char* s, unsigned int v)\r
-{\r
- sprintf_s(s, sizeof("00"), "%02x", (v & 0377));\r
-}\r
-\r
-static void sprint_byte_with_x(char* s, unsigned int v)\r
-{\r
- sprintf_s(s, sizeof("\\x00"), "\\x%02x", (v & 0377));\r
-}\r
-\r
-static int to_ascii(OnigEncoding enc, UChar *s, UChar *end,\r
- UChar buf[], int buf_size, int *is_over)\r
-{\r
- int len;\r
- UChar *p;\r
- OnigCodePoint code;\r
-\r
- if (!s) {\r
- len = 0;\r
- *is_over = 0;\r
- }\r
- else if (ONIGENC_MBC_MINLEN(enc) > 1) {\r
- p = s;\r
- len = 0;\r
- while (p < end) {\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- if (code >= 0x80) {\r
- if (code > 0xffff && len + 10 <= buf_size) {\r
- sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 24));\r
- sprint_byte((char*)(&(buf[len+4])), (unsigned int)(code >> 16));\r
- sprint_byte((char*)(&(buf[len+6])), (unsigned int)(code >> 8));\r
- sprint_byte((char*)(&(buf[len+8])), (unsigned int)code);\r
- len += 10;\r
- }\r
- else if (len + 6 <= buf_size) {\r
- sprint_byte_with_x((char*)(&(buf[len])), (unsigned int)(code >> 8));\r
- sprint_byte((char*)(&(buf[len+4])), (unsigned int)code);\r
- len += 6;\r
- }\r
- else {\r
- break;\r
- }\r
- }\r
- else {\r
- buf[len++] = (UChar )code;\r
- }\r
-\r
- p += enclen(enc, p);\r
- if (len >= buf_size) break;\r
- }\r
-\r
- *is_over = p < end;\r
- }\r
- else {\r
- len = MIN((int )(end - s), buf_size);\r
- xmemcpy(buf, s, (size_t )len);\r
- *is_over = ((buf_size < (end - s)) ? 1 : 0);\r
- }\r
-\r
- return len;\r
-}\r
-\r
-\r
-extern int\r
-onig_is_error_code_needs_param(int code)\r
-{\r
- switch (code) {\r
- case ONIGERR_UNDEFINED_NAME_REFERENCE:\r
- case ONIGERR_UNDEFINED_GROUP_REFERENCE:\r
- case ONIGERR_MULTIPLEX_DEFINED_NAME:\r
- case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL:\r
- case ONIGERR_INVALID_GROUP_NAME:\r
- case ONIGERR_INVALID_CHAR_IN_GROUP_NAME:\r
- case ONIGERR_INVALID_CHAR_PROPERTY_NAME:\r
- return 1;\r
- default:\r
- return 0;\r
- }\r
-}\r
-\r
-/* for ONIG_MAX_ERROR_MESSAGE_LEN */\r
-#define MAX_ERROR_PAR_LEN 30\r
-\r
-extern int EFIAPI onig_error_code_to_str(UChar* s, int code, ...)\r
-{\r
- UChar *p, *q;\r
- OnigErrorInfo* einfo;\r
- int len, is_over;\r
- UChar parbuf[MAX_ERROR_PAR_LEN];\r
- va_list vargs;\r
-\r
- va_init_list(vargs, code);\r
-\r
- switch (code) {\r
- case ONIGERR_UNDEFINED_NAME_REFERENCE:\r
- case ONIGERR_UNDEFINED_GROUP_REFERENCE:\r
- case ONIGERR_MULTIPLEX_DEFINED_NAME:\r
- case ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL:\r
- case ONIGERR_INVALID_GROUP_NAME:\r
- case ONIGERR_INVALID_CHAR_IN_GROUP_NAME:\r
- case ONIGERR_INVALID_CHAR_PROPERTY_NAME:\r
- einfo = va_arg(vargs, OnigErrorInfo*);\r
- len = to_ascii(einfo->enc, einfo->par, einfo->par_end,\r
- parbuf, MAX_ERROR_PAR_LEN - 3, &is_over);\r
- q = onig_error_code_to_format(code);\r
- p = s;\r
- while (*q != '\0') {\r
- if (*q == '%') {\r
- q++;\r
- if (*q == 'n') { /* '%n': name */\r
- xmemcpy(p, parbuf, len);\r
- p += len;\r
- if (is_over != 0) {\r
- xmemcpy(p, "...", 3);\r
- p += 3;\r
- }\r
- q++;\r
- }\r
- else\r
- goto normal_char;\r
- }\r
- else {\r
- normal_char:\r
- *p++ = *q++;\r
- }\r
- }\r
- *p = '\0';\r
- len = (int )(p - s);\r
- break;\r
-\r
- default:\r
- q = onig_error_code_to_format(code);\r
- len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, q);\r
- xmemcpy(s, q, len);\r
- s[len] = '\0';\r
- break;\r
- }\r
-\r
- va_end(vargs);\r
- return len;\r
-}\r
-\r
-\r
-void EFIAPI onig_snprintf_with_pattern(UChar buf[], int bufsize, OnigEncoding enc,\r
- UChar* pat, UChar* pat_end, const UChar *fmt, ...)\r
-{\r
- int n, need, len;\r
- UChar *p, *s, *bp;\r
- UChar bs[6];\r
- va_list args;\r
-\r
- va_init_list(args, fmt);\r
- n = xvsnprintf((char* )buf, bufsize, (const char* )fmt, args);\r
- va_end(args);\r
-\r
- need = (int )(pat_end - pat) * 4 + 4;\r
-\r
- if (n + need < bufsize) {\r
- strcat_s((char* )buf, bufsize, ": /");\r
- s = buf + onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, buf);\r
-\r
- p = pat;\r
- while (p < pat_end) {\r
- if (ONIGENC_IS_MBC_HEAD(enc, p)) {\r
- len = enclen(enc, p);\r
- if (ONIGENC_MBC_MINLEN(enc) == 1) {\r
- while (len-- > 0) *s++ = *p++;\r
- }\r
- else { /* for UTF16/32 */\r
- int blen;\r
-\r
- while (len-- > 0) {\r
- sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
- blen = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);\r
- bp = bs;\r
- while (blen-- > 0) *s++ = *bp++;\r
- }\r
- }\r
- }\r
- else if (*p == '\\') {\r
- *s++ = *p++;\r
- len = enclen(enc, p);\r
- while (len-- > 0) *s++ = *p++;\r
- }\r
- else if (*p == '/') {\r
- *s++ = (unsigned char )'\\';\r
- *s++ = *p++;\r
- }\r
- else if (!ONIGENC_IS_CODE_PRINT(enc, *p) &&\r
- !ONIGENC_IS_CODE_SPACE(enc, *p)) {\r
- sprint_byte_with_x((char* )bs, (unsigned int )(*p++));\r
- len = onigenc_str_bytelen_null(ONIG_ENCODING_ASCII, bs);\r
- bp = bs;\r
- while (len-- > 0) *s++ = *bp++;\r
- }\r
- else {\r
- *s++ = *p++;\r
- }\r
- }\r
-\r
- *s++ = '/';\r
- *s = '\0';\r
- }\r
-}\r
+++ /dev/null
-/**********************************************************************\r
- regexec.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-#include "regint.h"\r
-\r
-#define IS_MBC_WORD_ASCII_MODE(enc,s,end,mode) \\r
- ((mode) == 0 ? ONIGENC_IS_MBC_WORD(enc,s,end) : ONIGENC_IS_MBC_WORD_ASCII(enc,s,end))\r
-\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
-#define ONIGENC_IS_MBC_CRNL(enc,p,end) \\r
- (ONIGENC_MBC_TO_CODE(enc,p,end) == 13 && \\r
- ONIGENC_IS_MBC_NEWLINE(enc,(p+enclen(enc,p)),end))\r
-#endif\r
-\r
-#define CHECK_INTERRUPT_IN_MATCH\r
-\r
-#ifdef USE_CALLOUT\r
-typedef struct {\r
- int last_match_at_call_counter;\r
- struct {\r
- OnigType type;\r
- OnigValue val;\r
- } slot[ONIG_CALLOUT_DATA_SLOT_NUM];\r
-} CalloutData;\r
-#endif\r
-\r
-struct OnigMatchParamStruct {\r
- unsigned int match_stack_limit;\r
- unsigned long retry_limit_in_match;\r
-#ifdef USE_CALLOUT\r
- OnigCalloutFunc progress_callout_of_contents;\r
- OnigCalloutFunc retraction_callout_of_contents;\r
- int match_at_call_counter;\r
- void* callout_user_data;\r
- CalloutData* callout_data;\r
- int callout_data_alloc_num;\r
-#endif\r
-};\r
-\r
-extern int\r
-onig_set_match_stack_limit_size_of_match_param(OnigMatchParam* param,\r
- unsigned int limit)\r
-{\r
- param->match_stack_limit = limit;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_set_retry_limit_in_match_of_match_param(OnigMatchParam* param,\r
- unsigned long limit)\r
-{\r
- param->retry_limit_in_match = limit;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_set_progress_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f)\r
-{\r
-#ifdef USE_CALLOUT\r
- param->progress_callout_of_contents = f;\r
- return ONIG_NORMAL;\r
-#else\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-#endif\r
-}\r
-\r
-extern int\r
-onig_set_retraction_callout_of_match_param(OnigMatchParam* param, OnigCalloutFunc f)\r
-{\r
-#ifdef USE_CALLOUT\r
- param->retraction_callout_of_contents = f;\r
- return ONIG_NORMAL;\r
-#else\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-#endif\r
-}\r
-\r
-extern int\r
-onig_set_callout_user_data_of_match_param(OnigMatchParam* param, void* user_data)\r
-{\r
-#ifdef USE_CALLOUT\r
- param->callout_user_data = user_data;\r
- return ONIG_NORMAL;\r
-#else\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-#endif\r
-}\r
-\r
-\r
-typedef struct {\r
- void* stack_p;\r
- int stack_n;\r
- OnigOptionType options;\r
- OnigRegion* region;\r
- int ptr_num;\r
- const UChar* start; /* search start position (for \G: BEGIN_POSITION) */\r
- unsigned int match_stack_limit;\r
- unsigned long retry_limit_in_match;\r
- OnigMatchParam* mp;\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
- int best_len; /* for ONIG_OPTION_FIND_LONGEST */\r
- UChar* best_s;\r
-#endif\r
-} MatchArg;\r
-\r
-\r
-#ifdef ONIG_DEBUG\r
-\r
-/* arguments type */\r
-typedef enum {\r
- ARG_SPECIAL = -1,\r
- ARG_NON = 0,\r
- ARG_RELADDR = 1,\r
- ARG_ABSADDR = 2,\r
- ARG_LENGTH = 3,\r
- ARG_MEMNUM = 4,\r
- ARG_OPTION = 5,\r
- ARG_MODE = 6\r
-} OpArgType;\r
-\r
-typedef struct {\r
- short int opcode;\r
- char* name;\r
-} OpInfoType;\r
-\r
-static OpInfoType OpInfo[] = {\r
- { OP_FINISH, "finish" },\r
- { OP_END, "end" },\r
- { OP_EXACT1, "exact1" },\r
- { OP_EXACT2, "exact2" },\r
- { OP_EXACT3, "exact3" },\r
- { OP_EXACT4, "exact4" },\r
- { OP_EXACT5, "exact5" },\r
- { OP_EXACTN, "exactn" },\r
- { OP_EXACTMB2N1, "exactmb2-n1" },\r
- { OP_EXACTMB2N2, "exactmb2-n2" },\r
- { OP_EXACTMB2N3, "exactmb2-n3" },\r
- { OP_EXACTMB2N, "exactmb2-n" },\r
- { OP_EXACTMB3N, "exactmb3n" },\r
- { OP_EXACTMBN, "exactmbn" },\r
- { OP_EXACT1_IC, "exact1-ic" },\r
- { OP_EXACTN_IC, "exactn-ic" },\r
- { OP_CCLASS, "cclass" },\r
- { OP_CCLASS_MB, "cclass-mb" },\r
- { OP_CCLASS_MIX, "cclass-mix" },\r
- { OP_CCLASS_NOT, "cclass-not" },\r
- { OP_CCLASS_MB_NOT, "cclass-mb-not" },\r
- { OP_CCLASS_MIX_NOT, "cclass-mix-not" },\r
- { OP_ANYCHAR, "anychar" },\r
- { OP_ANYCHAR_ML, "anychar-ml" },\r
- { OP_ANYCHAR_STAR, "anychar*" },\r
- { OP_ANYCHAR_ML_STAR, "anychar-ml*" },\r
- { OP_ANYCHAR_STAR_PEEK_NEXT, "anychar*-peek-next" },\r
- { OP_ANYCHAR_ML_STAR_PEEK_NEXT, "anychar-ml*-peek-next" },\r
- { OP_WORD, "word" },\r
- { OP_WORD_ASCII, "word-ascii" },\r
- { OP_NO_WORD, "not-word" },\r
- { OP_NO_WORD_ASCII, "not-word-ascii" },\r
- { OP_WORD_BOUNDARY, "word-boundary" },\r
- { OP_NO_WORD_BOUNDARY, "not-word-boundary" },\r
- { OP_WORD_BEGIN, "word-begin" },\r
- { OP_WORD_END, "word-end" },\r
- { OP_TEXT_SEGMENT_BOUNDARY, "text-segment-boundary" },\r
- { OP_BEGIN_BUF, "begin-buf" },\r
- { OP_END_BUF, "end-buf" },\r
- { OP_BEGIN_LINE, "begin-line" },\r
- { OP_END_LINE, "end-line" },\r
- { OP_SEMI_END_BUF, "semi-end-buf" },\r
- { OP_BEGIN_POSITION, "begin-position" },\r
- { OP_BACKREF1, "backref1" },\r
- { OP_BACKREF2, "backref2" },\r
- { OP_BACKREF_N, "backref-n" },\r
- { OP_BACKREF_N_IC, "backref-n-ic" },\r
- { OP_BACKREF_MULTI, "backref_multi" },\r
- { OP_BACKREF_MULTI_IC, "backref_multi-ic" },\r
- { OP_BACKREF_WITH_LEVEL, "backref_with_level" },\r
- { OP_BACKREF_WITH_LEVEL_IC, "backref_with_level-c" },\r
- { OP_BACKREF_CHECK, "backref_check" },\r
- { OP_BACKREF_CHECK_WITH_LEVEL, "backref_check_with_level" },\r
- { OP_MEMORY_START_PUSH, "mem-start-push" },\r
- { OP_MEMORY_START, "mem-start" },\r
- { OP_MEMORY_END_PUSH, "mem-end-push" },\r
- { OP_MEMORY_END_PUSH_REC, "mem-end-push-rec" },\r
- { OP_MEMORY_END, "mem-end" },\r
- { OP_MEMORY_END_REC, "mem-end-rec" },\r
- { OP_FAIL, "fail" },\r
- { OP_JUMP, "jump" },\r
- { OP_PUSH, "push" },\r
- { OP_PUSH_SUPER, "push-super" },\r
- { OP_POP_OUT, "pop-out" },\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- { OP_PUSH_OR_JUMP_EXACT1, "push-or-jump-e1" },\r
-#endif\r
- { OP_PUSH_IF_PEEK_NEXT, "push-if-peek-next" },\r
- { OP_REPEAT, "repeat" },\r
- { OP_REPEAT_NG, "repeat-ng" },\r
- { OP_REPEAT_INC, "repeat-inc" },\r
- { OP_REPEAT_INC_NG, "repeat-inc-ng" },\r
- { OP_REPEAT_INC_SG, "repeat-inc-sg" },\r
- { OP_REPEAT_INC_NG_SG, "repeat-inc-ng-sg" },\r
- { OP_EMPTY_CHECK_START, "empty-check-start" },\r
- { OP_EMPTY_CHECK_END, "empty-check-end" },\r
- { OP_EMPTY_CHECK_END_MEMST, "empty-check-end-memst" },\r
- { OP_EMPTY_CHECK_END_MEMST_PUSH,"empty-check-end-memst-push" },\r
- { OP_PREC_READ_START, "push-pos" },\r
- { OP_PREC_READ_END, "pop-pos" },\r
- { OP_PREC_READ_NOT_START, "prec-read-not-start" },\r
- { OP_PREC_READ_NOT_END, "prec-read-not-end" },\r
- { OP_ATOMIC_START, "atomic-start" },\r
- { OP_ATOMIC_END, "atomic-end" },\r
- { OP_LOOK_BEHIND, "look-behind" },\r
- { OP_LOOK_BEHIND_NOT_START, "look-behind-not-start" },\r
- { OP_LOOK_BEHIND_NOT_END, "look-behind-not-end" },\r
- { OP_CALL, "call" },\r
- { OP_RETURN, "return" },\r
- { OP_PUSH_SAVE_VAL, "push-save-val" },\r
- { OP_UPDATE_VAR, "update-var" },\r
-#ifdef USE_CALLOUT\r
- { OP_CALLOUT_CONTENTS, "callout-contents" },\r
- { OP_CALLOUT_NAME, "callout-name" },\r
-#endif\r
- { -1, "" }\r
-};\r
-\r
-static char*\r
-op2name(int opcode)\r
-{\r
- int i;\r
-\r
- for (i = 0; OpInfo[i].opcode >= 0; i++) {\r
- if (opcode == OpInfo[i].opcode) return OpInfo[i].name;\r
- }\r
-\r
- return "";\r
-}\r
-\r
-static void\r
-p_string(FILE* f, int len, UChar* s)\r
-{\r
- fputs(":", f);\r
- while (len-- > 0) { fputc(*s++, f); }\r
-}\r
-\r
-static void\r
-p_len_string(FILE* f, LengthType len, int mb_len, UChar* s)\r
-{\r
- int x = len * mb_len;\r
-\r
- fprintf(f, ":%d:", len);\r
- while (x-- > 0) { fputc(*s++, f); }\r
-}\r
-\r
-static void\r
-p_rel_addr(FILE* f, RelAddrType rel_addr, Operation* p, Operation* start)\r
-{\r
- RelAddrType curr = (RelAddrType )(p - start);\r
-\r
- fprintf(f, "{%d/%d}", rel_addr, curr + rel_addr);\r
-}\r
-\r
-static int\r
-bitset_on_num(BitSetRef bs)\r
-{\r
- int i, n;\r
-\r
- n = 0;\r
- for (i = 0; i < SINGLE_BYTE_SIZE; i++) {\r
- if (BITSET_AT(bs, i)) n++;\r
- }\r
-\r
- return n;\r
-}\r
-\r
-static void\r
-print_compiled_byte_code(FILE* f, regex_t* reg, int index,\r
- Operation* start, OnigEncoding enc)\r
-{\r
- int i, n;\r
- RelAddrType addr;\r
- LengthType len;\r
- MemNumType mem;\r
- OnigCodePoint code;\r
- ModeType mode;\r
- UChar *q;\r
- Operation* p;\r
- enum OpCode opcode;\r
-\r
- p = reg->ops + index;\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- opcode = reg->ocs[index];\r
-#else\r
- opcode = p->opcode;\r
-#endif\r
-\r
- fprintf(f, "%s", op2name(opcode));\r
- switch (opcode) {\r
- case OP_EXACT1:\r
- p_string(f, 1, p->exact.s); break;\r
- case OP_EXACT2:\r
- p_string(f, 2, p->exact.s); break;\r
- case OP_EXACT3:\r
- p_string(f, 3, p->exact.s); break;\r
- case OP_EXACT4:\r
- p_string(f, 4, p->exact.s); break;\r
- case OP_EXACT5:\r
- p_string(f, 5, p->exact.s); break;\r
- case OP_EXACTN:\r
- len = p->exact_n.n;\r
- p_string(f, len, p->exact_n.s); break;\r
- case OP_EXACTMB2N1:\r
- p_string(f, 2, p->exact.s); break;\r
- case OP_EXACTMB2N2:\r
- p_string(f, 4, p->exact.s); break;\r
- case OP_EXACTMB2N3:\r
- p_string(f, 3, p->exact.s); break;\r
- case OP_EXACTMB2N:\r
- len = p->exact_n.n;\r
- p_len_string(f, len, 2, p->exact_n.s); break;\r
- case OP_EXACTMB3N:\r
- len = p->exact_n.n;\r
- p_len_string(f, len, 3, p->exact_n.s); break;\r
- case OP_EXACTMBN:\r
- {\r
- int mb_len;\r
-\r
- mb_len = p->exact_len_n.len;\r
- len = p->exact_len_n.n;\r
- q = p->exact_len_n.s;\r
- fprintf(f, ":%d:%d:", mb_len, len);\r
- n = len * mb_len;\r
- while (n-- > 0) { fputc(*q++, f); }\r
- }\r
- break;\r
- case OP_EXACT1_IC:\r
- len = enclen(enc, p->exact.s);\r
- p_string(f, len, p->exact.s);\r
- break;\r
- case OP_EXACTN_IC:\r
- len = p->exact_n.n;\r
- p_len_string(f, len, 1, p->exact_n.s);\r
- break;\r
-\r
- case OP_CCLASS:\r
- case OP_CCLASS_NOT:\r
- n = bitset_on_num(p->cclass.bsp);\r
- fprintf(f, ":%d", n);\r
- break;\r
- case OP_CCLASS_MB:\r
- case OP_CCLASS_MB_NOT:\r
- {\r
- OnigCodePoint ncode;\r
- OnigCodePoint* codes;\r
-\r
- codes = (OnigCodePoint* )p->cclass_mb.mb;\r
- GET_CODE_POINT(ncode, codes);\r
- codes++;\r
- GET_CODE_POINT(code, codes);\r
- fprintf(f, ":%u:%u", code, ncode);\r
- }\r
- break;\r
- case OP_CCLASS_MIX:\r
- case OP_CCLASS_MIX_NOT:\r
- {\r
- OnigCodePoint ncode;\r
- OnigCodePoint* codes;\r
-\r
- codes = (OnigCodePoint* )p->cclass_mix.mb;\r
- n = bitset_on_num(p->cclass_mix.bsp);\r
-\r
- GET_CODE_POINT(ncode, codes);\r
- codes++;\r
- GET_CODE_POINT(code, codes);\r
- fprintf(f, ":%d:%u:%u", n, code, ncode);\r
- }\r
- break;\r
-\r
- case OP_ANYCHAR_STAR_PEEK_NEXT:\r
- case OP_ANYCHAR_ML_STAR_PEEK_NEXT:\r
- p_string(f, 1, &(p->anychar_star_peek_next.c));\r
- break;\r
-\r
- case OP_WORD_BOUNDARY:\r
- case OP_NO_WORD_BOUNDARY:\r
- case OP_WORD_BEGIN:\r
- case OP_WORD_END:\r
- mode = p->word_boundary.mode;\r
- fprintf(f, ":%d", mode);\r
- break;\r
-\r
- case OP_BACKREF_N:\r
- case OP_BACKREF_N_IC:\r
- mem = p->backref_n.n1;\r
- fprintf(f, ":%d", mem);\r
- break;\r
- case OP_BACKREF_MULTI_IC:\r
- case OP_BACKREF_MULTI:\r
- case OP_BACKREF_CHECK:\r
- fputs(" ", f);\r
- n = p->backref_general.num;\r
- for (i = 0; i < n; i++) {\r
- mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i];\r
- if (i > 0) fputs(", ", f);\r
- fprintf(f, "%d", mem);\r
- }\r
- break;\r
- case OP_BACKREF_WITH_LEVEL:\r
- case OP_BACKREF_WITH_LEVEL_IC:\r
- case OP_BACKREF_CHECK_WITH_LEVEL:\r
- {\r
- LengthType level;\r
-\r
- level = p->backref_general.nest_level;\r
- fprintf(f, ":%d", level);\r
- fputs(" ", f);\r
- n = p->backref_general.num;\r
- for (i = 0; i < n; i++) {\r
- mem = (n == 1) ? p->backref_general.n1 : p->backref_general.ns[i];\r
- if (i > 0) fputs(", ", f);\r
- fprintf(f, "%d", mem);\r
- }\r
- }\r
- break;\r
-\r
- case OP_MEMORY_START:\r
- case OP_MEMORY_START_PUSH:\r
- mem = p->memory_start.num;\r
- fprintf(f, ":%d", mem);\r
- break;\r
- case OP_MEMORY_END_PUSH:\r
- case OP_MEMORY_END_PUSH_REC:\r
- case OP_MEMORY_END:\r
- case OP_MEMORY_END_REC:\r
- mem = p->memory_end.num;\r
- fprintf(f, ":%d", mem);\r
- break;\r
-\r
- case OP_JUMP:\r
- addr = p->jump.addr;\r
- fputc(':', f);\r
- p_rel_addr(f, addr, p, start);\r
- break;\r
-\r
- case OP_PUSH:\r
- case OP_PUSH_SUPER:\r
- addr = p->push.addr;\r
- fputc(':', f);\r
- p_rel_addr(f, addr, p, start);\r
- break;\r
-\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- case OP_PUSH_OR_JUMP_EXACT1:\r
- addr = p->push_or_jump_exact1.addr;\r
- fputc(':', f);\r
- p_rel_addr(f, addr, p, start);\r
- p_string(f, 1, &(p->push_or_jump_exact1.c));\r
- break;\r
-#endif\r
-\r
- case OP_PUSH_IF_PEEK_NEXT:\r
- addr = p->push_if_peek_next.addr;\r
- fputc(':', f);\r
- p_rel_addr(f, addr, p, start);\r
- p_string(f, 1, &(p->push_if_peek_next.c));\r
- break;\r
-\r
- case OP_REPEAT:\r
- case OP_REPEAT_NG:\r
- mem = p->repeat.id;\r
- addr = p->repeat.addr;\r
- fprintf(f, ":%d:", mem);\r
- p_rel_addr(f, addr, p, start);\r
- break;\r
-\r
- case OP_REPEAT_INC:\r
- case OP_REPEAT_INC_NG:\r
- case OP_REPEAT_INC_SG:\r
- case OP_REPEAT_INC_NG_SG:\r
- mem = p->repeat.id;\r
- fprintf(f, ":%d", mem);\r
- break;\r
-\r
- case OP_EMPTY_CHECK_START:\r
- mem = p->empty_check_start.mem;\r
- fprintf(f, ":%d", mem);\r
- break;\r
- case OP_EMPTY_CHECK_END:\r
- case OP_EMPTY_CHECK_END_MEMST:\r
- case OP_EMPTY_CHECK_END_MEMST_PUSH:\r
- mem = p->empty_check_end.mem;\r
- fprintf(f, ":%d", mem);\r
- break;\r
-\r
- case OP_PREC_READ_NOT_START:\r
- addr = p->prec_read_not_start.addr;\r
- fputc(':', f);\r
- p_rel_addr(f, addr, p, start);\r
- break;\r
-\r
- case OP_LOOK_BEHIND:\r
- len = p->look_behind.len;\r
- fprintf(f, ":%d", len);\r
- break;\r
-\r
- case OP_LOOK_BEHIND_NOT_START:\r
- addr = p->look_behind_not_start.addr;\r
- len = p->look_behind_not_start.len;\r
- fprintf(f, ":%d:", len);\r
- p_rel_addr(f, addr, p, start);\r
- break;\r
-\r
- case OP_CALL:\r
- addr = p->call.addr;\r
- fprintf(f, ":{/%d}", addr);\r
- break;\r
-\r
- case OP_PUSH_SAVE_VAL:\r
- {\r
- SaveType type;\r
-\r
- type = p->push_save_val.type;\r
- mem = p->push_save_val.id;\r
- fprintf(f, ":%d:%d", type, mem);\r
- }\r
- break;\r
-\r
- case OP_UPDATE_VAR:\r
- {\r
- UpdateVarType type;\r
-\r
- type = p->update_var.type;\r
- mem = p->update_var.id;\r
- fprintf(f, ":%d:%d", type, mem);\r
- }\r
- break;\r
-\r
-#ifdef USE_CALLOUT\r
- case OP_CALLOUT_CONTENTS:\r
- mem = p->callout_contents.num;\r
- fprintf(f, ":%d", mem);\r
- break;\r
-\r
- case OP_CALLOUT_NAME:\r
- {\r
- int id;\r
-\r
- id = p->callout_name.id;\r
- mem = p->callout_name.num;\r
- fprintf(f, ":%d:%d", id, mem);\r
- }\r
- break;\r
-#endif\r
-\r
- case OP_TEXT_SEGMENT_BOUNDARY:\r
- if (p->text_segment_boundary.not != 0)\r
- fprintf(f, ":not");\r
- break;\r
-\r
- case OP_FINISH:\r
- case OP_END:\r
- case OP_ANYCHAR:\r
- case OP_ANYCHAR_ML:\r
- case OP_ANYCHAR_STAR:\r
- case OP_ANYCHAR_ML_STAR:\r
- case OP_WORD:\r
- case OP_WORD_ASCII:\r
- case OP_NO_WORD:\r
- case OP_NO_WORD_ASCII:\r
- case OP_BEGIN_BUF:\r
- case OP_END_BUF:\r
- case OP_BEGIN_LINE:\r
- case OP_END_LINE:\r
- case OP_SEMI_END_BUF:\r
- case OP_BEGIN_POSITION:\r
- case OP_BACKREF1:\r
- case OP_BACKREF2:\r
- case OP_FAIL:\r
- case OP_POP_OUT:\r
- case OP_PREC_READ_START:\r
- case OP_PREC_READ_END:\r
- case OP_PREC_READ_NOT_END:\r
- case OP_ATOMIC_START:\r
- case OP_ATOMIC_END:\r
- case OP_LOOK_BEHIND_NOT_END:\r
- case OP_RETURN:\r
- break;\r
-\r
- default:\r
- fprintf(stderr, "print_compiled_byte_code: undefined code %d\n", opcode);\r
- break;\r
- }\r
-}\r
-#endif /* ONIG_DEBUG */\r
-\r
-#ifdef ONIG_DEBUG_COMPILE\r
-extern void\r
-onig_print_compiled_byte_code_list(FILE* f, regex_t* reg)\r
-{\r
- Operation* bp;\r
- Operation* start = reg->ops;\r
- Operation* end = reg->ops + reg->ops_used;\r
-\r
- fprintf(f, "bt_mem_start: 0x%x, bt_mem_end: 0x%x\n",\r
- reg->bt_mem_start, reg->bt_mem_end);\r
- fprintf(f, "code-length: %d\n", reg->ops_used);\r
-\r
- bp = start;\r
- while (bp < end) {\r
- int pos = bp - start;\r
-\r
- fprintf(f, "%4d: ", pos);\r
- print_compiled_byte_code(f, reg, pos, start, reg->enc);\r
- fprintf(f, "\n");\r
- bp++;\r
- }\r
- fprintf(f, "\n");\r
-}\r
-#endif\r
-\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
-static void history_tree_free(OnigCaptureTreeNode* node);\r
-\r
-static void\r
-history_tree_clear(OnigCaptureTreeNode* node)\r
-{\r
- int i;\r
-\r
- if (IS_NULL(node)) return ;\r
-\r
- for (i = 0; i < node->num_childs; i++) {\r
- if (IS_NOT_NULL(node->childs[i])) {\r
- history_tree_free(node->childs[i]);\r
- }\r
- }\r
- for (i = 0; i < node->allocated; i++) {\r
- node->childs[i] = (OnigCaptureTreeNode* )0;\r
- }\r
- node->num_childs = 0;\r
- node->beg = ONIG_REGION_NOTPOS;\r
- node->end = ONIG_REGION_NOTPOS;\r
- node->group = -1;\r
-}\r
-\r
-static void\r
-history_tree_free(OnigCaptureTreeNode* node)\r
-{\r
- history_tree_clear(node);\r
- if (IS_NOT_NULL(node->childs)) xfree(node->childs);\r
-\r
- xfree(node);\r
-}\r
-\r
-static void\r
-history_root_free(OnigRegion* r)\r
-{\r
- if (IS_NULL(r->history_root)) return ;\r
-\r
- history_tree_free(r->history_root);\r
- r->history_root = (OnigCaptureTreeNode* )0;\r
-}\r
-\r
-static OnigCaptureTreeNode*\r
-history_node_new(void)\r
-{\r
- OnigCaptureTreeNode* node;\r
-\r
- node = (OnigCaptureTreeNode* )xmalloc(sizeof(OnigCaptureTreeNode));\r
- CHECK_NULL_RETURN(node);\r
-\r
- node->childs = (OnigCaptureTreeNode** )0;\r
- node->allocated = 0;\r
- node->num_childs = 0;\r
- node->group = -1;\r
- node->beg = ONIG_REGION_NOTPOS;\r
- node->end = ONIG_REGION_NOTPOS;\r
-\r
- return node;\r
-}\r
-\r
-static int\r
-history_tree_add_child(OnigCaptureTreeNode* parent, OnigCaptureTreeNode* child)\r
-{\r
-#define HISTORY_TREE_INIT_ALLOC_SIZE 8\r
-\r
- if (parent->num_childs >= parent->allocated) {\r
- int n, i;\r
-\r
- if (IS_NULL(parent->childs)) {\r
- n = HISTORY_TREE_INIT_ALLOC_SIZE;\r
- parent->childs =\r
- (OnigCaptureTreeNode** )xmalloc(sizeof(parent->childs[0]) * n);\r
- }\r
- else {\r
- n = parent->allocated * 2;\r
- parent->childs =\r
- (OnigCaptureTreeNode** )xrealloc(parent->childs,\r
- sizeof(parent->childs[0]) * n,\r
- sizeof(parent->childs[0]) * parent->allocated);\r
- }\r
- CHECK_NULL_RETURN_MEMERR(parent->childs);\r
- for (i = parent->allocated; i < n; i++) {\r
- parent->childs[i] = (OnigCaptureTreeNode* )0;\r
- }\r
- parent->allocated = n;\r
- }\r
-\r
- parent->childs[parent->num_childs] = child;\r
- parent->num_childs++;\r
- return 0;\r
-}\r
-\r
-static OnigCaptureTreeNode*\r
-history_tree_clone(OnigCaptureTreeNode* node)\r
-{\r
- int i;\r
- OnigCaptureTreeNode *clone, *child;\r
-\r
- clone = history_node_new();\r
- CHECK_NULL_RETURN(clone);\r
-\r
- clone->beg = node->beg;\r
- clone->end = node->end;\r
- for (i = 0; i < node->num_childs; i++) {\r
- child = history_tree_clone(node->childs[i]);\r
- if (IS_NULL(child)) {\r
- history_tree_free(clone);\r
- return (OnigCaptureTreeNode* )0;\r
- }\r
- history_tree_add_child(clone, child);\r
- }\r
-\r
- return clone;\r
-}\r
-\r
-extern OnigCaptureTreeNode*\r
-onig_get_capture_tree(OnigRegion* region)\r
-{\r
- return region->history_root;\r
-}\r
-#endif /* USE_CAPTURE_HISTORY */\r
-\r
-extern void\r
-onig_region_clear(OnigRegion* region)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < region->num_regs; i++) {\r
- region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS;\r
- }\r
-#ifdef USE_CAPTURE_HISTORY\r
- history_root_free(region);\r
-#endif\r
-}\r
-\r
-extern int\r
-onig_region_resize(OnigRegion* region, int n)\r
-{\r
- region->num_regs = n;\r
-\r
- if (n < ONIG_NREGION)\r
- n = ONIG_NREGION;\r
-\r
- if (region->allocated == 0) {\r
- region->beg = (int* )xmalloc(n * sizeof(int));\r
- region->end = (int* )xmalloc(n * sizeof(int));\r
-\r
- if (region->beg == 0 || region->end == 0)\r
- return ONIGERR_MEMORY;\r
-\r
- region->allocated = n;\r
- }\r
- else if (region->allocated < n) {\r
- region->beg = (int* )xrealloc(region->beg, n * sizeof(int), region->allocated * sizeof(int));\r
- region->end = (int* )xrealloc(region->end, n * sizeof(int), region->allocated * sizeof(int));\r
-\r
- if (region->beg == 0 || region->end == 0)\r
- return ONIGERR_MEMORY;\r
-\r
- region->allocated = n;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-onig_region_resize_clear(OnigRegion* region, int n)\r
-{\r
- int r;\r
-\r
- r = onig_region_resize(region, n);\r
- if (r != 0) return r;\r
- onig_region_clear(region);\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_region_set(OnigRegion* region, int at, int beg, int end)\r
-{\r
- if (at < 0) return ONIGERR_INVALID_ARGUMENT;\r
-\r
- if (at >= region->allocated) {\r
- int r = onig_region_resize(region, at + 1);\r
- if (r < 0) return r;\r
- }\r
-\r
- region->beg[at] = beg;\r
- region->end[at] = end;\r
- return 0;\r
-}\r
-\r
-extern void\r
-onig_region_init(OnigRegion* region)\r
-{\r
- region->num_regs = 0;\r
- region->allocated = 0;\r
- region->beg = (int* )0;\r
- region->end = (int* )0;\r
- region->history_root = (OnigCaptureTreeNode* )0;\r
-}\r
-\r
-extern OnigRegion*\r
-onig_region_new(void)\r
-{\r
- OnigRegion* r;\r
-\r
- r = (OnigRegion* )xmalloc(sizeof(OnigRegion));\r
- CHECK_NULL_RETURN(r);\r
- onig_region_init(r);\r
- return r;\r
-}\r
-\r
-extern void\r
-onig_region_free(OnigRegion* r, int free_self)\r
-{\r
- if (r != 0) {\r
- if (r->allocated > 0) {\r
- if (r->beg) xfree(r->beg);\r
- if (r->end) xfree(r->end);\r
- r->allocated = 0;\r
- }\r
-#ifdef USE_CAPTURE_HISTORY\r
- history_root_free(r);\r
-#endif\r
- if (free_self) xfree(r);\r
- }\r
-}\r
-\r
-extern void\r
-onig_region_copy(OnigRegion* to, OnigRegion* from)\r
-{\r
-#define RREGC_SIZE (sizeof(int) * from->num_regs)\r
- int i;\r
-\r
- if (to == from) return;\r
-\r
- if (to->allocated == 0) {\r
- if (from->num_regs > 0) {\r
- to->beg = (int* )xmalloc(RREGC_SIZE);\r
- if (IS_NULL(to->beg)) return;\r
- to->end = (int* )xmalloc(RREGC_SIZE);\r
- if (IS_NULL(to->end)) return;\r
- to->allocated = from->num_regs;\r
- }\r
- }\r
- else if (to->allocated < from->num_regs) {\r
- to->beg = (int* )xrealloc(to->beg, RREGC_SIZE, sizeof(int) * to->allocated);\r
- if (IS_NULL(to->beg)) return;\r
- to->end = (int* )xrealloc(to->end, RREGC_SIZE, sizeof(int) * to->allocated);\r
- if (IS_NULL(to->end)) return;\r
- to->allocated = from->num_regs;\r
- }\r
-\r
- for (i = 0; i < from->num_regs; i++) {\r
- to->beg[i] = from->beg[i];\r
- to->end[i] = from->end[i];\r
- }\r
- to->num_regs = from->num_regs;\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
- history_root_free(to);\r
-\r
- if (IS_NOT_NULL(from->history_root)) {\r
- to->history_root = history_tree_clone(from->history_root);\r
- }\r
-#endif\r
-}\r
-\r
-#ifdef USE_CALLOUT\r
-#define CALLOUT_BODY(func, ain, aname_id, anum, user, args, result) do { \\r
- args.in = (ain);\\r
- args.name_id = (aname_id);\\r
- args.num = anum;\\r
- args.regex = reg;\\r
- args.string = str;\\r
- args.string_end = end;\\r
- args.start = sstart;\\r
- args.right_range = right_range;\\r
- args.current = s;\\r
- args.retry_in_match_counter = retry_in_match_counter;\\r
- args.msa = msa;\\r
- args.stk_base = stk_base;\\r
- args.stk = stk;\\r
- args.mem_start_stk = mem_start_stk;\\r
- args.mem_end_stk = mem_end_stk;\\r
- result = (func)(&args, user);\\r
-} while (0)\r
-\r
-#define RETRACTION_CALLOUT(func, aname_id, anum, user) do {\\r
- int result;\\r
- OnigCalloutArgs args;\\r
- CALLOUT_BODY(func, ONIG_CALLOUT_IN_RETRACTION, aname_id, anum, user, args, result);\\r
- switch (result) {\\r
- case ONIG_CALLOUT_FAIL:\\r
- case ONIG_CALLOUT_SUCCESS:\\r
- break;\\r
- default:\\r
- if (result > 0) {\\r
- result = ONIGERR_INVALID_ARGUMENT;\\r
- }\\r
- best_len = result;\\r
- goto finish;\\r
- break;\\r
- }\\r
-} while(0)\r
-#endif\r
-\r
-\r
-/** stack **/\r
-#define INVALID_STACK_INDEX -1\r
-\r
-#define STK_ALT_FLAG 0x0001\r
-\r
-/* stack type */\r
-/* used by normal-POP */\r
-#define STK_SUPER_ALT STK_ALT_FLAG\r
-#define STK_ALT (0x0002 | STK_ALT_FLAG)\r
-#define STK_ALT_PREC_READ_NOT (0x0004 | STK_ALT_FLAG)\r
-#define STK_ALT_LOOK_BEHIND_NOT (0x0006 | STK_ALT_FLAG)\r
-\r
-/* handled by normal-POP */\r
-#define STK_MEM_START 0x0010\r
-#define STK_MEM_END 0x8030\r
-#define STK_REPEAT_INC 0x0050\r
-#ifdef USE_CALLOUT\r
-#define STK_CALLOUT 0x0070\r
-#endif\r
-\r
-/* avoided by normal-POP */\r
-#define STK_VOID 0x0000 /* for fill a blank */\r
-#define STK_EMPTY_CHECK_START 0x3000\r
-#define STK_EMPTY_CHECK_END 0x5000 /* for recursive call */\r
-#define STK_MEM_END_MARK 0x8100\r
-#define STK_TO_VOID_START 0x1200 /* mark for "(?>...)" */\r
-#define STK_REPEAT 0x0300\r
-#define STK_CALL_FRAME 0x0400\r
-#define STK_RETURN 0x0500\r
-#define STK_SAVE_VAL 0x0600\r
-#define STK_PREC_READ_START 0x0700\r
-#define STK_PREC_READ_END 0x0800\r
-\r
-/* stack type check mask */\r
-#define STK_MASK_POP_USED STK_ALT_FLAG\r
-#define STK_MASK_POP_HANDLED 0x0010\r
-#define STK_MASK_POP_HANDLED_TIL (STK_MASK_POP_HANDLED | 0x0004)\r
-#define STK_MASK_TO_VOID_TARGET 0x100e\r
-#define STK_MASK_MEM_END_OR_MARK 0x8000 /* MEM_END or MEM_END_MARK */\r
-\r
-typedef intptr_t StackIndex;\r
-\r
-typedef struct _StackType {\r
- unsigned int type;\r
- int zid;\r
- union {\r
- struct {\r
- Operation* pcode; /* byte code position */\r
- UChar* pstr; /* string position */\r
- UChar* pstr_prev; /* previous char position of pstr */\r
- } state;\r
- struct {\r
- int count; /* for OP_REPEAT_INC, OP_REPEAT_INC_NG */\r
- Operation* pcode; /* byte code position (head of repeated target) */\r
- } repeat;\r
- struct {\r
- StackIndex si; /* index of stack */\r
- } repeat_inc;\r
- struct {\r
- UChar *pstr; /* start/end position */\r
- /* Following information is set, if this stack type is MEM-START */\r
- StackIndex prev_start; /* prev. info (for backtrack "(...)*" ) */\r
- StackIndex prev_end; /* prev. info (for backtrack "(...)*" ) */\r
- } mem;\r
- struct {\r
- UChar *pstr; /* start position */\r
- } empty_check;\r
-#ifdef USE_CALL\r
- struct {\r
- Operation *ret_addr; /* byte code position */\r
- UChar *pstr; /* string position */\r
- } call_frame;\r
-#endif\r
- struct {\r
- enum SaveType type;\r
- UChar* v;\r
- UChar* v2;\r
- } val;\r
-#ifdef USE_CALLOUT\r
- struct {\r
- int num;\r
- OnigCalloutFunc func;\r
- } callout;\r
-#endif\r
- } u;\r
-} StackType;\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-struct OnigCalloutArgsStruct {\r
- OnigCalloutIn in;\r
- int name_id; /* name id or ONIG_NON_NAME_ID */\r
- int num;\r
- OnigRegex regex;\r
- const OnigUChar* string;\r
- const OnigUChar* string_end;\r
- const OnigUChar* start;\r
- const OnigUChar* right_range;\r
- const OnigUChar* current; /* current matching position */\r
- unsigned long retry_in_match_counter;\r
-\r
- /* invisible to users */\r
- MatchArg* msa;\r
- StackType* stk_base;\r
- StackType* stk;\r
- StackIndex* mem_start_stk;\r
- StackIndex* mem_end_stk;\r
-};\r
-\r
-#endif\r
-\r
-\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
-#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mp) do { \\r
- (msa).stack_p = (void* )0;\\r
- (msa).options = (arg_option);\\r
- (msa).region = (arg_region);\\r
- (msa).start = (arg_start);\\r
- (msa).match_stack_limit = (mp)->match_stack_limit;\\r
- (msa).retry_limit_in_match = (mp)->retry_limit_in_match;\\r
- (msa).mp = mp;\\r
- (msa).best_len = ONIG_MISMATCH;\\r
- (msa).ptr_num = (reg)->num_repeat + ((reg)->num_mem + 1) * 2; \\r
-} while(0)\r
-#else\r
-#define MATCH_ARG_INIT(msa, reg, arg_option, arg_region, arg_start, mp) do { \\r
- (msa).stack_p = (void* )0;\\r
- (msa).options = (arg_option);\\r
- (msa).region = (arg_region);\\r
- (msa).start = (arg_start);\\r
- (msa).match_stack_limit = (mp)->match_stack_limit;\\r
- (msa).retry_limit_in_match = (mp)->retry_limit_in_match;\\r
- (msa).mp = mp;\\r
- (msa).ptr_num = (reg)->num_repeat + ((reg)->num_mem + 1) * 2; \\r
-} while(0)\r
-#endif\r
-\r
-#define MATCH_ARG_FREE(msa) if ((msa).stack_p) xfree((msa).stack_p)\r
-\r
-\r
-#define ALLOCA_PTR_NUM_LIMIT 50\r
-\r
-#define STACK_INIT(stack_num) do {\\r
- if (msa->stack_p) {\\r
- is_alloca = 0;\\r
- alloc_base = msa->stack_p;\\r
- stk_base = (StackType* )(alloc_base\\r
- + (sizeof(StackIndex) * msa->ptr_num));\\r
- stk = stk_base;\\r
- stk_end = stk_base + msa->stack_n;\\r
- }\\r
- else if (msa->ptr_num > ALLOCA_PTR_NUM_LIMIT) {\\r
- is_alloca = 0;\\r
- alloc_base = (char* )xmalloc(sizeof(StackIndex) * msa->ptr_num\\r
- + sizeof(StackType) * (stack_num));\\r
- CHECK_NULL_RETURN_MEMERR(alloc_base);\\r
- stk_base = (StackType* )(alloc_base\\r
- + (sizeof(StackIndex) * msa->ptr_num));\\r
- stk = stk_base;\\r
- stk_end = stk_base + (stack_num);\\r
- }\\r
- else {\\r
- is_alloca = 1;\\r
- alloc_base = (char* )xmalloc(sizeof(StackIndex) * msa->ptr_num\\r
- + sizeof(StackType) * (stack_num));\\r
- CHECK_NULL_RETURN_MEMERR(alloc_base);\\r
- stk_base = (StackType* )(alloc_base\\r
- + (sizeof(StackIndex) * msa->ptr_num));\\r
- stk = stk_base;\\r
- stk_end = stk_base + (stack_num);\\r
- }\\r
-} while(0);\r
-\r
-\r
-#define STACK_SAVE do{\\r
- msa->stack_n = (int )(stk_end - stk_base);\\r
- if (is_alloca != 0) {\\r
- size_t size = sizeof(StackIndex) * msa->ptr_num \\r
- + sizeof(StackType) * msa->stack_n;\\r
- msa->stack_p = xmalloc(size);\\r
- CHECK_NULL_RETURN_MEMERR(msa->stack_p);\\r
- xmemcpy(msa->stack_p, alloc_base, size);\\r
- }\\r
- else {\\r
- msa->stack_p = alloc_base;\\r
- };\\r
-} while(0)\r
-\r
-#define UPDATE_FOR_STACK_REALLOC do{\\r
- repeat_stk = (StackIndex* )alloc_base;\\r
- mem_start_stk = (StackIndex* )(repeat_stk + reg->num_repeat);\\r
- mem_end_stk = mem_start_stk + num_mem + 1;\\r
-} while(0)\r
-\r
-static unsigned int MatchStackLimit = DEFAULT_MATCH_STACK_LIMIT_SIZE;\r
-\r
-extern unsigned int\r
-onig_get_match_stack_limit_size(void)\r
-{\r
- return MatchStackLimit;\r
-}\r
-\r
-extern int\r
-onig_set_match_stack_limit_size(unsigned int size)\r
-{\r
- MatchStackLimit = size;\r
- return 0;\r
-}\r
-\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
-\r
-static unsigned long RetryLimitInMatch = DEFAULT_RETRY_LIMIT_IN_MATCH;\r
-\r
-#define CHECK_RETRY_LIMIT_IN_MATCH do {\\r
- if (retry_in_match_counter++ > retry_limit_in_match) goto retry_limit_in_match_over;\\r
-} while (0)\r
-\r
-#else\r
-\r
-#define CHECK_RETRY_LIMIT_IN_MATCH\r
-\r
-#endif /* USE_RETRY_LIMIT_IN_MATCH */\r
-\r
-extern unsigned long\r
-onig_get_retry_limit_in_match(void)\r
-{\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- return RetryLimitInMatch;\r
-#else\r
- /* return ONIG_NO_SUPPORT_CONFIG; */\r
- return 0;\r
-#endif\r
-}\r
-\r
-extern int\r
-onig_set_retry_limit_in_match(unsigned long size)\r
-{\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- RetryLimitInMatch = size;\r
- return 0;\r
-#else\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-#endif\r
-}\r
-\r
-#ifdef USE_CALLOUT\r
-static OnigCalloutFunc DefaultProgressCallout;\r
-static OnigCalloutFunc DefaultRetractionCallout;\r
-#endif\r
-\r
-extern OnigMatchParam*\r
-onig_new_match_param(void)\r
-{\r
- OnigMatchParam* p;\r
-\r
- p = (OnigMatchParam* )xmalloc(sizeof(*p));\r
- if (IS_NOT_NULL(p)) {\r
- onig_initialize_match_param(p);\r
- }\r
-\r
- return p;\r
-}\r
-\r
-extern void\r
-onig_free_match_param_content(OnigMatchParam* p)\r
-{\r
-#ifdef USE_CALLOUT\r
- if (IS_NOT_NULL(p->callout_data)) {\r
- xfree(p->callout_data);\r
- p->callout_data = 0;\r
- }\r
-#endif\r
-}\r
-\r
-extern void\r
-onig_free_match_param(OnigMatchParam* p)\r
-{\r
- if (IS_NOT_NULL(p)) {\r
- onig_free_match_param_content(p);\r
- xfree(p);\r
- }\r
-}\r
-\r
-extern int\r
-onig_initialize_match_param(OnigMatchParam* mp)\r
-{\r
- mp->match_stack_limit = MatchStackLimit;\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- mp->retry_limit_in_match = RetryLimitInMatch;\r
-#endif\r
-\r
-#ifdef USE_CALLOUT\r
- mp->progress_callout_of_contents = DefaultProgressCallout;\r
- mp->retraction_callout_of_contents = DefaultRetractionCallout;\r
- mp->match_at_call_counter = 0;\r
- mp->callout_user_data = 0;\r
- mp->callout_data = 0;\r
- mp->callout_data_alloc_num = 0;\r
-#endif\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-static int\r
-adjust_match_param(regex_t* reg, OnigMatchParam* mp)\r
-{\r
- RegexExt* ext = reg->extp;\r
-\r
- mp->match_at_call_counter = 0;\r
-\r
- if (IS_NULL(ext) || ext->callout_num == 0) return ONIG_NORMAL;\r
-\r
- if (ext->callout_num > mp->callout_data_alloc_num) {\r
- CalloutData* d;\r
- size_t n = ext->callout_num * sizeof(*d);\r
- if (IS_NOT_NULL(mp->callout_data))\r
- d = (CalloutData* )xrealloc(mp->callout_data, n, mp->callout_data_alloc_num * sizeof(*d));\r
- else\r
- d = (CalloutData* )xmalloc(n);\r
- CHECK_NULL_RETURN_MEMERR(d);\r
-\r
- mp->callout_data = d;\r
- mp->callout_data_alloc_num = ext->callout_num;\r
- }\r
-\r
- xmemset(mp->callout_data, 0, mp->callout_data_alloc_num * sizeof(CalloutData));\r
- return ONIG_NORMAL;\r
-}\r
-\r
-#define ADJUST_MATCH_PARAM(reg, mp) \\r
- r = adjust_match_param(reg, mp);\\r
- if (r != ONIG_NORMAL) return r;\r
-\r
-#define CALLOUT_DATA_AT_NUM(mp, num) ((mp)->callout_data + ((num) - 1))\r
-\r
-extern int\r
-onig_check_callout_data_and_clear_old_values(OnigCalloutArgs* args)\r
-{\r
- OnigMatchParam* mp;\r
- int num;\r
- CalloutData* d;\r
-\r
- mp = args->msa->mp;\r
- num = args->num;\r
-\r
- d = CALLOUT_DATA_AT_NUM(mp, num);\r
- if (d->last_match_at_call_counter != mp->match_at_call_counter) {\r
- xmemset(d, 0, sizeof(*d));\r
- d->last_match_at_call_counter = mp->match_at_call_counter;\r
- return d->last_match_at_call_counter;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_get_callout_data_dont_clear_old(regex_t* reg, OnigMatchParam* mp,\r
- int callout_num, int slot,\r
- OnigType* type, OnigValue* val)\r
-{\r
- OnigType t;\r
- CalloutData* d;\r
-\r
- if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT;\r
-\r
- d = CALLOUT_DATA_AT_NUM(mp, callout_num);\r
- t = d->slot[slot].type;\r
- if (IS_NOT_NULL(type)) *type = t;\r
- if (IS_NOT_NULL(val)) *val = d->slot[slot].val;\r
- return (t == ONIG_TYPE_VOID ? 1 : ONIG_NORMAL);\r
-}\r
-\r
-extern int\r
-onig_get_callout_data_by_callout_args_self_dont_clear_old(OnigCalloutArgs* args,\r
- int slot, OnigType* type,\r
- OnigValue* val)\r
-{\r
- return onig_get_callout_data_dont_clear_old(args->regex, args->msa->mp,\r
- args->num, slot, type, val);\r
-}\r
-\r
-extern int\r
-onig_get_callout_data(regex_t* reg, OnigMatchParam* mp,\r
- int callout_num, int slot,\r
- OnigType* type, OnigValue* val)\r
-{\r
- OnigType t;\r
- CalloutData* d;\r
-\r
- if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT;\r
-\r
- d = CALLOUT_DATA_AT_NUM(mp, callout_num);\r
- if (d->last_match_at_call_counter != mp->match_at_call_counter) {\r
- xmemset(d, 0, sizeof(*d));\r
- d->last_match_at_call_counter = mp->match_at_call_counter;\r
- }\r
-\r
- t = d->slot[slot].type;\r
- if (IS_NOT_NULL(type)) *type = t;\r
- if (IS_NOT_NULL(val)) *val = d->slot[slot].val;\r
- return (t == ONIG_TYPE_VOID ? 1 : ONIG_NORMAL);\r
-}\r
-\r
-extern int\r
-onig_get_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp,\r
- const UChar* tag, const UChar* tag_end, int slot,\r
- OnigType* type, OnigValue* val)\r
-{\r
- int num;\r
-\r
- num = onig_get_callout_num_by_tag(reg, tag, tag_end);\r
- if (num < 0) return num;\r
- if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- return onig_get_callout_data(reg, mp, num, slot, type, val);\r
-}\r
-\r
-extern int\r
-onig_get_callout_data_by_callout_args(OnigCalloutArgs* args,\r
- int callout_num, int slot,\r
- OnigType* type, OnigValue* val)\r
-{\r
- return onig_get_callout_data(args->regex, args->msa->mp, callout_num, slot,\r
- type, val);\r
-}\r
-\r
-extern int\r
-onig_get_callout_data_by_callout_args_self(OnigCalloutArgs* args,\r
- int slot, OnigType* type, OnigValue* val)\r
-{\r
- return onig_get_callout_data(args->regex, args->msa->mp, args->num, slot,\r
- type, val);\r
-}\r
-\r
-extern int\r
-onig_set_callout_data(regex_t* reg, OnigMatchParam* mp,\r
- int callout_num, int slot,\r
- OnigType type, OnigValue* val)\r
-{\r
- CalloutData* d;\r
-\r
- if (callout_num <= 0) return ONIGERR_INVALID_ARGUMENT;\r
-\r
- d = CALLOUT_DATA_AT_NUM(mp, callout_num);\r
- d->slot[slot].type = type;\r
- d->slot[slot].val = *val;\r
- d->last_match_at_call_counter = mp->match_at_call_counter;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_set_callout_data_by_tag(regex_t* reg, OnigMatchParam* mp,\r
- const UChar* tag, const UChar* tag_end, int slot,\r
- OnigType type, OnigValue* val)\r
-{\r
- int num;\r
-\r
- num = onig_get_callout_num_by_tag(reg, tag, tag_end);\r
- if (num < 0) return num;\r
- if (num == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- return onig_set_callout_data(reg, mp, num, slot, type, val);\r
-}\r
-\r
-extern int\r
-onig_set_callout_data_by_callout_args(OnigCalloutArgs* args,\r
- int callout_num, int slot,\r
- OnigType type, OnigValue* val)\r
-{\r
- return onig_set_callout_data(args->regex, args->msa->mp, callout_num, slot,\r
- type, val);\r
-}\r
-\r
-extern int\r
-onig_set_callout_data_by_callout_args_self(OnigCalloutArgs* args,\r
- int slot, OnigType type, OnigValue* val)\r
-{\r
- return onig_set_callout_data(args->regex, args->msa->mp, args->num, slot,\r
- type, val);\r
-}\r
-\r
-#else\r
-#define ADJUST_MATCH_PARAM(reg, mp)\r
-#endif /* USE_CALLOUT */\r
-\r
-\r
-static int\r
-stack_double(int is_alloca, char** arg_alloc_base,\r
- StackType** arg_stk_base, StackType** arg_stk_end, StackType** arg_stk,\r
- MatchArg* msa)\r
-{\r
- unsigned int n;\r
- int used;\r
- size_t size;\r
- size_t new_size;\r
- char* alloc_base;\r
- char* new_alloc_base;\r
- StackType *stk_base, *stk_end, *stk;\r
-\r
- alloc_base = *arg_alloc_base;\r
- stk_base = *arg_stk_base;\r
- stk_end = *arg_stk_end;\r
- stk = *arg_stk;\r
-\r
- n = (unsigned int )(stk_end - stk_base);\r
- size = sizeof(StackIndex) * msa->ptr_num + sizeof(StackType) * n;\r
- n *= 2;\r
- new_size = sizeof(StackIndex) * msa->ptr_num + sizeof(StackType) * n;\r
- if (is_alloca != 0) {\r
- new_alloc_base = (char* )xmalloc(new_size);\r
- if (IS_NULL(new_alloc_base)) {\r
- STACK_SAVE;\r
- return ONIGERR_MEMORY;\r
- }\r
- xmemcpy(new_alloc_base, alloc_base, size);\r
- }\r
- else {\r
- if (msa->match_stack_limit != 0 && n > msa->match_stack_limit) {\r
- if ((unsigned int )(stk_end - stk_base) == msa->match_stack_limit)\r
- return ONIGERR_MATCH_STACK_LIMIT_OVER;\r
- else\r
- n = msa->match_stack_limit;\r
- }\r
- new_alloc_base = (char* )xrealloc(alloc_base, new_size, size);\r
- if (IS_NULL(new_alloc_base)) {\r
- STACK_SAVE;\r
- return ONIGERR_MEMORY;\r
- }\r
- }\r
-\r
- alloc_base = new_alloc_base;\r
- used = (int )(stk - stk_base);\r
- *arg_alloc_base = alloc_base;\r
- *arg_stk_base = (StackType* )(alloc_base\r
- + (sizeof(StackIndex) * msa->ptr_num));\r
- *arg_stk = *arg_stk_base + used;\r
- *arg_stk_end = *arg_stk_base + n;\r
- return 0;\r
-}\r
-\r
-#define STACK_ENSURE(n) do {\\r
- if ((int )(stk_end - stk) < (n)) {\\r
- int r = stack_double(is_alloca, &alloc_base, &stk_base, &stk_end, &stk, msa);\\r
- if (r != 0) { STACK_SAVE; return r; } \\r
- is_alloca = 0;\\r
- UPDATE_FOR_STACK_REALLOC;\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_AT(index) (stk_base + (index))\r
-#define GET_STACK_INDEX(stk) ((stk) - stk_base)\r
-\r
-#define STACK_PUSH_TYPE(stack_type) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = (stack_type);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define IS_TO_VOID_TARGET(stk) (((stk)->type & STK_MASK_TO_VOID_TARGET) != 0)\r
-\r
-#define STACK_PUSH(stack_type,pat,s,sprev) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = (stack_type);\\r
- stk->u.state.pcode = (pat);\\r
- stk->u.state.pstr = (s);\\r
- stk->u.state.pstr_prev = (sprev);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_ENSURED(stack_type,pat) do {\\r
- stk->type = (stack_type);\\r
- stk->u.state.pcode = (pat);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#ifdef ONIG_DEBUG_MATCH\r
-#define STACK_PUSH_BOTTOM(stack_type,pat) do {\\r
- stk->type = (stack_type);\\r
- stk->u.state.pcode = (pat);\\r
- stk->u.state.pstr = s;\\r
- stk->u.state.pstr_prev = sprev;\\r
- STACK_INC;\\r
-} while (0)\r
-#else\r
-#define STACK_PUSH_BOTTOM(stack_type,pat) do {\\r
- stk->type = (stack_type);\\r
- stk->u.state.pcode = (pat);\\r
- STACK_INC;\\r
-} while (0)\r
-#endif\r
-\r
-#define STACK_PUSH_ALT(pat,s,sprev) STACK_PUSH(STK_ALT,pat,s,sprev)\r
-#define STACK_PUSH_SUPER_ALT(pat,s,sprev) STACK_PUSH(STK_SUPER_ALT,pat,s,sprev)\r
-#define STACK_PUSH_PREC_READ_START(s,sprev) \\r
- STACK_PUSH(STK_PREC_READ_START,(Operation* )0,s,sprev)\r
-#define STACK_PUSH_ALT_PREC_READ_NOT(pat,s,sprev) \\r
- STACK_PUSH(STK_ALT_PREC_READ_NOT,pat,s,sprev)\r
-#define STACK_PUSH_TO_VOID_START STACK_PUSH_TYPE(STK_TO_VOID_START)\r
-#define STACK_PUSH_ALT_LOOK_BEHIND_NOT(pat,s,sprev) \\r
- STACK_PUSH(STK_ALT_LOOK_BEHIND_NOT,pat,s,sprev)\r
-\r
-#define STACK_PUSH_REPEAT(sid, pat) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_REPEAT;\\r
- stk->zid = (sid);\\r
- stk->u.repeat.pcode = (pat);\\r
- stk->u.repeat.count = 0;\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_REPEAT_INC(sindex) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_REPEAT_INC;\\r
- stk->u.repeat_inc.si = (sindex);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_MEM_START(mnum, s) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_MEM_START;\\r
- stk->zid = (mnum);\\r
- stk->u.mem.pstr = (s);\\r
- stk->u.mem.prev_start = mem_start_stk[mnum];\\r
- stk->u.mem.prev_end = mem_end_stk[mnum];\\r
- mem_start_stk[mnum] = GET_STACK_INDEX(stk);\\r
- mem_end_stk[mnum] = INVALID_STACK_INDEX;\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_MEM_END(mnum, s) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_MEM_END;\\r
- stk->zid = (mnum);\\r
- stk->u.mem.pstr = (s);\\r
- stk->u.mem.prev_start = mem_start_stk[mnum];\\r
- stk->u.mem.prev_end = mem_end_stk[mnum];\\r
- mem_end_stk[mnum] = GET_STACK_INDEX(stk);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_MEM_END_MARK(mnum) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_MEM_END_MARK;\\r
- stk->zid = (mnum);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_GET_MEM_START(mnum, k) do {\\r
- int level = 0;\\r
- k = stk;\\r
- while (k > stk_base) {\\r
- k--;\\r
- if ((k->type & STK_MASK_MEM_END_OR_MARK) != 0 \\r
- && k->zid == (mnum)) {\\r
- level++;\\r
- }\\r
- else if (k->type == STK_MEM_START && k->zid == (mnum)) {\\r
- if (level == 0) break;\\r
- level--;\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_GET_MEM_RANGE(k, mnum, start, end) do {\\r
- int level = 0;\\r
- while (k < stk) {\\r
- if (k->type == STK_MEM_START && k->u.mem.num == (mnum)) {\\r
- if (level == 0) (start) = k->u.mem.pstr;\\r
- level++;\\r
- }\\r
- else if (k->type == STK_MEM_END && k->u.mem.num == (mnum)) {\\r
- level--;\\r
- if (level == 0) {\\r
- (end) = k->u.mem.pstr;\\r
- break;\\r
- }\\r
- }\\r
- k++;\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_PUSH_EMPTY_CHECK_START(cnum, s) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_EMPTY_CHECK_START;\\r
- stk->zid = (cnum);\\r
- stk->u.empty_check.pstr = (s);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_EMPTY_CHECK_END(cnum) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_EMPTY_CHECK_END;\\r
- stk->zid = (cnum);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_CALL_FRAME(pat) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_CALL_FRAME;\\r
- stk->u.call_frame.ret_addr = (pat);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_RETURN do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_RETURN;\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_SAVE_VAL(sid, stype, sval) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_SAVE_VAL;\\r
- stk->zid = (sid);\\r
- stk->u.val.type = (stype);\\r
- stk->u.val.v = (UChar* )(sval);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_SAVE_VAL_WITH_SPREV(sid, stype, sval) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_SAVE_VAL;\\r
- stk->zid = (sid);\\r
- stk->u.val.type = (stype);\\r
- stk->u.val.v = (UChar* )(sval);\\r
- stk->u.val.v2 = sprev;\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_GET_SAVE_VAL_TYPE_LAST(stype, sval) do {\\r
- StackType *k = stk;\\r
- while (k > stk_base) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST"); \\r
- if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)) {\\r
- (sval) = k->u.val.v;\\r
- break;\\r
- }\\r
- }\\r
-} while (0)\r
-\r
-#define STACK_GET_SAVE_VAL_TYPE_LAST_ID(stype, sid, sval) do { \\r
- int level = 0;\\r
- StackType *k = stk;\\r
- while (k > stk_base) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \\r
- if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\\r
- && k->zid == (sid)) {\\r
- if (level == 0) {\\r
- (sval) = k->u.val.v;\\r
- break;\\r
- }\\r
- }\\r
- else if (k->type == STK_CALL_FRAME)\\r
- level--;\\r
- else if (k->type == STK_RETURN)\\r
- level++;\\r
- }\\r
-} while (0)\r
-\r
-#define STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(stype, sid, sval) do { \\r
- int level = 0;\\r
- StackType *k = stk;\\r
- while (k > stk_base) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID"); \\r
- if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\\r
- && k->zid == (sid)) {\\r
- if (level == 0) {\\r
- (sval) = k->u.val.v;\\r
- sprev = k->u.val.v2;\\r
- break;\\r
- }\\r
- }\\r
- else if (k->type == STK_CALL_FRAME)\\r
- level--;\\r
- else if (k->type == STK_RETURN)\\r
- level++;\\r
- }\\r
-} while (0)\r
-\r
-#define STACK_GET_SAVE_VAL_TYPE_LAST_ID_FROM(stype, sid, sval, stk_from) do { \\r
- int level = 0;\\r
- StackType *k = (stk_from);\\r
- while (k > stk_base) {\\r
- STACK_BASE_CHECK(k, "STACK_GET_SAVE_VAL_TYPE_LAST_ID_FROM"); \\r
- if (k->type == STK_SAVE_VAL && k->u.val.type == (stype)\\r
- && k->u.val.id == (sid)) {\\r
- if (level == 0) {\\r
- (sval) = k->u.val.v;\\r
- break;\\r
- }\\r
- }\\r
- else if (k->type == STK_CALL_FRAME)\\r
- level--;\\r
- else if (k->type == STK_RETURN)\\r
- level++;\\r
- k--;\\r
- }\\r
-} while (0)\r
-\r
-#define STACK_PUSH_CALLOUT_CONTENTS(anum, func) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_CALLOUT;\\r
- stk->zid = ONIG_NON_NAME_ID;\\r
- stk->u.callout.num = (anum);\\r
- stk->u.callout.func = (func);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#define STACK_PUSH_CALLOUT_NAME(aid, anum, func) do {\\r
- STACK_ENSURE(1);\\r
- stk->type = STK_CALLOUT;\\r
- stk->zid = (aid);\\r
- stk->u.callout.num = (anum);\\r
- stk->u.callout.func = (func);\\r
- STACK_INC;\\r
-} while(0)\r
-\r
-#ifdef ONIG_DEBUG\r
-#define STACK_BASE_CHECK(p, at) \\r
- if ((p) < stk_base) {\\r
- fprintf(stderr, "at %s\n", at);\\r
- goto stack_error;\\r
- }\r
-#else\r
-#define STACK_BASE_CHECK(p, at)\r
-#endif\r
-\r
-#define STACK_POP_ONE do {\\r
- stk--;\\r
- STACK_BASE_CHECK(stk, "STACK_POP_ONE"); \\r
-} while(0)\r
-\r
-\r
-#ifdef USE_CALLOUT\r
-#define POP_CALLOUT_CASE \\r
- else if (stk->type == STK_CALLOUT) {\\r
- RETRACTION_CALLOUT(stk->u.callout.func, stk->zid, stk->u.callout.num, msa->mp->callout_user_data);\\r
- }\r
-#else\r
-#define POP_CALLOUT_CASE\r
-#endif\r
-\r
-#define STACK_POP do {\\r
- switch (pop_level) {\\r
- case STACK_POP_LEVEL_FREE:\\r
- while (1) {\\r
- stk--;\\r
- STACK_BASE_CHECK(stk, "STACK_POP"); \\r
- if ((stk->type & STK_MASK_POP_USED) != 0) break;\\r
- }\\r
- break;\\r
- case STACK_POP_LEVEL_MEM_START:\\r
- while (1) {\\r
- stk--;\\r
- STACK_BASE_CHECK(stk, "STACK_POP 2"); \\r
- if ((stk->type & STK_MASK_POP_USED) != 0) break;\\r
- else if (stk->type == STK_MEM_START) {\\r
- mem_start_stk[stk->zid] = stk->u.mem.prev_start;\\r
- mem_end_stk[stk->zid] = stk->u.mem.prev_end;\\r
- }\\r
- }\\r
- break;\\r
- default:\\r
- while (1) {\\r
- stk--;\\r
- STACK_BASE_CHECK(stk, "STACK_POP 3"); \\r
- if ((stk->type & STK_MASK_POP_USED) != 0) break;\\r
- else if ((stk->type & STK_MASK_POP_HANDLED) != 0) {\\r
- if (stk->type == STK_MEM_START) {\\r
- mem_start_stk[stk->zid] = stk->u.mem.prev_start;\\r
- mem_end_stk[stk->zid] = stk->u.mem.prev_end;\\r
- }\\r
- else if (stk->type == STK_REPEAT_INC) {\\r
- STACK_AT(stk->u.repeat_inc.si)->u.repeat.count--;\\r
- }\\r
- else if (stk->type == STK_MEM_END) {\\r
- mem_start_stk[stk->zid] = stk->u.mem.prev_start;\\r
- mem_end_stk[stk->zid] = stk->u.mem.prev_end;\\r
- }\\r
- POP_CALLOUT_CASE\\r
- }\\r
- }\\r
- break;\\r
- }\\r
-} while(0)\r
-\r
-#define POP_TIL_BODY(aname, til_type) do {\\r
- while (1) {\\r
- stk--;\\r
- STACK_BASE_CHECK(stk, (aname));\\r
- if ((stk->type & STK_MASK_POP_HANDLED_TIL) != 0) {\\r
- if (stk->type == (til_type)) break;\\r
- else {\\r
- if (stk->type == STK_MEM_START) {\\r
- mem_start_stk[stk->zid] = stk->u.mem.prev_start;\\r
- mem_end_stk[stk->zid] = stk->u.mem.prev_end;\\r
- }\\r
- else if (stk->type == STK_REPEAT_INC) {\\r
- STACK_AT(stk->u.repeat_inc.si)->u.repeat.count--;\\r
- }\\r
- else if (stk->type == STK_MEM_END) {\\r
- mem_start_stk[stk->zid] = stk->u.mem.prev_start;\\r
- mem_end_stk[stk->zid] = stk->u.mem.prev_end;\\r
- }\\r
- /* Don't call callout here because negation of total success by (?!..) (?<!..) */\\r
- }\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_POP_TIL_ALT_PREC_READ_NOT do {\\r
- POP_TIL_BODY("STACK_POP_TIL_ALT_PREC_READ_NOT", STK_ALT_PREC_READ_NOT);\\r
-} while(0)\r
-\r
-#define STACK_POP_TIL_ALT_LOOK_BEHIND_NOT do {\\r
- POP_TIL_BODY("STACK_POP_TIL_ALT_LOOK_BEHIND_NOT", STK_ALT_LOOK_BEHIND_NOT);\\r
-} while(0)\r
-\r
-\r
-#define STACK_EXEC_TO_VOID(k) do {\\r
- k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_EXEC_TO_VOID"); \\r
- if (IS_TO_VOID_TARGET(k)) {\\r
- if (k->type == STK_TO_VOID_START) {\\r
- k->type = STK_VOID;\\r
- break;\\r
- }\\r
- k->type = STK_VOID;\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_GET_PREC_READ_START(k) do {\\r
- int level = 0;\\r
- k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_GET_PREC_READ_START");\\r
- if (IS_TO_VOID_TARGET(k)) {\\r
- k->type = STK_VOID;\\r
- }\\r
- else if (k->type == STK_PREC_READ_START) {\\r
- if (level == 0) {\\r
- break;\\r
- }\\r
- level--;\\r
- }\\r
- else if (k->type == STK_PREC_READ_END) {\\r
- level++;\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_EMPTY_CHECK(isnull,sid,s) do {\\r
- StackType* k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK"); \\r
- if (k->type == STK_EMPTY_CHECK_START) {\\r
- if (k->zid == (sid)) {\\r
- (isnull) = (k->u.empty_check.pstr == (s));\\r
- break;\\r
- }\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_MEM_START_GET_PREV_END_ADDR(k /* STK_MEM_START*/, reg, addr) do {\\r
- if (k->u.mem.prev_end == INVALID_STACK_INDEX) {\\r
- (addr) = 0;\\r
- }\\r
- else {\\r
- if (MEM_STATUS_AT((reg)->bt_mem_end, k->zid))\\r
- (addr) = STACK_AT(k->u.mem.prev_end)->u.mem.pstr;\\r
- else\\r
- (addr) = (UChar* )k->u.mem.prev_end;\\r
- }\\r
-} while (0)\r
-\r
-#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT\r
-#define STACK_EMPTY_CHECK_MEM(isnull,sid,s,reg) do {\\r
- StackType* k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_MEM"); \\r
- if (k->type == STK_EMPTY_CHECK_START) {\\r
- if (k->zid == (sid)) {\\r
- if (k->u.empty_check.pstr != (s)) {\\r
- (isnull) = 0;\\r
- break;\\r
- }\\r
- else {\\r
- UChar* endp;\\r
- int level = 0;\\r
- (isnull) = 1;\\r
- while (k < stk) {\\r
- if (k->type == STK_MEM_START && level == 0) {\\r
- STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\\r
- if (endp == 0) {\\r
- (isnull) = 0; break;\\r
- }\\r
- else if (STACK_AT(k->u.mem.prev_start)->u.mem.pstr != endp) {\\r
- (isnull) = 0; break;\\r
- }\\r
- else if (endp != s) {\\r
- (isnull) = -1; /* empty, but position changed */ \\r
- }\\r
- }\\r
- else if (k->type == STK_PREC_READ_START) {\\r
- level++;\\r
- }\\r
- else if (k->type == STK_PREC_READ_END) {\\r
- level--;\\r
- }\\r
- k++;\\r
- }\\r
- break;\\r
- }\\r
- }\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_EMPTY_CHECK_MEM_REC(isnull,sid,s,reg) do {\\r
- int level = 0;\\r
- StackType* k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_MEM_REC");\\r
- if (k->type == STK_EMPTY_CHECK_START) {\\r
- if (k->zid == (sid)) {\\r
- if (level == 0) {\\r
- if (k->u.empty_check.pstr != (s)) {\\r
- (isnull) = 0;\\r
- break;\\r
- }\\r
- else {\\r
- UChar* endp;\\r
- int prec_level = 0;\\r
- (isnull) = 1;\\r
- while (k < stk) {\\r
- if (k->type == STK_MEM_START) {\\r
- if (level == 0 && prec_level == 0) {\\r
- STACK_MEM_START_GET_PREV_END_ADDR(k, reg, endp);\\r
- if (endp == 0) {\\r
- (isnull) = 0; break;\\r
- }\\r
- else if (STACK_AT(k->u.mem.prev_start)->u.mem.pstr != endp) { \\r
- (isnull) = 0; break;\\r
- }\\r
- else if (endp != s) {\\r
- (isnull) = -1; /* empty, but position changed */\\r
- }\\r
- }\\r
- }\\r
- else if (k->type == STK_EMPTY_CHECK_START) {\\r
- if (k->zid == (sid)) level++;\\r
- }\\r
- else if (k->type == STK_EMPTY_CHECK_END) {\\r
- if (k->zid == (sid)) level--;\\r
- }\\r
- else if (k->type == STK_PREC_READ_START) {\\r
- prec_level++;\\r
- }\\r
- else if (k->type == STK_PREC_READ_END) {\\r
- prec_level--;\\r
- }\\r
- k++;\\r
- }\\r
- break;\\r
- }\\r
- }\\r
- else {\\r
- level--;\\r
- }\\r
- }\\r
- }\\r
- else if (k->type == STK_EMPTY_CHECK_END) {\\r
- if (k->zid == (sid)) level++;\\r
- }\\r
- }\\r
-} while(0)\r
-#else\r
-#define STACK_EMPTY_CHECK_REC(isnull,id,s) do {\\r
- int level = 0;\\r
- StackType* k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_EMPTY_CHECK_REC"); \\r
- if (k->type == STK_EMPTY_CHECK_START) {\\r
- if (k->u.empty_check.num == (id)) {\\r
- if (level == 0) {\\r
- (isnull) = (k->u.empty_check.pstr == (s));\\r
- break;\\r
- }\\r
- }\\r
- level--;\\r
- }\\r
- else if (k->type == STK_EMPTY_CHECK_END) {\\r
- level++;\\r
- }\\r
- }\\r
-} while(0)\r
-#endif /* USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT */\r
-\r
-#define STACK_GET_REPEAT(sid, k) do {\\r
- int level = 0;\\r
- k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_GET_REPEAT"); \\r
- if (k->type == STK_REPEAT) {\\r
- if (level == 0) {\\r
- if (k->zid == (sid)) {\\r
- break;\\r
- }\\r
- }\\r
- }\\r
- else if (k->type == STK_CALL_FRAME) level--;\\r
- else if (k->type == STK_RETURN) level++;\\r
- }\\r
-} while(0)\r
-\r
-#define STACK_RETURN(addr) do {\\r
- int level = 0;\\r
- StackType* k = stk;\\r
- while (1) {\\r
- k--;\\r
- STACK_BASE_CHECK(k, "STACK_RETURN"); \\r
- if (k->type == STK_CALL_FRAME) {\\r
- if (level == 0) {\\r
- (addr) = k->u.call_frame.ret_addr;\\r
- break;\\r
- }\\r
- else level--;\\r
- }\\r
- else if (k->type == STK_RETURN)\\r
- level++;\\r
- }\\r
-} while(0)\r
-\r
-\r
-#define STRING_CMP(s1,s2,len) do {\\r
- while (len-- > 0) {\\r
- if (*s1++ != *s2++) goto fail;\\r
- }\\r
-} while(0)\r
-\r
-#define STRING_CMP_IC(case_fold_flag,s1,ps2,len) do {\\r
- if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \\r
- goto fail; \\r
-} while(0)\r
-\r
-static int string_cmp_ic(OnigEncoding enc, int case_fold_flag,\r
- UChar* s1, UChar** ps2, int mblen)\r
-{\r
- UChar buf1[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
- UChar buf2[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
- UChar *p1, *p2, *end1, *s2, *end2;\r
- int len1, len2;\r
-\r
- s2 = *ps2;\r
- end1 = s1 + mblen;\r
- end2 = s2 + mblen;\r
- while (s1 < end1) {\r
- len1 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s1, end1, buf1);\r
- len2 = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &s2, end2, buf2);\r
- if (len1 != len2) return 0;\r
- p1 = buf1;\r
- p2 = buf2;\r
- while (len1-- > 0) {\r
- if (*p1 != *p2) return 0;\r
- p1++;\r
- p2++;\r
- }\r
- }\r
-\r
- *ps2 = s2;\r
- return 1;\r
-}\r
-\r
-#define STRING_CMP_VALUE(s1,s2,len,is_fail) do {\\r
- is_fail = 0;\\r
- while (len-- > 0) {\\r
- if (*s1++ != *s2++) {\\r
- is_fail = 1; break;\\r
- }\\r
- }\\r
-} while(0)\r
-\r
-#define STRING_CMP_VALUE_IC(case_fold_flag,s1,ps2,len,is_fail) do {\\r
- if (string_cmp_ic(encode, case_fold_flag, s1, ps2, len) == 0) \\r
- is_fail = 1; \\r
- else \\r
- is_fail = 0; \\r
-} while(0)\r
-\r
-\r
-#define IS_EMPTY_STR (str == end)\r
-#define ON_STR_BEGIN(s) ((s) == str)\r
-#define ON_STR_END(s) ((s) == end)\r
-#define DATA_ENSURE_CHECK1 (s < right_range)\r
-#define DATA_ENSURE_CHECK(n) (s + (n) <= right_range)\r
-#define DATA_ENSURE(n) if (s + (n) > right_range) goto fail\r
-\r
-#define INIT_RIGHT_RANGE right_range = (UChar* )in_right_range\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
-static int\r
-make_capture_history_tree(OnigCaptureTreeNode* node, StackType** kp,\r
- StackType* stk_top, UChar* str, regex_t* reg)\r
-{\r
- int n, r;\r
- OnigCaptureTreeNode* child;\r
- StackType* k = *kp;\r
-\r
- while (k < stk_top) {\r
- if (k->type == STK_MEM_START) {\r
- n = k->zid;\r
- if (n <= ONIG_MAX_CAPTURE_HISTORY_GROUP &&\r
- MEM_STATUS_AT(reg->capture_history, n) != 0) {\r
- child = history_node_new();\r
- CHECK_NULL_RETURN_MEMERR(child);\r
- child->group = n;\r
- child->beg = (int )(k->u.mem.pstr - str);\r
- r = history_tree_add_child(node, child);\r
- if (r != 0) return r;\r
- *kp = (k + 1);\r
- r = make_capture_history_tree(child, kp, stk_top, str, reg);\r
- if (r != 0) return r;\r
-\r
- k = *kp;\r
- child->end = (int )(k->u.mem.pstr - str);\r
- }\r
- }\r
- else if (k->type == STK_MEM_END) {\r
- if (k->zid == node->group) {\r
- node->end = (int )(k->u.mem.pstr - str);\r
- *kp = k;\r
- return 0;\r
- }\r
- }\r
- k++;\r
- }\r
-\r
- return 1; /* 1: root node ending. */\r
-}\r
-#endif\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
-static int mem_is_in_memp(int mem, int num, MemNumType* memp)\r
-{\r
- int i;\r
-\r
- for (i = 0; i < num; i++) {\r
- if (mem == (int )memp[i]) return 1;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-backref_match_at_nested_level(regex_t* reg,\r
- StackType* top, StackType* stk_base,\r
- int ignore_case, int case_fold_flag,\r
- int nest, int mem_num, MemNumType* memp,\r
- UChar** s, const UChar* send)\r
-{\r
- UChar *ss, *p, *pstart, *pend = NULL_UCHARP;\r
- int level;\r
- StackType* k;\r
-\r
- level = 0;\r
- k = top;\r
- k--;\r
- while (k >= stk_base) {\r
- if (k->type == STK_CALL_FRAME) {\r
- level--;\r
- }\r
- else if (k->type == STK_RETURN) {\r
- level++;\r
- }\r
- else if (level == nest) {\r
- if (k->type == STK_MEM_START) {\r
- if (mem_is_in_memp(k->zid, mem_num, memp)) {\r
- pstart = k->u.mem.pstr;\r
- if (IS_NOT_NULL(pend)) {\r
- if (pend - pstart > send - *s) return 0; /* or goto next_mem; */\r
- p = pstart;\r
- ss = *s;\r
-\r
- if (ignore_case != 0) {\r
- if (string_cmp_ic(reg->enc, case_fold_flag,\r
- pstart, &ss, (int )(pend - pstart)) == 0)\r
- return 0; /* or goto next_mem; */\r
- }\r
- else {\r
- while (p < pend) {\r
- if (*p++ != *ss++) return 0; /* or goto next_mem; */\r
- }\r
- }\r
-\r
- *s = ss;\r
- return 1;\r
- }\r
- }\r
- }\r
- else if (k->type == STK_MEM_END) {\r
- if (mem_is_in_memp(k->zid, mem_num, memp)) {\r
- pend = k->u.mem.pstr;\r
- }\r
- }\r
- }\r
- k--;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-backref_check_at_nested_level(regex_t* reg,\r
- StackType* top, StackType* stk_base,\r
- int nest, int mem_num, MemNumType* memp)\r
-{\r
- int level;\r
- StackType* k;\r
-\r
- level = 0;\r
- k = top;\r
- k--;\r
- while (k >= stk_base) {\r
- if (k->type == STK_CALL_FRAME) {\r
- level--;\r
- }\r
- else if (k->type == STK_RETURN) {\r
- level++;\r
- }\r
- else if (level == nest) {\r
- if (k->type == STK_MEM_END) {\r
- if (mem_is_in_memp(k->zid, mem_num, memp)) {\r
- return 1;\r
- }\r
- }\r
- }\r
- k--;\r
- }\r
-\r
- return 0;\r
-}\r
-#endif /* USE_BACKREF_WITH_LEVEL */\r
-\r
-\r
-#ifdef ONIG_DEBUG_STATISTICS\r
-\r
-#define USE_TIMEOFDAY\r
-\r
-#ifdef USE_TIMEOFDAY\r
-#ifdef HAVE_SYS_TIME_H\r
-#include <sys/time.h>\r
-#endif\r
-#ifdef HAVE_UNISTD_H\r
-#include <unistd.h>\r
-#endif\r
-static struct timeval ts, te;\r
-#define GETTIME(t) gettimeofday(&(t), (struct timezone* )0)\r
-#define TIMEDIFF(te,ts) (((te).tv_usec - (ts).tv_usec) + \\r
- (((te).tv_sec - (ts).tv_sec)*1000000))\r
-#else\r
-#ifdef HAVE_SYS_TIMES_H\r
-#include <sys/times.h>\r
-#endif\r
-static struct tms ts, te;\r
-#define GETTIME(t) times(&(t))\r
-#define TIMEDIFF(te,ts) ((te).tms_utime - (ts).tms_utime)\r
-#endif\r
-\r
-static int OpCounter[256];\r
-static int OpPrevCounter[256];\r
-static unsigned long OpTime[256];\r
-static int OpCurr = OP_FINISH;\r
-static int OpPrevTarget = OP_FAIL;\r
-static int MaxStackDepth = 0;\r
-\r
-#define SOP_IN(opcode) do {\\r
- if (opcode == OpPrevTarget) OpPrevCounter[OpCurr]++;\\r
- OpCurr = opcode;\\r
- OpCounter[opcode]++;\\r
- GETTIME(ts);\\r
-} while(0)\r
-\r
-#define SOP_OUT do {\\r
- GETTIME(te);\\r
- OpTime[OpCurr] += TIMEDIFF(te, ts);\\r
-} while(0)\r
-\r
-extern void\r
-onig_statistics_init(void)\r
-{\r
- int i;\r
- for (i = 0; i < 256; i++) {\r
- OpCounter[i] = OpPrevCounter[i] = 0; OpTime[i] = 0;\r
- }\r
- MaxStackDepth = 0;\r
-}\r
-\r
-extern int\r
-onig_print_statistics(FILE* f)\r
-{\r
- int r;\r
- int i;\r
-\r
- r = fprintf(f, " count prev time\n");\r
- if (r < 0) return -1;\r
-\r
- for (i = 0; OpInfo[i].opcode >= 0; i++) {\r
- r = fprintf(f, "%8d: %8d: %10ld: %s\n",\r
- OpCounter[i], OpPrevCounter[i], OpTime[i], OpInfo[i].name);\r
- if (r < 0) return -1;\r
- }\r
- r = fprintf(f, "\nmax stack depth: %d\n", MaxStackDepth);\r
- if (r < 0) return -1;\r
-\r
- return 0;\r
-}\r
-\r
-#define STACK_INC do {\\r
- stk++;\\r
- if (stk - stk_base > MaxStackDepth) \\r
- MaxStackDepth = stk - stk_base;\\r
-} while(0)\r
-\r
-#else\r
-#define STACK_INC stk++\r
-\r
-#define SOP_IN(opcode)\r
-#define SOP_OUT\r
-#endif\r
-\r
-\r
-/* matching region of POSIX API */\r
-typedef int regoff_t;\r
-\r
-typedef struct {\r
- regoff_t rm_so;\r
- regoff_t rm_eo;\r
-} posix_regmatch_t;\r
-\r
-\r
-\r
-#ifdef USE_THREADED_CODE\r
-\r
-#define BYTECODE_INTERPRETER_START GOTO_OP;\r
-#define BYTECODE_INTERPRETER_END\r
-#define CASE_OP(x) L_##x: SOP_IN(OP_##x); sbegin = s; MATCH_DEBUG_OUT(0)\r
-#define DEFAULT_OP /* L_DEFAULT: */\r
-#define NEXT_OP sprev = sbegin; JUMP_OP\r
-#define JUMP_OP GOTO_OP\r
-#ifdef USE_DIRECT_THREADED_CODE\r
-#define GOTO_OP goto *(p->opaddr)\r
-#else\r
-#define GOTO_OP goto *opcode_to_label[p->opcode]\r
-#endif\r
-#define BREAK_OP /* Nothing */\r
-\r
-#else\r
-\r
-#define BYTECODE_INTERPRETER_START \\r
- while (1) {\\r
- MATCH_DEBUG_OUT(0)\\r
- sbegin = s;\\r
- switch (p->opcode) {\r
-#define BYTECODE_INTERPRETER_END } sprev = sbegin; }\r
-#define CASE_OP(x) case OP_##x: SOP_IN(OP_##x);\r
-#define DEFAULT_OP default:\r
-#define NEXT_OP break\r
-#define JUMP_OP GOTO_OP\r
-#define GOTO_OP continue; break\r
-#define BREAK_OP break\r
-\r
-#endif /* USE_THREADED_CODE */\r
-\r
-#define INC_OP p++\r
-#define NEXT_OUT SOP_OUT; NEXT_OP\r
-#define JUMP_OUT SOP_OUT; JUMP_OP\r
-#define BREAK_OUT SOP_OUT; BREAK_OP\r
-#define CHECK_INTERRUPT_JUMP_OUT SOP_OUT; CHECK_INTERRUPT_IN_MATCH; JUMP_OP\r
-\r
-\r
-#ifdef ONIG_DEBUG_MATCH\r
-#define MATCH_DEBUG_OUT(offset) do {\\r
- Operation *xp;\\r
- UChar *q, *bp, buf[50];\\r
- int len, spos;\\r
- spos = IS_NOT_NULL(s) ? (int )(s - str) : -1;\\r
- xp = p - (offset);\\r
- fprintf(stderr, "%7u: %7ld: %4d> \"",\\r
- counter, GET_STACK_INDEX(stk), spos);\\r
- counter++;\\r
- bp = buf;\\r
- if (IS_NOT_NULL(s)) {\\r
- for (i = 0, q = s; i < 7 && q < end; i++) {\\r
- len = enclen(encode, q);\\r
- while (len-- > 0) *bp++ = *q++;\\r
- }\\r
- if (q < end) { xmemcpy(bp, "...\"", 4); bp += 4; }\\r
- else { xmemcpy(bp, "\"", 1); bp += 1; }\\r
- }\\r
- else {\\r
- xmemcpy(bp, "\"", 1); bp += 1;\\r
- }\\r
- *bp = 0;\\r
- fputs((char* )buf, stderr);\\r
- for (i = 0; i < 20 - (bp - buf); i++) fputc(' ', stderr);\\r
- if (xp == FinishCode)\\r
- fprintf(stderr, "----: finish");\\r
- else {\\r
- fprintf(stderr, "%4d: ", (int )(xp - reg->ops));\\r
- print_compiled_byte_code(stderr, reg, (int )(xp - reg->ops), reg->ops, encode);\\r
- }\\r
- fprintf(stderr, "\n");\\r
- } while(0);\r
-#else\r
-#define MATCH_DEBUG_OUT(offset)\r
-#endif\r
-\r
-\r
-/* match data(str - end) from position (sstart). */\r
-/* if sstart == str then set sprev to NULL. */\r
-static int\r
-match_at(regex_t* reg, const UChar* str, const UChar* end,\r
- const UChar* in_right_range, const UChar* sstart, UChar* sprev,\r
- MatchArg* msa)\r
-{\r
-\r
-#if defined(USE_DIRECT_THREADED_CODE)\r
- static Operation FinishCode[] = { { .opaddr=&&L_FINISH } };\r
-#else\r
- static Operation FinishCode[] = { { OP_FINISH } };\r
-#endif\r
-\r
-#ifdef USE_THREADED_CODE\r
- static const void *opcode_to_label[] = {\r
- &&L_FINISH,\r
- &&L_END,\r
- &&L_EXACT1,\r
- &&L_EXACT2,\r
- &&L_EXACT3,\r
- &&L_EXACT4,\r
- &&L_EXACT5,\r
- &&L_EXACTN,\r
- &&L_EXACTMB2N1,\r
- &&L_EXACTMB2N2,\r
- &&L_EXACTMB2N3,\r
- &&L_EXACTMB2N,\r
- &&L_EXACTMB3N,\r
- &&L_EXACTMBN,\r
- &&L_EXACT1_IC,\r
- &&L_EXACTN_IC,\r
- &&L_CCLASS,\r
- &&L_CCLASS_MB,\r
- &&L_CCLASS_MIX,\r
- &&L_CCLASS_NOT,\r
- &&L_CCLASS_MB_NOT,\r
- &&L_CCLASS_MIX_NOT,\r
- &&L_ANYCHAR,\r
- &&L_ANYCHAR_ML,\r
- &&L_ANYCHAR_STAR,\r
- &&L_ANYCHAR_ML_STAR,\r
- &&L_ANYCHAR_STAR_PEEK_NEXT,\r
- &&L_ANYCHAR_ML_STAR_PEEK_NEXT,\r
- &&L_WORD,\r
- &&L_WORD_ASCII,\r
- &&L_NO_WORD,\r
- &&L_NO_WORD_ASCII,\r
- &&L_WORD_BOUNDARY,\r
- &&L_NO_WORD_BOUNDARY,\r
- &&L_WORD_BEGIN,\r
- &&L_WORD_END,\r
- &&L_TEXT_SEGMENT_BOUNDARY,\r
- &&L_BEGIN_BUF,\r
- &&L_END_BUF,\r
- &&L_BEGIN_LINE,\r
- &&L_END_LINE,\r
- &&L_SEMI_END_BUF,\r
- &&L_BEGIN_POSITION,\r
- &&L_BACKREF1,\r
- &&L_BACKREF2,\r
- &&L_BACKREF_N,\r
- &&L_BACKREF_N_IC,\r
- &&L_BACKREF_MULTI,\r
- &&L_BACKREF_MULTI_IC,\r
- &&L_BACKREF_WITH_LEVEL,\r
- &&L_BACKREF_WITH_LEVEL_IC,\r
- &&L_BACKREF_CHECK,\r
- &&L_BACKREF_CHECK_WITH_LEVEL,\r
- &&L_MEMORY_START,\r
- &&L_MEMORY_START_PUSH,\r
- &&L_MEMORY_END_PUSH,\r
- &&L_MEMORY_END_PUSH_REC,\r
- &&L_MEMORY_END,\r
- &&L_MEMORY_END_REC,\r
- &&L_FAIL,\r
- &&L_JUMP,\r
- &&L_PUSH,\r
- &&L_PUSH_SUPER,\r
- &&L_POP_OUT,\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- &&L_PUSH_OR_JUMP_EXACT1,\r
-#endif\r
- &&L_PUSH_IF_PEEK_NEXT,\r
- &&L_REPEAT,\r
- &&L_REPEAT_NG,\r
- &&L_REPEAT_INC,\r
- &&L_REPEAT_INC_NG,\r
- &&L_REPEAT_INC_SG,\r
- &&L_REPEAT_INC_NG_SG,\r
- &&L_EMPTY_CHECK_START,\r
- &&L_EMPTY_CHECK_END,\r
- &&L_EMPTY_CHECK_END_MEMST,\r
- &&L_EMPTY_CHECK_END_MEMST_PUSH,\r
- &&L_PREC_READ_START,\r
- &&L_PREC_READ_END,\r
- &&L_PREC_READ_NOT_START,\r
- &&L_PREC_READ_NOT_END,\r
- &&L_ATOMIC_START,\r
- &&L_ATOMIC_END,\r
- &&L_LOOK_BEHIND,\r
- &&L_LOOK_BEHIND_NOT_START,\r
- &&L_LOOK_BEHIND_NOT_END,\r
- &&L_CALL,\r
- &&L_RETURN,\r
- &&L_PUSH_SAVE_VAL,\r
- &&L_UPDATE_VAR,\r
-#ifdef USE_CALLOUT\r
- &&L_CALLOUT_CONTENTS,\r
- &&L_CALLOUT_NAME,\r
-#endif\r
- };\r
-#endif\r
-\r
- int i, n, num_mem, best_len, pop_level;\r
- LengthType tlen, tlen2;\r
- MemNumType mem;\r
- RelAddrType addr;\r
- UChar *s, *q, *ps, *sbegin;\r
- UChar *right_range;\r
- int is_alloca;\r
- char *alloc_base;\r
- StackType *stk_base, *stk, *stk_end;\r
- StackType *stkp; /* used as any purpose. */\r
- StackIndex si;\r
- StackIndex *repeat_stk;\r
- StackIndex *mem_start_stk, *mem_end_stk;\r
- UChar* keep;\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- unsigned long retry_limit_in_match;\r
- unsigned long retry_in_match_counter;\r
-#endif\r
-\r
-#ifdef USE_CALLOUT\r
- int of;\r
-#endif\r
-\r
- Operation* p = reg->ops;\r
- OnigOptionType option = reg->options;\r
- OnigEncoding encode = reg->enc;\r
- OnigCaseFoldType case_fold_flag = reg->case_fold_flag;\r
-\r
-#ifdef ONIG_DEBUG_MATCH\r
- static unsigned int counter = 1;\r
-#endif\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- if (IS_NULL(msa)) {\r
- for (i = 0; i < reg->ops_used; i++) {\r
- const void* addr;\r
- addr = opcode_to_label[reg->ocs[i]];\r
- p->opaddr = addr;\r
- p++;\r
- }\r
- return ONIG_NORMAL;\r
- }\r
-#endif\r
-\r
-#ifdef USE_CALLOUT\r
- msa->mp->match_at_call_counter++;\r
-#endif\r
-\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- retry_limit_in_match = msa->retry_limit_in_match;\r
-#endif\r
-\r
- pop_level = reg->stack_pop_level;\r
- num_mem = reg->num_mem;\r
- STACK_INIT(INIT_MATCH_STACK_SIZE);\r
- UPDATE_FOR_STACK_REALLOC;\r
- for (i = 1; i <= num_mem; i++) {\r
- mem_start_stk[i] = mem_end_stk[i] = INVALID_STACK_INDEX;\r
- }\r
-\r
-#ifdef ONIG_DEBUG_MATCH\r
- fprintf(stderr, "match_at: str: %p, end: %p, start: %p, sprev: %p\n",\r
- str, end, sstart, sprev);\r
- fprintf(stderr, "size: %d, start offset: %d\n",\r
- (int )(end - str), (int )(sstart - str));\r
-#endif\r
-\r
- best_len = ONIG_MISMATCH;\r
- keep = s = (UChar* )sstart;\r
- STACK_PUSH_BOTTOM(STK_ALT, FinishCode); /* bottom stack */\r
- INIT_RIGHT_RANGE;\r
-\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- retry_in_match_counter = 0;\r
-#endif\r
-\r
- BYTECODE_INTERPRETER_START {\r
- CASE_OP(END)\r
- n = (int )(s - sstart);\r
- if (n > best_len) {\r
- OnigRegion* region;\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
- if (IS_FIND_LONGEST(option)) {\r
- if (n > msa->best_len) {\r
- msa->best_len = n;\r
- msa->best_s = (UChar* )sstart;\r
- }\r
- else\r
- goto end_best_len;\r
- }\r
-#endif\r
- best_len = n;\r
- region = msa->region;\r
- if (region) {\r
- if (keep > s) keep = s;\r
-\r
-#ifdef USE_POSIX_API_REGION_OPTION\r
- if (IS_POSIX_REGION(msa->options)) {\r
- posix_regmatch_t* rmt = (posix_regmatch_t* )region;\r
-\r
- rmt[0].rm_so = (regoff_t )(keep - str);\r
- rmt[0].rm_eo = (regoff_t )(s - str);\r
- for (i = 1; i <= num_mem; i++) {\r
- if (mem_end_stk[i] != INVALID_STACK_INDEX) {\r
- if (MEM_STATUS_AT(reg->bt_mem_start, i))\r
- rmt[i].rm_so = (regoff_t )(STACK_AT(mem_start_stk[i])->u.mem.pstr - str);\r
- else\r
- rmt[i].rm_so = (regoff_t )((UChar* )((void* )(mem_start_stk[i])) - str);\r
-\r
- rmt[i].rm_eo = (regoff_t )((MEM_STATUS_AT(reg->bt_mem_end, i)\r
- ? STACK_AT(mem_end_stk[i])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[i]))\r
- - str);\r
- }\r
- else {\r
- rmt[i].rm_so = rmt[i].rm_eo = ONIG_REGION_NOTPOS;\r
- }\r
- }\r
- }\r
- else {\r
-#endif /* USE_POSIX_API_REGION_OPTION */\r
- region->beg[0] = (int )(keep - str);\r
- region->end[0] = (int )(s - str);\r
- for (i = 1; i <= num_mem; i++) {\r
- if (mem_end_stk[i] != INVALID_STACK_INDEX) {\r
- if (MEM_STATUS_AT(reg->bt_mem_start, i))\r
- region->beg[i] = (int )(STACK_AT(mem_start_stk[i])->u.mem.pstr - str);\r
- else\r
- region->beg[i] = (int )((UChar* )((void* )mem_start_stk[i]) - str);\r
-\r
- region->end[i] = (int )((MEM_STATUS_AT(reg->bt_mem_end, i)\r
- ? STACK_AT(mem_end_stk[i])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[i])) - str);\r
- }\r
- else {\r
- region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS;\r
- }\r
- }\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
- if (reg->capture_history != 0) {\r
- int r;\r
- OnigCaptureTreeNode* node;\r
-\r
- if (IS_NULL(region->history_root)) {\r
- region->history_root = node = history_node_new();\r
- CHECK_NULL_RETURN_MEMERR(node);\r
- }\r
- else {\r
- node = region->history_root;\r
- history_tree_clear(node);\r
- }\r
-\r
- node->group = 0;\r
- node->beg = (int )(keep - str);\r
- node->end = (int )(s - str);\r
-\r
- stkp = stk_base;\r
- r = make_capture_history_tree(region->history_root, &stkp,\r
- stk, (UChar* )str, reg);\r
- if (r < 0) {\r
- best_len = r; /* error code */\r
- goto finish;\r
- }\r
- }\r
-#endif /* USE_CAPTURE_HISTORY */\r
-#ifdef USE_POSIX_API_REGION_OPTION\r
- } /* else IS_POSIX_REGION() */\r
-#endif\r
- } /* if (region) */\r
- } /* n > best_len */\r
-\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
- end_best_len:\r
-#endif\r
- SOP_OUT;\r
-\r
- if (IS_FIND_CONDITION(option)) {\r
- if (IS_FIND_NOT_EMPTY(option) && s == sstart) {\r
- best_len = ONIG_MISMATCH;\r
- goto fail; /* for retry */\r
- }\r
- if (IS_FIND_LONGEST(option) && DATA_ENSURE_CHECK1) {\r
- goto fail; /* for retry */\r
- }\r
- }\r
-\r
- /* default behavior: return first-matching result. */\r
- goto finish;\r
-\r
- CASE_OP(EXACT1)\r
- DATA_ENSURE(1);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- s++;\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(EXACT1_IC)\r
- {\r
- int len;\r
- UChar *q, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
-\r
- DATA_ENSURE(1);\r
- len = ONIGENC_MBC_CASE_FOLD(encode,\r
- /* DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag), */\r
- case_fold_flag,\r
- &s, end, lowbuf);\r
- DATA_ENSURE(0);\r
- q = lowbuf;\r
- ps = p->exact.s;\r
- while (len-- > 0) {\r
- if (*ps != *q) goto fail;\r
- ps++; q++;\r
- }\r
- }\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(EXACT2)\r
- DATA_ENSURE(2);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- sprev = s;\r
- s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACT3)\r
- DATA_ENSURE(3);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- sprev = s;\r
- s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACT4)\r
- DATA_ENSURE(4);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- sprev = s;\r
- s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACT5)\r
- DATA_ENSURE(5);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- sprev = s;\r
- s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTN)\r
- tlen = p->exact_n.n;\r
- DATA_ENSURE(tlen);\r
- ps = p->exact_n.s;\r
- while (tlen-- > 0) {\r
- if (*ps++ != *s++) goto fail;\r
- }\r
- sprev = s - 1;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTN_IC)\r
- {\r
- int len;\r
- UChar *q, *endp, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
-\r
- tlen = p->exact_n.n;\r
- ps = p->exact_n.s;\r
- endp = ps + tlen;\r
- while (ps < endp) {\r
- sprev = s;\r
- DATA_ENSURE(1);\r
- len = ONIGENC_MBC_CASE_FOLD(encode,\r
- /* DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag), */\r
- case_fold_flag,\r
- &s, end, lowbuf);\r
- DATA_ENSURE(0);\r
- q = lowbuf;\r
- while (len-- > 0) {\r
- if (*ps != *q) goto fail;\r
- ps++; q++;\r
- }\r
- }\r
- }\r
-\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTMB2N1)\r
- DATA_ENSURE(2);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- s++;\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(EXACTMB2N2)\r
- DATA_ENSURE(4);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- sprev = s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTMB2N3)\r
- DATA_ENSURE(6);\r
- ps = p->exact.s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- sprev = s;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTMB2N)\r
- tlen = p->exact_n.n;\r
- DATA_ENSURE(tlen * 2);\r
- ps = p->exact_n.s;\r
- while (tlen-- > 0) {\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- }\r
- sprev = s - 2;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTMB3N)\r
- tlen = p->exact_n.n;\r
- DATA_ENSURE(tlen * 3);\r
- ps = p->exact_n.s;\r
- while (tlen-- > 0) {\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- }\r
- sprev = s - 3;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EXACTMBN)\r
- tlen = p->exact_len_n.len; /* mb byte len */\r
- tlen2 = p->exact_len_n.n; /* number of chars */\r
- tlen2 *= tlen;\r
- DATA_ENSURE(tlen2);\r
- ps = p->exact_len_n.s;\r
- while (tlen2-- > 0) {\r
- if (*ps != *s) goto fail;\r
- ps++; s++;\r
- }\r
- sprev = s - tlen;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(CCLASS)\r
- DATA_ENSURE(1);\r
- if (BITSET_AT(p->cclass.bsp, *s) == 0) goto fail;\r
- s++;\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(CCLASS_MB)\r
- DATA_ENSURE(1);\r
- if (! ONIGENC_IS_MBC_HEAD(encode, s)) goto fail;\r
-\r
- cclass_mb:\r
- {\r
- OnigCodePoint code;\r
- UChar *ss;\r
- int mb_len;\r
-\r
- DATA_ENSURE(1);\r
- mb_len = enclen(encode, s);\r
- DATA_ENSURE(mb_len);\r
- ss = s;\r
- s += mb_len;\r
- code = ONIGENC_MBC_TO_CODE(encode, ss, s);\r
- if (! onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail;\r
- }\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(CCLASS_MIX)\r
- DATA_ENSURE(1);\r
- if (ONIGENC_IS_MBC_HEAD(encode, s)) {\r
- goto cclass_mb;\r
- }\r
- else {\r
- if (BITSET_AT(p->cclass_mix.bsp, *s) == 0)\r
- goto fail;\r
-\r
- s++;\r
- }\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(CCLASS_NOT)\r
- DATA_ENSURE(1);\r
- if (BITSET_AT(p->cclass.bsp, *s) != 0) goto fail;\r
- s += enclen(encode, s);\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(CCLASS_MB_NOT)\r
- DATA_ENSURE(1);\r
- if (! ONIGENC_IS_MBC_HEAD(encode, s)) {\r
- s++;\r
- goto cc_mb_not_success;\r
- }\r
-\r
- cclass_mb_not:\r
- {\r
- OnigCodePoint code;\r
- UChar *ss;\r
- int mb_len = enclen(encode, s);\r
-\r
- if (! DATA_ENSURE_CHECK(mb_len)) {\r
- DATA_ENSURE(1);\r
- s = (UChar* )end;\r
- goto cc_mb_not_success;\r
- }\r
-\r
- ss = s;\r
- s += mb_len;\r
- code = ONIGENC_MBC_TO_CODE(encode, ss, s);\r
- if (onig_is_in_code_range(p->cclass_mb.mb, code)) goto fail;\r
- }\r
-\r
- cc_mb_not_success:\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(CCLASS_MIX_NOT)\r
- DATA_ENSURE(1);\r
- if (ONIGENC_IS_MBC_HEAD(encode, s)) {\r
- goto cclass_mb_not;\r
- }\r
- else {\r
- if (BITSET_AT(p->cclass_mix.bsp, *s) != 0)\r
- goto fail;\r
-\r
- s++;\r
- }\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(ANYCHAR)\r
- DATA_ENSURE(1);\r
- n = enclen(encode, s);\r
- DATA_ENSURE(n);\r
- if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail;\r
- s += n;\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(ANYCHAR_ML)\r
- DATA_ENSURE(1);\r
- n = enclen(encode, s);\r
- DATA_ENSURE(n);\r
- s += n;\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(ANYCHAR_STAR)\r
- INC_OP;\r
- while (DATA_ENSURE_CHECK1) {\r
- STACK_PUSH_ALT(p, s, sprev);\r
- n = enclen(encode, s);\r
- DATA_ENSURE(n);\r
- if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail;\r
- sprev = s;\r
- s += n;\r
- }\r
- JUMP_OUT;\r
-\r
- CASE_OP(ANYCHAR_ML_STAR)\r
- INC_OP;\r
- while (DATA_ENSURE_CHECK1) {\r
- STACK_PUSH_ALT(p, s, sprev);\r
- n = enclen(encode, s);\r
- if (n > 1) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- s += n;\r
- }\r
- else {\r
- sprev = s;\r
- s++;\r
- }\r
- }\r
- JUMP_OUT;\r
-\r
- CASE_OP(ANYCHAR_STAR_PEEK_NEXT)\r
- {\r
- UChar c;\r
-\r
- c = p->anychar_star_peek_next.c;\r
- INC_OP;\r
- while (DATA_ENSURE_CHECK1) {\r
- if (c == *s) {\r
- STACK_PUSH_ALT(p, s, sprev);\r
- }\r
- n = enclen(encode, s);\r
- DATA_ENSURE(n);\r
- if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) goto fail;\r
- sprev = s;\r
- s += n;\r
- }\r
- }\r
- NEXT_OUT;\r
-\r
- CASE_OP(ANYCHAR_ML_STAR_PEEK_NEXT)\r
- {\r
- UChar c;\r
-\r
- c = p->anychar_star_peek_next.c;\r
- INC_OP;\r
- while (DATA_ENSURE_CHECK1) {\r
- if (c == *s) {\r
- STACK_PUSH_ALT(p, s, sprev);\r
- }\r
- n = enclen(encode, s);\r
- if (n > 1) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- s += n;\r
- }\r
- else {\r
- sprev = s;\r
- s++;\r
- }\r
- }\r
- }\r
- NEXT_OUT;\r
-\r
- CASE_OP(WORD)\r
- DATA_ENSURE(1);\r
- if (! ONIGENC_IS_MBC_WORD(encode, s, end))\r
- goto fail;\r
-\r
- s += enclen(encode, s);\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(WORD_ASCII)\r
- DATA_ENSURE(1);\r
- if (! ONIGENC_IS_MBC_WORD_ASCII(encode, s, end))\r
- goto fail;\r
-\r
- s += enclen(encode, s);\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(NO_WORD)\r
- DATA_ENSURE(1);\r
- if (ONIGENC_IS_MBC_WORD(encode, s, end))\r
- goto fail;\r
-\r
- s += enclen(encode, s);\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(NO_WORD_ASCII)\r
- DATA_ENSURE(1);\r
- if (ONIGENC_IS_MBC_WORD_ASCII(encode, s, end))\r
- goto fail;\r
-\r
- s += enclen(encode, s);\r
- INC_OP;\r
- NEXT_OUT;\r
-\r
- CASE_OP(WORD_BOUNDARY)\r
- {\r
- ModeType mode;\r
-\r
- mode = p->word_boundary.mode;\r
- if (ON_STR_BEGIN(s)) {\r
- DATA_ENSURE(1);\r
- if (! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode))\r
- goto fail;\r
- }\r
- else if (ON_STR_END(s)) {\r
- if (! IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode))\r
- goto fail;\r
- }\r
- else {\r
- if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)\r
- == IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode))\r
- goto fail;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(NO_WORD_BOUNDARY)\r
- {\r
- ModeType mode;\r
-\r
- mode = p->word_boundary.mode;\r
- if (ON_STR_BEGIN(s)) {\r
- if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode))\r
- goto fail;\r
- }\r
- else if (ON_STR_END(s)) {\r
- if (IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode))\r
- goto fail;\r
- }\r
- else {\r
- if (IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)\r
- != IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode))\r
- goto fail;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
-#ifdef USE_WORD_BEGIN_END\r
- CASE_OP(WORD_BEGIN)\r
- {\r
- ModeType mode;\r
-\r
- mode = p->word_boundary.mode;\r
- if (DATA_ENSURE_CHECK1 && IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) {\r
- if (ON_STR_BEGIN(s) || !IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- }\r
- }\r
- goto fail;\r
-\r
- CASE_OP(WORD_END)\r
- {\r
- ModeType mode;\r
-\r
- mode = p->word_boundary.mode;\r
- if (!ON_STR_BEGIN(s) && IS_MBC_WORD_ASCII_MODE(encode, sprev, end, mode)) {\r
- if (ON_STR_END(s) || ! IS_MBC_WORD_ASCII_MODE(encode, s, end, mode)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- }\r
- }\r
- goto fail;\r
-#endif\r
-\r
- CASE_OP(TEXT_SEGMENT_BOUNDARY)\r
- {\r
- int is_break;\r
-\r
- switch (p->text_segment_boundary.type) {\r
- case EXTENDED_GRAPHEME_CLUSTER_BOUNDARY:\r
- is_break = onigenc_egcb_is_break_position(encode, s, sprev, str, end);\r
- break;\r
-#ifdef USE_UNICODE_WORD_BREAK\r
- case WORD_BOUNDARY:\r
- is_break = onigenc_wb_is_break_position(encode, s, sprev, str, end);\r
- break;\r
-#endif\r
- default:\r
- goto bytecode_error;\r
- break;\r
- }\r
-\r
- if (p->text_segment_boundary.not != 0)\r
- is_break = ! is_break;\r
-\r
- if (is_break != 0) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- else {\r
- goto fail;\r
- }\r
- }\r
-\r
- CASE_OP(BEGIN_BUF)\r
- if (! ON_STR_BEGIN(s)) goto fail;\r
-\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(END_BUF)\r
- if (! ON_STR_END(s)) goto fail;\r
-\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(BEGIN_LINE)\r
- if (ON_STR_BEGIN(s)) {\r
- if (IS_NOTBOL(msa->options)) goto fail;\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- else if (ONIGENC_IS_MBC_NEWLINE(encode, sprev, end) && !ON_STR_END(s)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- goto fail;\r
-\r
- CASE_OP(END_LINE)\r
- if (ON_STR_END(s)) {\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) {\r
-#endif\r
- if (IS_NOTEOL(msa->options)) goto fail;\r
- INC_OP;\r
- JUMP_OUT;\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- }\r
-#endif\r
- }\r
- else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
- else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
-#endif\r
- goto fail;\r
-\r
- CASE_OP(SEMI_END_BUF)\r
- if (ON_STR_END(s)) {\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- if (IS_EMPTY_STR || !ONIGENC_IS_MBC_NEWLINE(encode, sprev, end)) {\r
-#endif\r
- if (IS_NOTEOL(msa->options)) goto fail;\r
- INC_OP;\r
- JUMP_OUT;\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- }\r
-#endif\r
- }\r
- else if (ONIGENC_IS_MBC_NEWLINE(encode, s, end) &&\r
- ON_STR_END(s + enclen(encode, s))) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
- else if (ONIGENC_IS_MBC_CRNL(encode, s, end)) {\r
- UChar* ss = s + enclen(encode, s);\r
- ss += enclen(encode, ss);\r
- if (ON_STR_END(ss)) {\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- }\r
-#endif\r
- goto fail;\r
-\r
- CASE_OP(BEGIN_POSITION)\r
- if (s != msa->start)\r
- goto fail;\r
-\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(MEMORY_START_PUSH)\r
- mem = p->memory_start.num;\r
- STACK_PUSH_MEM_START(mem, s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(MEMORY_START)\r
- mem = p->memory_start.num;\r
- mem_start_stk[mem] = (StackIndex )((void* )s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(MEMORY_END_PUSH)\r
- mem = p->memory_end.num;\r
- STACK_PUSH_MEM_END(mem, s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(MEMORY_END)\r
- mem = p->memory_end.num;\r
- mem_end_stk[mem] = (StackIndex )((void* )s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
-#ifdef USE_CALL\r
- CASE_OP(MEMORY_END_PUSH_REC)\r
- mem = p->memory_end.num;\r
- STACK_GET_MEM_START(mem, stkp); /* should be before push mem-end. */\r
- si = GET_STACK_INDEX(stkp);\r
- STACK_PUSH_MEM_END(mem, s);\r
- mem_start_stk[mem] = si;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(MEMORY_END_REC)\r
- mem = p->memory_end.num;\r
- mem_end_stk[mem] = (StackIndex )((void* )s);\r
- STACK_GET_MEM_START(mem, stkp);\r
-\r
- if (MEM_STATUS_AT(reg->bt_mem_start, mem))\r
- mem_start_stk[mem] = GET_STACK_INDEX(stkp);\r
- else\r
- mem_start_stk[mem] = (StackIndex )((void* )stkp->u.mem.pstr);\r
-\r
- STACK_PUSH_MEM_END_MARK(mem);\r
- INC_OP;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(BACKREF1)\r
- mem = 1;\r
- goto backref;\r
-\r
- CASE_OP(BACKREF2)\r
- mem = 2;\r
- goto backref;\r
-\r
- CASE_OP(BACKREF_N)\r
- mem = p->backref_n.n1;\r
- backref:\r
- {\r
- int len;\r
- UChar *pstart, *pend;\r
-\r
- if (mem_end_stk[mem] == INVALID_STACK_INDEX) goto fail;\r
- if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail;\r
-\r
- if (MEM_STATUS_AT(reg->bt_mem_start, mem))\r
- pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr;\r
- else\r
- pstart = (UChar* )((void* )mem_start_stk[mem]);\r
-\r
- pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)\r
- ? STACK_AT(mem_end_stk[mem])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[mem]));\r
- n = (int )(pend - pstart);\r
- if (n != 0) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- STRING_CMP(s, pstart, n);\r
- while (sprev + (len = enclen(encode, sprev)) < s)\r
- sprev += len;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(BACKREF_N_IC)\r
- mem = p->backref_n.n1;\r
- {\r
- int len;\r
- UChar *pstart, *pend;\r
-\r
- if (mem_end_stk[mem] == INVALID_STACK_INDEX) goto fail;\r
- if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail;\r
-\r
- if (MEM_STATUS_AT(reg->bt_mem_start, mem))\r
- pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr;\r
- else\r
- pstart = (UChar* )((void* )mem_start_stk[mem]);\r
-\r
- pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)\r
- ? STACK_AT(mem_end_stk[mem])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[mem]));\r
- n = (int )(pend - pstart);\r
- if (n != 0) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- STRING_CMP_IC(case_fold_flag, pstart, &s, n);\r
- while (sprev + (len = enclen(encode, sprev)) < s)\r
- sprev += len;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(BACKREF_MULTI)\r
- {\r
- int len, is_fail;\r
- UChar *pstart, *pend, *swork;\r
-\r
- tlen = p->backref_general.num;\r
- for (i = 0; i < tlen; i++) {\r
- mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i];\r
-\r
- if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue;\r
- if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue;\r
-\r
- if (MEM_STATUS_AT(reg->bt_mem_start, mem))\r
- pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr;\r
- else\r
- pstart = (UChar* )((void* )mem_start_stk[mem]);\r
-\r
- pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)\r
- ? STACK_AT(mem_end_stk[mem])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[mem]));\r
- n = (int )(pend - pstart);\r
- if (n != 0) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- swork = s;\r
- STRING_CMP_VALUE(swork, pstart, n, is_fail);\r
- if (is_fail) continue;\r
- s = swork;\r
- while (sprev + (len = enclen(encode, sprev)) < s)\r
- sprev += len;\r
- }\r
- break; /* success */\r
- }\r
- if (i == tlen) goto fail;\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(BACKREF_MULTI_IC)\r
- {\r
- int len, is_fail;\r
- UChar *pstart, *pend, *swork;\r
-\r
- tlen = p->backref_general.num;\r
- for (i = 0; i < tlen; i++) {\r
- mem = tlen == 1 ? p->backref_general.n1 : p->backref_general.ns[i];\r
-\r
- if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue;\r
- if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue;\r
-\r
- if (MEM_STATUS_AT(reg->bt_mem_start, mem))\r
- pstart = STACK_AT(mem_start_stk[mem])->u.mem.pstr;\r
- else\r
- pstart = (UChar* )((void* )mem_start_stk[mem]);\r
-\r
- pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)\r
- ? STACK_AT(mem_end_stk[mem])->u.mem.pstr\r
- : (UChar* )((void* )mem_end_stk[mem]));\r
- n = (int )(pend - pstart);\r
- if (n != 0) {\r
- DATA_ENSURE(n);\r
- sprev = s;\r
- swork = s;\r
- STRING_CMP_VALUE_IC(case_fold_flag, pstart, &swork, n, is_fail);\r
- if (is_fail) continue;\r
- s = swork;\r
- while (sprev + (len = enclen(encode, sprev)) < s)\r
- sprev += len;\r
- }\r
- break; /* success */\r
- }\r
- if (i == tlen) goto fail;\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- CASE_OP(BACKREF_WITH_LEVEL_IC)\r
- n = 1; /* ignore case */\r
- goto backref_with_level;\r
- CASE_OP(BACKREF_WITH_LEVEL)\r
- {\r
- int len;\r
- int level;\r
- MemNumType* mems;\r
- UChar* ssave;\r
-\r
- n = 0;\r
- backref_with_level:\r
- level = p->backref_general.nest_level;\r
- tlen = p->backref_general.num;\r
- mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns;\r
-\r
- ssave = s;\r
- if (backref_match_at_nested_level(reg, stk, stk_base, n,\r
- case_fold_flag, level, (int )tlen, mems, &s, end)) {\r
- if (ssave != s) {\r
- sprev = ssave;\r
- while (sprev + (len = enclen(encode, sprev)) < s)\r
- sprev += len;\r
- }\r
- }\r
- else\r
- goto fail;\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(BACKREF_CHECK)\r
- {\r
- MemNumType* mems;\r
-\r
- tlen = p->backref_general.num;\r
- mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns;\r
-\r
- for (i = 0; i < tlen; i++) {\r
- mem = mems[i];\r
- if (mem_end_stk[mem] == INVALID_STACK_INDEX) continue;\r
- if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue;\r
- break; /* success */\r
- }\r
- if (i == tlen) goto fail;\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- CASE_OP(BACKREF_CHECK_WITH_LEVEL)\r
- {\r
- LengthType level;\r
- MemNumType* mems;\r
-\r
- level = p->backref_general.nest_level;\r
- tlen = p->backref_general.num;\r
- mems = tlen == 1 ? &(p->backref_general.n1) : p->backref_general.ns;\r
-\r
- if (backref_check_at_nested_level(reg, stk, stk_base,\r
- (int )level, (int )tlen, mems) == 0)\r
- goto fail;\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(EMPTY_CHECK_START)\r
- mem = p->empty_check_start.mem; /* mem: null check id */\r
- STACK_PUSH_EMPTY_CHECK_START(mem, s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(EMPTY_CHECK_END)\r
- {\r
- int is_empty;\r
-\r
- mem = p->empty_check_end.mem; /* mem: null check id */\r
- STACK_EMPTY_CHECK(is_empty, mem, s);\r
- INC_OP;\r
- if (is_empty) {\r
-#ifdef ONIG_DEBUG_MATCH\r
- fprintf(stderr, "EMPTY_CHECK_END: skip id:%d, s:%p\n", (int )mem, s);\r
-#endif\r
- empty_check_found:\r
- /* empty loop founded, skip next instruction */\r
-#if defined(ONIG_DEBUG) && !defined(USE_DIRECT_THREADED_CODE)\r
- switch (p->opcode) {\r
- case OP_JUMP:\r
- case OP_PUSH:\r
- case OP_REPEAT_INC:\r
- case OP_REPEAT_INC_NG:\r
- case OP_REPEAT_INC_SG:\r
- case OP_REPEAT_INC_NG_SG:\r
- INC_OP;\r
- break;\r
- default:\r
- goto unexpected_bytecode_error;\r
- break;\r
- }\r
-#else\r
- INC_OP;\r
-#endif\r
- }\r
- }\r
- JUMP_OUT;\r
-\r
-#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT\r
- CASE_OP(EMPTY_CHECK_END_MEMST)\r
- {\r
- int is_empty;\r
-\r
- mem = p->empty_check_end.mem; /* mem: null check id */\r
- STACK_EMPTY_CHECK_MEM(is_empty, mem, s, reg);\r
- INC_OP;\r
- if (is_empty) {\r
-#ifdef ONIG_DEBUG_MATCH\r
- fprintf(stderr, "EMPTY_CHECK_END_MEM: skip id:%d, s:%p\n", (int)mem, s);\r
-#endif\r
- if (is_empty == -1) goto fail;\r
- goto empty_check_found;\r
- }\r
- }\r
- JUMP_OUT;\r
-#endif\r
-\r
-#ifdef USE_CALL\r
- CASE_OP(EMPTY_CHECK_END_MEMST_PUSH)\r
- {\r
- int is_empty;\r
-\r
- mem = p->empty_check_end.mem; /* mem: null check id */\r
-#ifdef USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT\r
- STACK_EMPTY_CHECK_MEM_REC(is_empty, mem, s, reg);\r
-#else\r
- STACK_EMPTY_CHECK_REC(is_empty, mem, s);\r
-#endif\r
- INC_OP;\r
- if (is_empty) {\r
-#ifdef ONIG_DEBUG_MATCH\r
- fprintf(stderr, "EMPTY_CHECK_END_MEM_PUSH: skip id:%d, s:%p\n",\r
- (int )mem, s);\r
-#endif\r
- if (is_empty == -1) goto fail;\r
- goto empty_check_found;\r
- }\r
- else {\r
- STACK_PUSH_EMPTY_CHECK_END(mem);\r
- }\r
- }\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(JUMP)\r
- addr = p->jump.addr;\r
- p += addr;\r
- CHECK_INTERRUPT_JUMP_OUT;\r
-\r
- CASE_OP(PUSH)\r
- addr = p->push.addr;\r
- STACK_PUSH_ALT(p + addr, s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(PUSH_SUPER)\r
- addr = p->push.addr;\r
- STACK_PUSH_SUPER_ALT(p + addr, s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(POP_OUT)\r
- STACK_POP_ONE;\r
- /* for stop backtrack */\r
- /* CHECK_RETRY_LIMIT_IN_MATCH; */\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- #ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- CASE_OP(PUSH_OR_JUMP_EXACT1)\r
- {\r
- UChar c;\r
-\r
- addr = p->push_or_jump_exact1.addr;\r
- c = p->push_or_jump_exact1.c;\r
- if (DATA_ENSURE_CHECK1 && c == *s) {\r
- STACK_PUSH_ALT(p + addr, s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- }\r
- p += addr;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(PUSH_IF_PEEK_NEXT)\r
- {\r
- UChar c;\r
-\r
- addr = p->push_if_peek_next.addr;\r
- c = p->push_if_peek_next.c;\r
- if (c == *s) {\r
- STACK_PUSH_ALT(p + addr, s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(REPEAT)\r
- mem = p->repeat.id; /* mem: OP_REPEAT ID */\r
- addr = p->repeat.addr;\r
-\r
- STACK_ENSURE(1);\r
- repeat_stk[mem] = GET_STACK_INDEX(stk);\r
- STACK_PUSH_REPEAT(mem, p + 1);\r
-\r
- if (reg->repeat_range[mem].lower == 0) {\r
- STACK_PUSH_ALT(p + addr, s, sprev);\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(REPEAT_NG)\r
- mem = p->repeat.id; /* mem: OP_REPEAT ID */\r
- addr = p->repeat.addr;\r
-\r
- STACK_ENSURE(1);\r
- repeat_stk[mem] = GET_STACK_INDEX(stk);\r
- STACK_PUSH_REPEAT(mem, p + 1);\r
-\r
- if (reg->repeat_range[mem].lower == 0) {\r
- STACK_PUSH_ALT(p + 1, s, sprev);\r
- p += addr;\r
- }\r
- else\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(REPEAT_INC)\r
- mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */\r
- si = repeat_stk[mem];\r
- stkp = STACK_AT(si);\r
-\r
- repeat_inc:\r
- stkp->u.repeat.count++;\r
- if (stkp->u.repeat.count >= reg->repeat_range[mem].upper) {\r
- /* end of repeat. Nothing to do. */\r
- INC_OP;\r
- }\r
- else if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {\r
- INC_OP;\r
- STACK_PUSH_ALT(p, s, sprev);\r
- p = STACK_AT(si)->u.repeat.pcode; /* Don't use stkp after PUSH. */\r
- }\r
- else {\r
- p = stkp->u.repeat.pcode;\r
- }\r
- STACK_PUSH_REPEAT_INC(si);\r
- CHECK_INTERRUPT_JUMP_OUT;\r
-\r
- CASE_OP(REPEAT_INC_SG)\r
- mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */\r
- STACK_GET_REPEAT(mem, stkp);\r
- si = GET_STACK_INDEX(stkp);\r
- goto repeat_inc;\r
-\r
- CASE_OP(REPEAT_INC_NG)\r
- mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */\r
- si = repeat_stk[mem];\r
- stkp = STACK_AT(si);\r
-\r
- repeat_inc_ng:\r
- stkp->u.repeat.count++;\r
- if (stkp->u.repeat.count < reg->repeat_range[mem].upper) {\r
- if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {\r
- Operation* pcode = stkp->u.repeat.pcode;\r
-\r
- STACK_PUSH_REPEAT_INC(si);\r
- STACK_PUSH_ALT(pcode, s, sprev);\r
- INC_OP;\r
- }\r
- else {\r
- p = stkp->u.repeat.pcode;\r
- STACK_PUSH_REPEAT_INC(si);\r
- }\r
- }\r
- else if (stkp->u.repeat.count == reg->repeat_range[mem].upper) {\r
- STACK_PUSH_REPEAT_INC(si);\r
- INC_OP;\r
- }\r
- CHECK_INTERRUPT_JUMP_OUT;\r
-\r
- CASE_OP(REPEAT_INC_NG_SG)\r
- mem = p->repeat_inc.id; /* mem: OP_REPEAT ID */\r
- STACK_GET_REPEAT(mem, stkp);\r
- si = GET_STACK_INDEX(stkp);\r
- goto repeat_inc_ng;\r
-\r
- CASE_OP(PREC_READ_START)\r
- STACK_PUSH_PREC_READ_START(s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(PREC_READ_END)\r
- STACK_GET_PREC_READ_START(stkp);\r
- s = stkp->u.state.pstr;\r
- sprev = stkp->u.state.pstr_prev;\r
- STACK_PUSH(STK_PREC_READ_END,0,0,0);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(PREC_READ_NOT_START)\r
- addr = p->prec_read_not_start.addr;\r
- STACK_PUSH_ALT_PREC_READ_NOT(p + addr, s, sprev);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(PREC_READ_NOT_END)\r
- STACK_POP_TIL_ALT_PREC_READ_NOT;\r
- goto fail;\r
-\r
- CASE_OP(ATOMIC_START)\r
- STACK_PUSH_TO_VOID_START;\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(ATOMIC_END)\r
- STACK_EXEC_TO_VOID(stkp);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(LOOK_BEHIND)\r
- tlen = p->look_behind.len;\r
- s = (UChar* )ONIGENC_STEP_BACK(encode, str, s, (int )tlen);\r
- if (IS_NULL(s)) goto fail;\r
- sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s);\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(LOOK_BEHIND_NOT_START)\r
- addr = p->look_behind_not_start.addr;\r
- tlen = p->look_behind_not_start.len;\r
- q = (UChar* )ONIGENC_STEP_BACK(encode, str, s, (int )tlen);\r
- if (IS_NULL(q)) {\r
- /* too short case -> success. ex. /(?<!XXX)a/.match("a")\r
- If you want to change to fail, replace following line. */\r
- p += addr;\r
- /* goto fail; */\r
- }\r
- else {\r
- STACK_PUSH_ALT_LOOK_BEHIND_NOT(p + addr, s, sprev);\r
- s = q;\r
- sprev = (UChar* )onigenc_get_prev_char_head(encode, str, s);\r
- INC_OP;\r
- }\r
- JUMP_OUT;\r
-\r
- CASE_OP(LOOK_BEHIND_NOT_END)\r
- STACK_POP_TIL_ALT_LOOK_BEHIND_NOT;\r
- INC_OP;\r
- goto fail;\r
-\r
-#ifdef USE_CALL\r
- CASE_OP(CALL)\r
- addr = p->call.addr;\r
- INC_OP; STACK_PUSH_CALL_FRAME(p);\r
- p = reg->ops + addr;\r
- JUMP_OUT;\r
-\r
- CASE_OP(RETURN)\r
- STACK_RETURN(p);\r
- STACK_PUSH_RETURN;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(PUSH_SAVE_VAL)\r
- {\r
- SaveType type;\r
-\r
- type = p->push_save_val.type;\r
- mem = p->push_save_val.id; /* mem: save id */\r
- switch ((enum SaveType )type) {\r
- case SAVE_KEEP:\r
- STACK_PUSH_SAVE_VAL(mem, type, s);\r
- break;\r
-\r
- case SAVE_S:\r
- STACK_PUSH_SAVE_VAL_WITH_SPREV(mem, type, s);\r
- break;\r
-\r
- case SAVE_RIGHT_RANGE:\r
- STACK_PUSH_SAVE_VAL(mem, SAVE_RIGHT_RANGE, right_range);\r
- break;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
- CASE_OP(UPDATE_VAR)\r
- {\r
- UpdateVarType type;\r
- enum SaveType save_type;\r
-\r
- type = p->update_var.type;\r
- mem = p->update_var.id; /* mem: save id */\r
-\r
- switch ((enum UpdateVarType )type) {\r
- case UPDATE_VAR_KEEP_FROM_STACK_LAST:\r
- STACK_GET_SAVE_VAL_TYPE_LAST(SAVE_KEEP, keep);\r
- break;\r
- case UPDATE_VAR_S_FROM_STACK:\r
- STACK_GET_SAVE_VAL_TYPE_LAST_ID_WITH_SPREV(SAVE_S, mem, s);\r
- break;\r
- case UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK:\r
- save_type = SAVE_S;\r
- goto get_save_val_type_last_id;\r
- break;\r
- case UPDATE_VAR_RIGHT_RANGE_FROM_STACK:\r
- save_type = SAVE_RIGHT_RANGE;\r
- get_save_val_type_last_id:\r
- STACK_GET_SAVE_VAL_TYPE_LAST_ID(save_type, mem, right_range);\r
- break;\r
- case UPDATE_VAR_RIGHT_RANGE_INIT:\r
- INIT_RIGHT_RANGE;\r
- break;\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-\r
-#ifdef USE_CALLOUT\r
- CASE_OP(CALLOUT_CONTENTS)\r
- of = ONIG_CALLOUT_OF_CONTENTS;\r
- mem = p->callout_contents.num;\r
- goto callout_common_entry;\r
- BREAK_OUT;\r
-\r
- CASE_OP(CALLOUT_NAME)\r
- {\r
- int call_result;\r
- int name_id;\r
- int in;\r
- CalloutListEntry* e;\r
- OnigCalloutFunc func;\r
- OnigCalloutArgs args;\r
-\r
- of = ONIG_CALLOUT_OF_NAME;\r
- name_id = p->callout_name.id;\r
- mem = p->callout_name.num;\r
-\r
- callout_common_entry:\r
- e = onig_reg_callout_list_at(reg, mem);\r
- in = e->in;\r
- if (of == ONIG_CALLOUT_OF_NAME) {\r
- func = onig_get_callout_start_func(reg, mem);\r
- }\r
- else {\r
- name_id = ONIG_NON_NAME_ID;\r
- func = msa->mp->progress_callout_of_contents;\r
- }\r
-\r
- if (IS_NOT_NULL(func) && (in & ONIG_CALLOUT_IN_PROGRESS) != 0) {\r
- CALLOUT_BODY(func, ONIG_CALLOUT_IN_PROGRESS, name_id,\r
- (int )mem, msa->mp->callout_user_data, args, call_result);\r
- switch (call_result) {\r
- case ONIG_CALLOUT_FAIL:\r
- goto fail;\r
- break;\r
- case ONIG_CALLOUT_SUCCESS:\r
- goto retraction_callout2;\r
- break;\r
- default: /* error code */\r
- if (call_result > 0) {\r
- call_result = ONIGERR_INVALID_ARGUMENT;\r
- }\r
- best_len = call_result;\r
- goto finish;\r
- break;\r
- }\r
- }\r
- else {\r
- retraction_callout2:\r
- if ((in & ONIG_CALLOUT_IN_RETRACTION) != 0) {\r
- if (of == ONIG_CALLOUT_OF_NAME) {\r
- if (IS_NOT_NULL(func)) {\r
- STACK_PUSH_CALLOUT_NAME(name_id, mem, func);\r
- }\r
- }\r
- else {\r
- func = msa->mp->retraction_callout_of_contents;\r
- if (IS_NOT_NULL(func)) {\r
- STACK_PUSH_CALLOUT_CONTENTS(mem, func);\r
- }\r
- }\r
- }\r
- }\r
- }\r
- INC_OP;\r
- JUMP_OUT;\r
-#endif\r
-\r
- CASE_OP(FINISH)\r
- goto finish;\r
-\r
-#ifdef ONIG_DEBUG_STATISTICS\r
- fail:\r
- SOP_OUT;\r
- goto fail2;\r
-#endif\r
- CASE_OP(FAIL)\r
-#ifdef ONIG_DEBUG_STATISTICS\r
- fail2:\r
-#else\r
- fail:\r
-#endif\r
- STACK_POP;\r
- p = stk->u.state.pcode;\r
- s = stk->u.state.pstr;\r
- sprev = stk->u.state.pstr_prev;\r
- CHECK_RETRY_LIMIT_IN_MATCH;\r
- JUMP_OUT;\r
-\r
- DEFAULT_OP\r
- goto bytecode_error;\r
-\r
- } BYTECODE_INTERPRETER_END;\r
-\r
- finish:\r
- STACK_SAVE;\r
- return best_len;\r
-\r
-#ifdef ONIG_DEBUG\r
- stack_error:\r
- STACK_SAVE;\r
- return ONIGERR_STACK_BUG;\r
-#endif\r
-\r
- bytecode_error:\r
- STACK_SAVE;\r
- return ONIGERR_UNDEFINED_BYTECODE;\r
-\r
-#if defined(ONIG_DEBUG) && !defined(USE_DIRECT_THREADED_CODE)\r
- unexpected_bytecode_error:\r
- STACK_SAVE;\r
- return ONIGERR_UNEXPECTED_BYTECODE;\r
-#endif\r
-\r
-#ifdef USE_RETRY_LIMIT_IN_MATCH\r
- retry_limit_in_match_over:\r
- STACK_SAVE;\r
- return ONIGERR_RETRY_LIMIT_IN_MATCH_OVER;\r
-#endif\r
-}\r
-\r
-\r
-static UChar*\r
-slow_search(OnigEncoding enc, UChar* target, UChar* target_end,\r
- const UChar* text, const UChar* text_end, UChar* text_range)\r
-{\r
- UChar *t, *p, *s, *end;\r
-\r
- end = (UChar* )text_end;\r
- end -= target_end - target - 1;\r
- if (end > text_range)\r
- end = text_range;\r
-\r
- s = (UChar* )text;\r
-\r
- while (s < end) {\r
- if (*s == *target) {\r
- p = s + 1;\r
- t = target + 1;\r
- while (t < target_end) {\r
- if (*t != *p++)\r
- break;\r
- t++;\r
- }\r
- if (t == target_end)\r
- return s;\r
- }\r
- s += enclen(enc, s);\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static int\r
-str_lower_case_match(OnigEncoding enc, int case_fold_flag,\r
- const UChar* t, const UChar* tend,\r
- const UChar* p, const UChar* end)\r
-{\r
- int lowlen;\r
- UChar *q, lowbuf[ONIGENC_MBC_CASE_FOLD_MAXLEN];\r
-\r
- while (t < tend) {\r
- lowlen = ONIGENC_MBC_CASE_FOLD(enc, case_fold_flag, &p, end, lowbuf);\r
- q = lowbuf;\r
- while (lowlen > 0) {\r
- if (*t++ != *q++) return 0;\r
- lowlen--;\r
- }\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-static UChar*\r
-slow_search_ic(OnigEncoding enc, int case_fold_flag,\r
- UChar* target, UChar* target_end,\r
- const UChar* text, const UChar* text_end, UChar* text_range)\r
-{\r
- UChar *s, *end;\r
-\r
- end = (UChar* )text_end;\r
- end -= target_end - target - 1;\r
- if (end > text_range)\r
- end = text_range;\r
-\r
- s = (UChar* )text;\r
-\r
- while (s < end) {\r
- if (str_lower_case_match(enc, case_fold_flag, target, target_end,\r
- s, text_end))\r
- return s;\r
-\r
- s += enclen(enc, s);\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-slow_search_backward(OnigEncoding enc, UChar* target, UChar* target_end,\r
- const UChar* text, const UChar* adjust_text,\r
- const UChar* text_end, const UChar* text_start)\r
-{\r
- UChar *t, *p, *s;\r
-\r
- s = (UChar* )text_end;\r
- s -= (target_end - target);\r
- if (s > text_start)\r
- s = (UChar* )text_start;\r
- else\r
- s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s);\r
-\r
- while (s >= text) {\r
- //if text is not null,the logic is correct.\r
- //this function is only invoked by backward_search_range,parameter text come\r
- //from range, which is checked by "if (range == 0) goto fail" in line 4512\r
- //so the check is just for passing static analysis.\r
- if(IS_NULL(s))break;\r
- if (*s == *target) {\r
- p = s + 1;\r
- t = target + 1;\r
- while (t < target_end) {\r
- if (*t != *p++)\r
- break;\r
- t++;\r
- }\r
- if (t == target_end)\r
- return s;\r
- }\r
- s = (UChar* )onigenc_get_prev_char_head(enc, adjust_text, s);\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-slow_search_backward_ic(OnigEncoding enc, int case_fold_flag,\r
- UChar* target, UChar* target_end,\r
- const UChar* text, const UChar* adjust_text,\r
- const UChar* text_end, const UChar* text_start)\r
-{\r
- UChar *s;\r
-\r
- s = (UChar* )text_end;\r
- s -= (target_end - target);\r
- if (s > text_start)\r
- s = (UChar* )text_start;\r
- else\r
- s = ONIGENC_LEFT_ADJUST_CHAR_HEAD(enc, adjust_text, s);\r
-\r
- while (s >= text) {\r
- if (str_lower_case_match(enc, case_fold_flag,\r
- target, target_end, s, text_end))\r
- return s;\r
-\r
- s = (UChar* )onigenc_get_prev_char_head(enc, adjust_text, s);\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-\r
-static UChar*\r
-sunday_quick_search_step_forward(regex_t* reg,\r
- const UChar* target, const UChar* target_end,\r
- const UChar* text, const UChar* text_end,\r
- const UChar* text_range)\r
-{\r
- const UChar *s, *se, *t, *p, *end;\r
- const UChar *tail;\r
- int skip, tlen1;\r
- int map_offset;\r
- OnigEncoding enc;\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr,\r
- "sunday_quick_search_step_forward: text: %p, text_end: %p, text_range: %p\n", text, text_end, text_range);\r
-#endif\r
-\r
- enc = reg->enc;\r
-\r
- tail = target_end - 1;\r
- tlen1 = (int )(tail - target);\r
- end = text_range;\r
- if (end + tlen1 > text_end)\r
- end = text_end - tlen1;\r
-\r
- map_offset = reg->map_offset;\r
- s = text;\r
-\r
- while (s < end) {\r
- p = se = s + tlen1;\r
- t = tail;\r
- while (*p == *t) {\r
- if (t == target) return (UChar* )s;\r
- p--; t--;\r
- }\r
- if (se + map_offset >= text_end) break;\r
- skip = reg->map[*(se + map_offset)];\r
-#if 0\r
- t = s;\r
- do {\r
- s += enclen(enc, s);\r
- } while ((s - t) < skip && s < end);\r
-#else\r
- s += skip;\r
- if (s < end)\r
- s = onigenc_get_right_adjust_char_head(enc, text, s);\r
-#endif\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-sunday_quick_search(regex_t* reg, const UChar* target, const UChar* target_end,\r
- const UChar* text, const UChar* text_end,\r
- const UChar* text_range)\r
-{\r
- const UChar *s, *t, *p, *end;\r
- const UChar *tail;\r
- int map_offset;\r
-\r
- end = text_range + (target_end - target);\r
- if (end > text_end)\r
- end = text_end;\r
-\r
- map_offset = reg->map_offset;\r
- tail = target_end - 1;\r
- s = text + (tail - target);\r
-\r
- while (s < end) {\r
- p = s;\r
- t = tail;\r
- while (*p == *t) {\r
- if (t == target) return (UChar* )p;\r
- p--; t--;\r
- }\r
- if (s + map_offset >= text_end) break;\r
- s += reg->map[*(s + map_offset)];\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-sunday_quick_search_case_fold(regex_t* reg,\r
- const UChar* target, const UChar* target_end,\r
- const UChar* text, const UChar* text_end,\r
- const UChar* text_range)\r
-{\r
- const UChar *s, *se, *end;\r
- const UChar *tail;\r
- int skip, tlen1;\r
- int map_offset;\r
- int case_fold_flag;\r
- OnigEncoding enc;\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr,\r
- "sunday_quick_search_case_fold: text: %p, text_end: %p, text_range: %p\n", text, text_end, text_range);\r
-#endif\r
-\r
- enc = reg->enc;\r
- case_fold_flag = reg->case_fold_flag;\r
-\r
- tail = target_end - 1;\r
- tlen1 = (int )(tail - target);\r
- end = text_range;\r
- if (end + tlen1 > text_end)\r
- end = text_end - tlen1;\r
-\r
- map_offset = reg->map_offset;\r
- s = text;\r
-\r
- while (s < end) {\r
- if (str_lower_case_match(enc, case_fold_flag, target, target_end,\r
- s, text_end))\r
- return (UChar* )s;\r
-\r
- se = s + tlen1;\r
- if (se + map_offset >= text_end) break;\r
- skip = reg->map[*(se + map_offset)];\r
-#if 0\r
- p = s;\r
- do {\r
- s += enclen(enc, s);\r
- } while ((s - p) < skip && s < end);\r
-#else\r
- /* This is faster than prev code for long text. ex: /(?i)Twain/ */\r
- s += skip;\r
- if (s < end)\r
- s = onigenc_get_right_adjust_char_head(enc, text, s);\r
-#endif\r
- }\r
-\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-map_search(OnigEncoding enc, UChar map[],\r
- const UChar* text, const UChar* text_range)\r
-{\r
- const UChar *s = text;\r
-\r
- while (s < text_range) {\r
- if (map[*s]) return (UChar* )s;\r
-\r
- s += enclen(enc, s);\r
- }\r
- return (UChar* )NULL;\r
-}\r
-\r
-static UChar*\r
-map_search_backward(OnigEncoding enc, UChar map[],\r
- const UChar* text, const UChar* adjust_text,\r
- const UChar* text_start)\r
-{\r
- const UChar *s = text_start;\r
-\r
- while (s >= text) {\r
- //if text is not null,the logic is correct.\r
- //this function is only invoked by backward_search_range,parameter text come\r
- //from range, which is checked by "if (range == 0) goto fail" in line 4512\r
- //so the check is just for passing static analysis.\r
- if(IS_NULL(s))break;\r
- if (map[*s]) return (UChar* )s;\r
-\r
- s = onigenc_get_prev_char_head(enc, adjust_text, s);\r
- }\r
- return (UChar* )NULL;\r
-}\r
-extern int\r
-onig_match(regex_t* reg, const UChar* str, const UChar* end, const UChar* at,\r
- OnigRegion* region, OnigOptionType option)\r
-{\r
- int r;\r
- OnigMatchParam mp;\r
-\r
- onig_initialize_match_param(&mp);\r
- r = onig_match_with_param(reg, str, end, at, region, option, &mp);\r
- onig_free_match_param_content(&mp);\r
- return r;\r
-}\r
-\r
-extern int\r
-onig_match_with_param(regex_t* reg, const UChar* str, const UChar* end,\r
- const UChar* at, OnigRegion* region, OnigOptionType option,\r
- OnigMatchParam* mp)\r
-{\r
- int r;\r
- UChar *prev;\r
- MatchArg msa;\r
-\r
- ADJUST_MATCH_PARAM(reg, mp);\r
- MATCH_ARG_INIT(msa, reg, option, region, at, mp);\r
- if (region\r
-#ifdef USE_POSIX_API_REGION_OPTION\r
- && !IS_POSIX_REGION(option)\r
-#endif\r
- ) {\r
- r = onig_region_resize_clear(region, reg->num_mem + 1);\r
- }\r
- else\r
- r = 0;\r
-\r
- if (r == 0) {\r
- if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) {\r
- if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) {\r
- r = ONIGERR_INVALID_WIDE_CHAR_VALUE;\r
- goto end;\r
- }\r
- }\r
-\r
- prev = (UChar* )onigenc_get_prev_char_head(reg->enc, str, at);\r
- r = match_at(reg, str, end, end, at, prev, &msa);\r
- }\r
-\r
- end:\r
- MATCH_ARG_FREE(msa);\r
- return r;\r
-}\r
-\r
-static int\r
-forward_search_range(regex_t* reg, const UChar* str, const UChar* end, UChar* s,\r
- UChar* range, UChar** low, UChar** high, UChar** low_prev)\r
-{\r
- UChar *p, *pprev = (UChar* )NULL;\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr, "forward_search_range: str: %p, end: %p, s: %p, range: %p\n",\r
- str, end, s, range);\r
-#endif\r
-\r
- p = s;\r
- if (reg->dmin > 0) {\r
- if (ONIGENC_IS_SINGLEBYTE(reg->enc)) {\r
- p += reg->dmin;\r
- }\r
- else {\r
- UChar *q = p + reg->dmin;\r
-\r
- if (q >= end) return 0; /* fail */\r
- while (p < q) p += enclen(reg->enc, p);\r
- }\r
- }\r
-\r
- retry:\r
- switch (reg->optimize) {\r
- case OPTIMIZE_STR:\r
- p = slow_search(reg->enc, reg->exact, reg->exact_end, p, end, range);\r
- break;\r
- case OPTIMIZE_STR_CASE_FOLD:\r
- p = slow_search_ic(reg->enc, reg->case_fold_flag,\r
- reg->exact, reg->exact_end, p, end, range);\r
- break;\r
-\r
- case OPTIMIZE_STR_CASE_FOLD_FAST:\r
- p = sunday_quick_search_case_fold(reg, reg->exact, reg->exact_end, p, end,\r
- range);\r
- break;\r
-\r
- case OPTIMIZE_STR_FAST:\r
- p = sunday_quick_search(reg, reg->exact, reg->exact_end, p, end, range);\r
- break;\r
-\r
- case OPTIMIZE_STR_FAST_STEP_FORWARD:\r
- p = sunday_quick_search_step_forward(reg, reg->exact, reg->exact_end,\r
- p, end, range);\r
- break;\r
-\r
- case OPTIMIZE_MAP:\r
- p = map_search(reg->enc, reg->map, p, range);\r
- break;\r
- }\r
-\r
- if (p && p < range) {\r
- if (p - reg->dmin < s) {\r
- retry_gate:\r
- pprev = p;\r
- p += enclen(reg->enc, p);\r
- goto retry;\r
- }\r
-\r
- if (reg->sub_anchor) {\r
- UChar* prev;\r
-\r
- switch (reg->sub_anchor) {\r
- case ANCR_BEGIN_LINE:\r
- if (!ON_STR_BEGIN(p)) {\r
- prev = onigenc_get_prev_char_head(reg->enc,\r
- (pprev ? pprev : str), p);\r
- if (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end))\r
- goto retry_gate;\r
- }\r
- break;\r
-\r
- case ANCR_END_LINE:\r
- if (ON_STR_END(p)) {\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- prev = (UChar* )onigenc_get_prev_char_head(reg->enc,\r
- (pprev ? pprev : str), p);\r
- if (prev && ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end))\r
- goto retry_gate;\r
-#endif\r
- }\r
- else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end)\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
- && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end)\r
-#endif\r
- )\r
- goto retry_gate;\r
- break;\r
- }\r
- }\r
-\r
- if (reg->dmax == 0) {\r
- *low = p;\r
- if (low_prev) {\r
- if (*low > s)\r
- *low_prev = onigenc_get_prev_char_head(reg->enc, s, p);\r
- else\r
- *low_prev = onigenc_get_prev_char_head(reg->enc,\r
- (pprev ? pprev : str), p);\r
- }\r
- }\r
- else {\r
- if (reg->dmax != INFINITE_LEN) {\r
- if (p - str < reg->dmax) {\r
- *low = (UChar* )str;\r
- if (low_prev)\r
- *low_prev = onigenc_get_prev_char_head(reg->enc, str, *low);\r
- }\r
- else {\r
- *low = p - reg->dmax;\r
- if (*low > s) {\r
- *low = onigenc_get_right_adjust_char_head_with_prev(reg->enc, s,\r
- *low, (const UChar** )low_prev);\r
- if (low_prev && IS_NULL(*low_prev))\r
- *low_prev = onigenc_get_prev_char_head(reg->enc,\r
- (pprev ? pprev : s), *low);\r
- }\r
- else {\r
- if (low_prev)\r
- *low_prev = onigenc_get_prev_char_head(reg->enc,\r
- (pprev ? pprev : str), *low);\r
- }\r
- }\r
- }\r
- }\r
- /* no needs to adjust *high, *high is used as range check only */\r
- *high = p - reg->dmin;\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr,\r
- "forward_search_range success: low: %d, high: %d, dmin: %d, dmax: %d\n",\r
- (int )(*low - str), (int )(*high - str), reg->dmin, reg->dmax);\r
-#endif\r
- return 1; /* success */\r
- }\r
-\r
- return 0; /* fail */\r
-}\r
-\r
-\r
-static int\r
-backward_search_range(regex_t* reg, const UChar* str, const UChar* end,\r
- UChar* s, const UChar* range, UChar* adjrange,\r
- UChar** low, UChar** high)\r
-{\r
- UChar *p;\r
-\r
- if (range == 0) goto fail;\r
-\r
- range += reg->dmin;\r
- p = s;\r
-\r
- retry:\r
- switch (reg->optimize) {\r
- case OPTIMIZE_STR:\r
- exact_method:\r
- p = slow_search_backward(reg->enc, reg->exact, reg->exact_end,\r
- range, adjrange, end, p);\r
- break;\r
-\r
- case OPTIMIZE_STR_CASE_FOLD:\r
- case OPTIMIZE_STR_CASE_FOLD_FAST:\r
- p = slow_search_backward_ic(reg->enc, reg->case_fold_flag,\r
- reg->exact, reg->exact_end,\r
- range, adjrange, end, p);\r
- break;\r
-\r
- case OPTIMIZE_STR_FAST:\r
- case OPTIMIZE_STR_FAST_STEP_FORWARD:\r
- goto exact_method;\r
- break;\r
-\r
- case OPTIMIZE_MAP:\r
- p = map_search_backward(reg->enc, reg->map, range, adjrange, p);\r
- break;\r
- }\r
-\r
- if (p) {\r
- if (reg->sub_anchor) {\r
- UChar* prev;\r
-\r
- switch (reg->sub_anchor) {\r
- case ANCR_BEGIN_LINE:\r
- if (!ON_STR_BEGIN(p)) {\r
- prev = onigenc_get_prev_char_head(reg->enc, str, p);\r
- if (IS_NOT_NULL(prev) && !ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) {\r
- p = prev;\r
- goto retry;\r
- }\r
- }\r
- break;\r
-\r
- case ANCR_END_LINE:\r
- if (ON_STR_END(p)) {\r
-#ifndef USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE\r
- prev = onigenc_get_prev_char_head(reg->enc, adjrange, p);\r
- if (IS_NULL(prev)) goto fail;\r
- if (ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end)) {\r
- p = prev;\r
- goto retry;\r
- }\r
-#endif\r
- }\r
- else if (! ONIGENC_IS_MBC_NEWLINE(reg->enc, p, end)\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
- && ! ONIGENC_IS_MBC_CRNL(reg->enc, p, end)\r
-#endif\r
- ) {\r
- p = onigenc_get_prev_char_head(reg->enc, adjrange, p);\r
- if (IS_NULL(p)) goto fail;\r
- goto retry;\r
- }\r
- break;\r
- }\r
- }\r
-\r
- /* no needs to adjust *high, *high is used as range check only */\r
- if (reg->dmax != INFINITE_LEN) {\r
- *low = p - reg->dmax;\r
- *high = p - reg->dmin;\r
- *high = onigenc_get_right_adjust_char_head(reg->enc, adjrange, *high);\r
- }\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr, "backward_search_range: low: %d, high: %d\n",\r
- (int )(*low - str), (int )(*high - str));\r
-#endif\r
- return 1; /* success */\r
- }\r
-\r
- fail:\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr, "backward_search_range: fail.\n");\r
-#endif\r
- return 0; /* fail */\r
-}\r
-\r
-\r
-extern int\r
-onig_search(regex_t* reg, const UChar* str, const UChar* end,\r
- const UChar* start, const UChar* range, OnigRegion* region,\r
- OnigOptionType option)\r
-{\r
- int r;\r
- OnigMatchParam mp;\r
-\r
- onig_initialize_match_param(&mp);\r
- r = onig_search_with_param(reg, str, end, start, range, region, option, &mp);\r
- onig_free_match_param_content(&mp);\r
- return r;\r
-\r
-}\r
-\r
-extern int\r
-onig_search_with_param(regex_t* reg, const UChar* str, const UChar* end,\r
- const UChar* start, const UChar* range, OnigRegion* region,\r
- OnigOptionType option, OnigMatchParam* mp)\r
-{\r
- int r;\r
- UChar *s, *prev;\r
- MatchArg msa;\r
- const UChar *orig_start = start;\r
- const UChar *orig_range = range;\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr,\r
- "onig_search (entry point): str: %p, end: %d, start: %d, range: %d\n",\r
- str, (int )(end - str), (int )(start - str), (int )(range - str));\r
-#endif\r
-\r
- ADJUST_MATCH_PARAM(reg, mp);\r
-\r
- if (region\r
-#ifdef USE_POSIX_API_REGION_OPTION\r
- && !IS_POSIX_REGION(option)\r
-#endif\r
- ) {\r
- r = onig_region_resize_clear(region, reg->num_mem + 1);\r
- if (r != 0) goto finish_no_msa;\r
- }\r
-\r
- if (start > end || start < str) goto mismatch_no_msa;\r
-\r
- if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) {\r
- if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end)) {\r
- r = ONIGERR_INVALID_WIDE_CHAR_VALUE;\r
- goto finish_no_msa;\r
- }\r
- }\r
-\r
-\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
-#define MATCH_AND_RETURN_CHECK(upper_range) \\r
- r = match_at(reg, str, end, (upper_range), s, prev, &msa); \\r
- if (r != ONIG_MISMATCH) {\\r
- if (r >= 0) {\\r
- if (! IS_FIND_LONGEST(reg->options)) {\\r
- goto match;\\r
- }\\r
- }\\r
- else goto finish; /* error */ \\r
- }\r
-#else\r
-#define MATCH_AND_RETURN_CHECK(upper_range) \\r
- r = match_at(reg, str, end, (upper_range), s, prev, &msa); \\r
- if (r != ONIG_MISMATCH) {\\r
- if (r >= 0) {\\r
- goto match;\\r
- }\\r
- else goto finish; /* error */ \\r
- }\r
-#endif /* USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE */\r
-\r
-\r
- /* anchor optimize: resume search range */\r
- if (reg->anchor != 0 && str < end) {\r
- UChar *min_semi_end, *max_semi_end;\r
-\r
- if (reg->anchor & ANCR_BEGIN_POSITION) {\r
- /* search start-position only */\r
- begin_position:\r
- if (range > start)\r
- range = start + 1;\r
- else\r
- range = start;\r
- }\r
- else if (reg->anchor & ANCR_BEGIN_BUF) {\r
- /* search str-position only */\r
- if (range > start) {\r
- if (start != str) goto mismatch_no_msa;\r
- range = str + 1;\r
- }\r
- else {\r
- if (range <= str) {\r
- start = str;\r
- range = str;\r
- }\r
- else\r
- goto mismatch_no_msa;\r
- }\r
- }\r
- else if (reg->anchor & ANCR_END_BUF) {\r
- min_semi_end = max_semi_end = (UChar* )end;\r
-\r
- end_buf:\r
- if ((OnigLen )(max_semi_end - str) < reg->anchor_dmin)\r
- goto mismatch_no_msa;\r
-\r
- if (range > start) {\r
- if ((OnigLen )(min_semi_end - start) > reg->anchor_dmax) {\r
- start = min_semi_end - reg->anchor_dmax;\r
- if (start < end)\r
- start = onigenc_get_right_adjust_char_head(reg->enc, str, start);\r
- }\r
- if ((OnigLen )(max_semi_end - (range - 1)) < reg->anchor_dmin) {\r
- range = max_semi_end - reg->anchor_dmin + 1;\r
- }\r
-\r
- if (start > range) goto mismatch_no_msa;\r
- /* If start == range, match with empty at end.\r
- Backward search is used. */\r
- }\r
- else {\r
- if ((OnigLen )(min_semi_end - range) > reg->anchor_dmax) {\r
- range = min_semi_end - reg->anchor_dmax;\r
- }\r
- if ((OnigLen )(max_semi_end - start) < reg->anchor_dmin) {\r
- start = max_semi_end - reg->anchor_dmin;\r
- start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, start);\r
- }\r
- if (range > start) goto mismatch_no_msa;\r
- }\r
- }\r
- else if (reg->anchor & ANCR_SEMI_END_BUF) {\r
- UChar* pre_end = ONIGENC_STEP_BACK(reg->enc, str, end, 1);\r
-\r
- max_semi_end = (UChar* )end;\r
- // only when str > end, pre_end will be null\r
- // line 4659 "if (start > end || start < str) goto mismatch_no_msa"\r
- // will guarantee str alwayls less than end\r
- // so pre_end won't be null,this check is just for passing staic analysis\r
- if (IS_NOT_NULL(pre_end) && ONIGENC_IS_MBC_NEWLINE(reg->enc, pre_end, end)) {\r
- min_semi_end = pre_end;\r
-\r
-#ifdef USE_CRNL_AS_LINE_TERMINATOR\r
- pre_end = ONIGENC_STEP_BACK(reg->enc, str, pre_end, 1);\r
- if (IS_NOT_NULL(pre_end) &&\r
- ONIGENC_IS_MBC_CRNL(reg->enc, pre_end, end)) {\r
- min_semi_end = pre_end;\r
- }\r
-#endif\r
- if (min_semi_end > str && start <= min_semi_end) {\r
- goto end_buf;\r
- }\r
- }\r
- else {\r
- min_semi_end = (UChar* )end;\r
- goto end_buf;\r
- }\r
- }\r
- else if ((reg->anchor & ANCR_ANYCHAR_INF_ML)) {\r
- goto begin_position;\r
- }\r
- }\r
- else if (str == end) { /* empty string */\r
- static const UChar* address_for_empty_string = (UChar* )"";\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr, "onig_search: empty string.\n");\r
-#endif\r
-\r
- if (reg->threshold_len == 0) {\r
- start = end = str = address_for_empty_string;\r
- s = (UChar* )start;\r
- prev = (UChar* )NULL;\r
-\r
- MATCH_ARG_INIT(msa, reg, option, region, start, mp);\r
- MATCH_AND_RETURN_CHECK(end);\r
- goto mismatch;\r
- }\r
- goto mismatch_no_msa;\r
- }\r
-\r
-#ifdef ONIG_DEBUG_SEARCH\r
- fprintf(stderr, "onig_search(apply anchor): end: %d, start: %d, range: %d\n",\r
- (int )(end - str), (int )(start - str), (int )(range - str));\r
-#endif\r
-\r
- MATCH_ARG_INIT(msa, reg, option, region, orig_start, mp);\r
-\r
- s = (UChar* )start;\r
- if (range > start) { /* forward search */\r
- if (s > str)\r
- prev = onigenc_get_prev_char_head(reg->enc, str, s);\r
- else\r
- prev = (UChar* )NULL;\r
-\r
- if (reg->optimize != OPTIMIZE_NONE) {\r
- UChar *sch_range, *low, *high, *low_prev;\r
-\r
- sch_range = (UChar* )range;\r
- if (reg->dmax != 0) {\r
- if (reg->dmax == INFINITE_LEN)\r
- sch_range = (UChar* )end;\r
- else {\r
- sch_range += reg->dmax;\r
- if (sch_range > end) sch_range = (UChar* )end;\r
- }\r
- }\r
-\r
- if ((end - start) < reg->threshold_len)\r
- goto mismatch;\r
-\r
- if (reg->dmax != INFINITE_LEN) {\r
- do {\r
- if (! forward_search_range(reg, str, end, s, sch_range,\r
- &low, &high, &low_prev)) goto mismatch;\r
- if (s < low) {\r
- s = low;\r
- prev = low_prev;\r
- }\r
- while (s <= high) {\r
- MATCH_AND_RETURN_CHECK(orig_range);\r
- prev = s;\r
- s += enclen(reg->enc, s);\r
- }\r
- } while (s < range);\r
- goto mismatch;\r
- }\r
- else { /* check only. */\r
- if (! forward_search_range(reg, str, end, s, sch_range,\r
- &low, &high, (UChar** )NULL)) goto mismatch;\r
-\r
- if ((reg->anchor & ANCR_ANYCHAR_INF) != 0) {\r
- do {\r
- MATCH_AND_RETURN_CHECK(orig_range);\r
- prev = s;\r
- s += enclen(reg->enc, s);\r
-\r
- if ((reg->anchor & (ANCR_LOOK_BEHIND | ANCR_PREC_READ_NOT)) == 0) {\r
- while (!ONIGENC_IS_MBC_NEWLINE(reg->enc, prev, end) && s < range) {\r
- prev = s;\r
- s += enclen(reg->enc, s);\r
- }\r
- }\r
- } while (s < range);\r
- goto mismatch;\r
- }\r
- }\r
- }\r
-\r
- do {\r
- MATCH_AND_RETURN_CHECK(orig_range);\r
- prev = s;\r
- s += enclen(reg->enc, s);\r
- } while (s < range);\r
-\r
- if (s == range) { /* because empty match with /$/. */\r
- MATCH_AND_RETURN_CHECK(orig_range);\r
- }\r
- }\r
- else { /* backward search */\r
- if (range < str) goto mismatch;\r
-\r
- if (orig_start < end)\r
- orig_start += enclen(reg->enc, orig_start); /* is upper range */\r
-\r
- if (reg->optimize != OPTIMIZE_NONE) {\r
- UChar *low, *high, *adjrange, *sch_start;\r
-\r
- if (range < end)\r
- adjrange = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, str, range);\r
- else\r
- adjrange = (UChar* )end;\r
-\r
- if (reg->dmax != INFINITE_LEN &&\r
- (end - range) >= reg->threshold_len) {\r
- do {\r
- sch_start = s + reg->dmax;\r
- if (sch_start > end) sch_start = (UChar* )end;\r
- if (backward_search_range(reg, str, end, sch_start, range, adjrange,\r
- &low, &high) <= 0)\r
- goto mismatch;\r
-\r
- if (s > high)\r
- s = high;\r
-\r
- while (s >= low) {\r
- prev = onigenc_get_prev_char_head(reg->enc, str, s);\r
- MATCH_AND_RETURN_CHECK(orig_start);\r
- s = prev;\r
- }\r
- // if range is not null,the check is not necessary.\r
- // the range is actually the pointer of the end of the matched string\r
- // or assigned by "range = str" in line 4708. In RegularExpressionMatch\r
- // protocol, the matched string is the parameter String. And str in\r
- // line 4708 is the String,too. and the range is calculated from\r
- // "Start + onigenc_str_bytelen_null (CHAR16_ENCODING, Start)" in\r
- // line 146 in RegularExpressionDxe.c. RegularExpressionMatch ensure\r
- // the String is not null,So in both situation, the range can not be NULL.\r
- // This check is just for passing static analysis.\r
- if(IS_NULL(s))break;\r
- } while (s >= range);\r
- goto mismatch;\r
- }\r
- else { /* check only. */\r
- if ((end - range) < reg->threshold_len) goto mismatch;\r
-\r
- sch_start = s;\r
- if (reg->dmax != 0) {\r
- if (reg->dmax == INFINITE_LEN)\r
- sch_start = (UChar* )end;\r
- else {\r
- sch_start += reg->dmax;\r
- if (sch_start > end) sch_start = (UChar* )end;\r
- else\r
- sch_start = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc,\r
- start, sch_start);\r
- }\r
- }\r
- if (backward_search_range(reg, str, end, sch_start, range, adjrange,\r
- &low, &high) <= 0) goto mismatch;\r
- }\r
- }\r
-\r
- do {\r
- prev = onigenc_get_prev_char_head(reg->enc, str, s);\r
- MATCH_AND_RETURN_CHECK(orig_start);\r
- s = prev;\r
- } while (s >= range);\r
- }\r
-\r
- mismatch:\r
-#ifdef USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
- if (IS_FIND_LONGEST(reg->options)) {\r
- if (msa.best_len >= 0) {\r
- s = msa.best_s;\r
- goto match;\r
- }\r
- }\r
-#endif\r
- r = ONIG_MISMATCH;\r
-\r
- finish:\r
- MATCH_ARG_FREE(msa);\r
-\r
- /* If result is mismatch and no FIND_NOT_EMPTY option,\r
- then the region is not set in match_at(). */\r
- if (IS_FIND_NOT_EMPTY(reg->options) && region\r
-#ifdef USE_POSIX_API_REGION_OPTION\r
- && !IS_POSIX_REGION(option)\r
-#endif\r
- ) {\r
- onig_region_clear(region);\r
- }\r
-\r
-#ifdef ONIG_DEBUG\r
- if (r != ONIG_MISMATCH)\r
- fprintf(stderr, "onig_search: error %d\n", r);\r
-#endif\r
- return r;\r
-\r
- mismatch_no_msa:\r
- r = ONIG_MISMATCH;\r
- finish_no_msa:\r
-#ifdef ONIG_DEBUG\r
- if (r != ONIG_MISMATCH)\r
- fprintf(stderr, "onig_search: error %d\n", r);\r
-#endif\r
- return r;\r
-\r
- match:\r
- MATCH_ARG_FREE(msa);\r
- return (int )(s - str);\r
-}\r
-\r
-extern int\r
-onig_scan(regex_t* reg, const UChar* str, const UChar* end,\r
- OnigRegion* region, OnigOptionType option,\r
- int (*scan_callback)(int, int, OnigRegion*, void*),\r
- void* callback_arg)\r
-{\r
- int r;\r
- int n;\r
- int rs;\r
- const UChar* start;\r
-\r
- if (ONIG_IS_OPTION_ON(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING)) {\r
- if (! ONIGENC_IS_VALID_MBC_STRING(reg->enc, str, end))\r
- return ONIGERR_INVALID_WIDE_CHAR_VALUE;\r
-\r
- ONIG_OPTION_OFF(option, ONIG_OPTION_CHECK_VALIDITY_OF_STRING);\r
- }\r
-\r
- n = 0;\r
- start = str;\r
- while (1) {\r
- r = onig_search(reg, str, end, start, end, region, option);\r
- if (r >= 0) {\r
- rs = scan_callback(n, r, region, callback_arg);\r
- n++;\r
- if (rs != 0)\r
- return rs;\r
-\r
- if (region->end[0] == start - str) {\r
- if (start >= end) break;\r
- start += enclen(reg->enc, start);\r
- }\r
- else\r
- start = str + region->end[0];\r
-\r
- if (start > end)\r
- break;\r
- }\r
- else if (r == ONIG_MISMATCH) {\r
- break;\r
- }\r
- else { /* error */\r
- return r;\r
- }\r
- }\r
-\r
- return n;\r
-}\r
-\r
-extern OnigEncoding\r
-onig_get_encoding(regex_t* reg)\r
-{\r
- return reg->enc;\r
-}\r
-\r
-extern OnigOptionType\r
-onig_get_options(regex_t* reg)\r
-{\r
- return reg->options;\r
-}\r
-\r
-extern OnigCaseFoldType\r
-onig_get_case_fold_flag(regex_t* reg)\r
-{\r
- return reg->case_fold_flag;\r
-}\r
-\r
-extern OnigSyntaxType*\r
-onig_get_syntax(regex_t* reg)\r
-{\r
- return reg->syntax;\r
-}\r
-\r
-extern int\r
-onig_number_of_captures(regex_t* reg)\r
-{\r
- return reg->num_mem;\r
-}\r
-\r
-extern int\r
-onig_number_of_capture_histories(regex_t* reg)\r
-{\r
-#ifdef USE_CAPTURE_HISTORY\r
- int i, n;\r
-\r
- n = 0;\r
- for (i = 0; i <= ONIG_MAX_CAPTURE_HISTORY_GROUP; i++) {\r
- if (MEM_STATUS_AT(reg->capture_history, i) != 0)\r
- n++;\r
- }\r
- return n;\r
-#else\r
- return 0;\r
-#endif\r
-}\r
-\r
-extern void\r
-onig_copy_encoding(OnigEncoding to, OnigEncoding from)\r
-{\r
- *to = *from;\r
-}\r
-\r
-#ifdef USE_DIRECT_THREADED_CODE\r
-extern int\r
-onig_init_for_match_at(regex_t* reg)\r
-{\r
- return match_at(reg, (const UChar* )NULL, (const UChar* )NULL,\r
- (const UChar* )NULL, (const UChar* )NULL, (UChar* )NULL,\r
- (MatchArg* )NULL);\r
-}\r
-#endif\r
-\r
-\r
-/* for callout functions */\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-extern OnigCalloutFunc\r
-onig_get_progress_callout(void)\r
-{\r
- return DefaultProgressCallout;\r
-}\r
-\r
-extern int\r
-onig_set_progress_callout(OnigCalloutFunc f)\r
-{\r
- DefaultProgressCallout = f;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern OnigCalloutFunc\r
-onig_get_retraction_callout(void)\r
-{\r
- return DefaultRetractionCallout;\r
-}\r
-\r
-extern int\r
-onig_set_retraction_callout(OnigCalloutFunc f)\r
-{\r
- DefaultRetractionCallout = f;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_get_callout_num_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->num;\r
-}\r
-\r
-extern OnigCalloutIn\r
-onig_get_callout_in_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->in;\r
-}\r
-\r
-extern int\r
-onig_get_name_id_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->name_id;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_contents_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- int num;\r
- CalloutListEntry* e;\r
-\r
- num = args->num;\r
- e = onig_reg_callout_list_at(args->regex, num);\r
- if (IS_NULL(e)) return 0;\r
- if (e->of == ONIG_CALLOUT_OF_CONTENTS) {\r
- return e->u.content.start;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_contents_end_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- int num;\r
- CalloutListEntry* e;\r
-\r
- num = args->num;\r
- e = onig_reg_callout_list_at(args->regex, num);\r
- if (IS_NULL(e)) return 0;\r
- if (e->of == ONIG_CALLOUT_OF_CONTENTS) {\r
- return e->u.content.end;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_get_args_num_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- int num;\r
- CalloutListEntry* e;\r
-\r
- num = args->num;\r
- e = onig_reg_callout_list_at(args->regex, num);\r
- if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT;\r
- if (e->of == ONIG_CALLOUT_OF_NAME) {\r
- return e->u.arg.num;\r
- }\r
-\r
- return ONIGERR_INVALID_ARGUMENT;\r
-}\r
-\r
-extern int\r
-onig_get_passed_args_num_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- int num;\r
- CalloutListEntry* e;\r
-\r
- num = args->num;\r
- e = onig_reg_callout_list_at(args->regex, num);\r
- if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT;\r
- if (e->of == ONIG_CALLOUT_OF_NAME) {\r
- return e->u.arg.passed_num;\r
- }\r
-\r
- return ONIGERR_INVALID_ARGUMENT;\r
-}\r
-\r
-extern int\r
-onig_get_arg_by_callout_args(OnigCalloutArgs* args, int index,\r
- OnigType* type, OnigValue* val)\r
-{\r
- int num;\r
- CalloutListEntry* e;\r
-\r
- num = args->num;\r
- e = onig_reg_callout_list_at(args->regex, num);\r
- if (IS_NULL(e)) return ONIGERR_INVALID_ARGUMENT;\r
- if (e->of == ONIG_CALLOUT_OF_NAME) {\r
- if (IS_NOT_NULL(type)) *type = e->u.arg.types[index];\r
- if (IS_NOT_NULL(val)) *val = e->u.arg.vals[index];\r
- return ONIG_NORMAL;\r
- }\r
-\r
- return ONIGERR_INVALID_ARGUMENT;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_string_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->string;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_string_end_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->string_end;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_start_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->start;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_right_range_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->right_range;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_current_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->current;\r
-}\r
-\r
-extern OnigRegex\r
-onig_get_regex_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->regex;\r
-}\r
-\r
-extern unsigned long\r
-onig_get_retry_counter_by_callout_args(OnigCalloutArgs* args)\r
-{\r
- return args->retry_in_match_counter;\r
-}\r
-\r
-\r
-extern int\r
-onig_get_capture_range_in_callout(OnigCalloutArgs* a, int mem_num, int* begin, int* end)\r
-{\r
- OnigRegex reg;\r
- const UChar* str;\r
- StackType* stk_base;\r
- int i;\r
-\r
- i = mem_num;\r
- reg = a->regex;\r
- str = a->string;\r
- stk_base = a->stk_base;\r
-\r
- if (i > 0) {\r
- if (a->mem_end_stk[i] != INVALID_STACK_INDEX) {\r
- if (MEM_STATUS_AT(reg->bt_mem_start, i))\r
- *begin = (int )(STACK_AT(a->mem_start_stk[i])->u.mem.pstr - str);\r
- else\r
- *begin = (int )((UChar* )((void* )a->mem_start_stk[i]) - str);\r
-\r
- *end = (int )((MEM_STATUS_AT(reg->bt_mem_end, i)\r
- ? STACK_AT(a->mem_end_stk[i])->u.mem.pstr\r
- : (UChar* )((void* )a->mem_end_stk[i])) - str);\r
- }\r
- else {\r
- *begin = *end = ONIG_REGION_NOTPOS;\r
- }\r
- }\r
- else if (i == 0) {\r
-#if 0\r
- *begin = a->start - str;\r
- *end = a->current - str;\r
-#else\r
- return ONIGERR_INVALID_ARGUMENT;\r
-#endif\r
- }\r
- else\r
- return ONIGERR_INVALID_ARGUMENT;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_get_used_stack_size_in_callout(OnigCalloutArgs* a, int* used_num, int* used_bytes)\r
-{\r
- int n;\r
-\r
- n = (int )(a->stk - a->stk_base);\r
-\r
- if (used_num != 0)\r
- *used_num = n;\r
-\r
- if (used_bytes != 0)\r
- *used_bytes = n * sizeof(StackType);\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-\r
-/* builtin callout functions */\r
-\r
-extern int\r
-onig_builtin_fail(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED)\r
-{\r
- return ONIG_CALLOUT_FAIL;\r
-}\r
-\r
-extern int\r
-onig_builtin_mismatch(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED)\r
-{\r
- return ONIG_MISMATCH;\r
-}\r
-\r
-#if 0\r
-extern int\r
-onig_builtin_success(OnigCalloutArgs* args ARG_UNUSED, void* user_data ARG_UNUSED)\r
-{\r
- return ONIG_CALLOUT_SUCCESS;\r
-}\r
-#endif\r
-\r
-extern int\r
-onig_builtin_error(OnigCalloutArgs* args, void* user_data ARG_UNUSED)\r
-{\r
- int r;\r
- int n;\r
- OnigValue val;\r
-\r
- r = onig_get_arg_by_callout_args(args, 0, 0, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- n = (int )val.l;\r
- if (n >= 0) {\r
- n = ONIGERR_INVALID_CALLOUT_BODY;\r
- }\r
- else if (onig_is_error_code_needs_param(n)) {\r
- n = ONIGERR_INVALID_CALLOUT_BODY;\r
- }\r
-\r
- return n;\r
-}\r
-\r
-extern int\r
-onig_builtin_count(OnigCalloutArgs* args, void* user_data)\r
-{\r
- (void )onig_check_callout_data_and_clear_old_values(args);\r
-\r
- return onig_builtin_total_count(args, user_data);\r
-}\r
-\r
-extern int\r
-onig_builtin_total_count(OnigCalloutArgs* args, void* user_data ARG_UNUSED)\r
-{\r
- int r;\r
- int slot;\r
- OnigType type;\r
- OnigValue val;\r
- OnigValue aval;\r
- OnigCodePoint count_type;\r
-\r
- r = onig_get_arg_by_callout_args(args, 0, &type, &aval);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- count_type = aval.c;\r
- if (count_type != '>' && count_type != 'X' && count_type != '<')\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, 0,\r
- &type, &val);\r
- if (r < ONIG_NORMAL)\r
- return r;\r
- else if (r > ONIG_NORMAL) {\r
- /* type == void: initial state */\r
- val.l = 0;\r
- }\r
-\r
- if (args->in == ONIG_CALLOUT_IN_RETRACTION) {\r
- slot = 2;\r
- if (count_type == '<')\r
- val.l++;\r
- else if (count_type == 'X')\r
- val.l--;\r
- }\r
- else {\r
- slot = 1;\r
- if (count_type != '<')\r
- val.l++;\r
- }\r
-\r
- r = onig_set_callout_data_by_callout_args_self(args, 0, ONIG_TYPE_LONG, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- /* slot 1: in progress counter, slot 2: in retraction counter */\r
- r = onig_get_callout_data_by_callout_args_self_dont_clear_old(args, slot,\r
- &type, &val);\r
- if (r < ONIG_NORMAL)\r
- return r;\r
- else if (r > ONIG_NORMAL) {\r
- val.l = 0;\r
- }\r
-\r
- val.l++;\r
- r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- return ONIG_CALLOUT_SUCCESS;\r
-}\r
-\r
-extern int\r
-onig_builtin_max(OnigCalloutArgs* args, void* user_data ARG_UNUSED)\r
-{\r
- int r;\r
- int slot;\r
- long max_val;\r
- OnigCodePoint count_type;\r
- OnigType type;\r
- OnigValue val;\r
- OnigValue aval;\r
-\r
- (void )onig_check_callout_data_and_clear_old_values(args);\r
-\r
- slot = 0;\r
- r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val);\r
- if (r < ONIG_NORMAL)\r
- return r;\r
- else if (r > ONIG_NORMAL) {\r
- /* type == void: initial state */\r
- type = ONIG_TYPE_LONG;\r
- val.l = 0;\r
- }\r
-\r
- r = onig_get_arg_by_callout_args(args, 0, &type, &aval);\r
- if (r != ONIG_NORMAL) return r;\r
- if (type == ONIG_TYPE_TAG) {\r
- r = onig_get_callout_data_by_callout_args(args, aval.tag, 0, &type, &aval);\r
- if (r < ONIG_NORMAL) return r;\r
- else if (r > ONIG_NORMAL)\r
- max_val = 0L;\r
- else\r
- max_val = aval.l;\r
- }\r
- else { /* LONG */\r
- max_val = aval.l;\r
- }\r
-\r
- r = onig_get_arg_by_callout_args(args, 1, &type, &aval);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- count_type = aval.c;\r
- if (count_type != '>' && count_type != 'X' && count_type != '<')\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- if (args->in == ONIG_CALLOUT_IN_RETRACTION) {\r
- if (count_type == '<') {\r
- if (val.l >= max_val) return ONIG_CALLOUT_FAIL;\r
- val.l++;\r
- }\r
- else if (count_type == 'X')\r
- val.l--;\r
- }\r
- else {\r
- if (count_type != '<') {\r
- if (val.l >= max_val) return ONIG_CALLOUT_FAIL;\r
- val.l++;\r
- }\r
- }\r
-\r
- r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- return ONIG_CALLOUT_SUCCESS;\r
-}\r
-\r
-enum OP_CMP {\r
- OP_EQ,\r
- OP_NE,\r
- OP_LT,\r
- OP_GT,\r
- OP_LE,\r
- OP_GE\r
-};\r
-\r
-extern int\r
-onig_builtin_cmp(OnigCalloutArgs* args, void* user_data ARG_UNUSED)\r
-{\r
- int r;\r
- int slot;\r
- long lv;\r
- long rv;\r
- OnigType type;\r
- OnigValue val;\r
- regex_t* reg;\r
- enum OP_CMP op;\r
-\r
- reg = args->regex;\r
-\r
- r = onig_get_arg_by_callout_args(args, 0, &type, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- if (type == ONIG_TYPE_TAG) {\r
- r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val);\r
- if (r < ONIG_NORMAL) return r;\r
- else if (r > ONIG_NORMAL)\r
- lv = 0L;\r
- else\r
- lv = val.l;\r
- }\r
- else { /* ONIG_TYPE_LONG */\r
- lv = val.l;\r
- }\r
-\r
- r = onig_get_arg_by_callout_args(args, 2, &type, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- if (type == ONIG_TYPE_TAG) {\r
- r = onig_get_callout_data_by_callout_args(args, val.tag, 0, &type, &val);\r
- if (r < ONIG_NORMAL) return r;\r
- else if (r > ONIG_NORMAL)\r
- rv = 0L;\r
- else\r
- rv = val.l;\r
- }\r
- else { /* ONIG_TYPE_LONG */\r
- rv = val.l;\r
- }\r
-\r
- slot = 0;\r
- r = onig_get_callout_data_by_callout_args_self(args, slot, &type, &val);\r
- if (r < ONIG_NORMAL)\r
- return r;\r
- else if (r > ONIG_NORMAL) {\r
- /* type == void: initial state */\r
- OnigCodePoint c1, c2;\r
- UChar* p;\r
-\r
- r = onig_get_arg_by_callout_args(args, 1, &type, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- p = val.s.start;\r
- c1 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end);\r
- p += ONIGENC_MBC_ENC_LEN(reg->enc, p);\r
- if (p < val.s.end) {\r
- c2 = ONIGENC_MBC_TO_CODE(reg->enc, p, val.s.end);\r
- p += ONIGENC_MBC_ENC_LEN(reg->enc, p);\r
- if (p != val.s.end) return ONIGERR_INVALID_CALLOUT_ARG;\r
- }\r
- else\r
- c2 = 0;\r
-\r
- switch (c1) {\r
- case '=':\r
- if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG;\r
- op = OP_EQ;\r
- break;\r
- case '!':\r
- if (c2 != '=') return ONIGERR_INVALID_CALLOUT_ARG;\r
- op = OP_NE;\r
- break;\r
- case '<':\r
- if (c2 == '=') op = OP_LE;\r
- else if (c2 == 0) op = OP_LT;\r
- else return ONIGERR_INVALID_CALLOUT_ARG;\r
- break;\r
- case '>':\r
- if (c2 == '=') op = OP_GE;\r
- else if (c2 == 0) op = OP_GT;\r
- else return ONIGERR_INVALID_CALLOUT_ARG;\r
- break;\r
- default:\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
- break;\r
- }\r
- val.l = (long )op;\r
- r = onig_set_callout_data_by_callout_args_self(args, slot, ONIG_TYPE_LONG, &val);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
- else {\r
- op = (enum OP_CMP )val.l;\r
- }\r
-\r
- switch (op) {\r
- case OP_EQ: r = (lv == rv); break;\r
- case OP_NE: r = (lv != rv); break;\r
- case OP_LT: r = (lv < rv); break;\r
- case OP_GT: r = (lv > rv); break;\r
- case OP_LE: r = (lv <= rv); break;\r
- case OP_GE: r = (lv >= rv); break;\r
- }\r
-\r
- return r == 0 ? ONIG_CALLOUT_FAIL : ONIG_CALLOUT_SUCCESS;\r
-}\r
-\r
-\r
-//#include <stdio.h>\r
-\r
-static FILE* OutFp;\r
-\r
-/* name start with "onig_" for macros. */\r
-static int\r
-onig_builtin_monitor(OnigCalloutArgs* args, void* user_data)\r
-{\r
- int r;\r
- int num;\r
- size_t tag_len;\r
- // const UChar* start;\r
- // const UChar* right;\r
- // const UChar* current;\r
- // const UChar* string;\r
- // const UChar* strend;\r
- const UChar* tag_start;\r
- const UChar* tag_end;\r
- regex_t* reg;\r
- OnigCalloutIn in;\r
- OnigType type;\r
- OnigValue val;\r
- char buf[20];\r
- // FILE* fp;\r
-\r
- // fp = OutFp;\r
-\r
- r = onig_get_arg_by_callout_args(args, 0, &type, &val);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- in = onig_get_callout_in_by_callout_args(args);\r
- if (in == ONIG_CALLOUT_IN_PROGRESS) {\r
- if (val.c == '<')\r
- return ONIG_CALLOUT_SUCCESS;\r
- }\r
- else {\r
- if (val.c != 'X' && val.c != '<')\r
- return ONIG_CALLOUT_SUCCESS;\r
- }\r
-\r
- num = onig_get_callout_num_by_callout_args(args);\r
- // start = onig_get_start_by_callout_args(args);\r
- // right = onig_get_right_range_by_callout_args(args);\r
- // current = onig_get_current_by_callout_args(args);\r
- // string = onig_get_string_by_callout_args(args);\r
- // strend = onig_get_string_end_by_callout_args(args);\r
- reg = onig_get_regex_by_callout_args(args);\r
- tag_start = onig_get_callout_tag_start(reg, num);\r
- tag_end = onig_get_callout_tag_end(reg, num);\r
-\r
- if (tag_start == 0)\r
- sprintf_s(buf, sizeof(buf), "#%d", num);\r
- else {\r
- /* CAUTION: tag string is not terminated with NULL. */\r
- int i;\r
-\r
- tag_len = tag_end - tag_start;\r
- if (tag_len >= sizeof(buf)) tag_len = sizeof(buf) - 1;\r
- for (i = 0; i < tag_len; i++) buf[i] = tag_start[i];\r
- buf[tag_len] = '\0';\r
- }\r
-/*\r
- fprintf(fp, "ONIG-MONITOR: %-4s %s at: %d [%d - %d] len: %d\n",\r
- buf,\r
- in == ONIG_CALLOUT_IN_PROGRESS ? "=>" : "<=",\r
- (int )(current - string),\r
- (int )(start - string),\r
- (int )(right - string),\r
- (int )(strend - string));\r
- //fflush(fp);\r
-*/\r
- return ONIG_CALLOUT_SUCCESS;\r
-}\r
-\r
-extern int\r
-onig_setup_builtin_monitors_by_ascii_encoded_name(void* fp /* FILE* */)\r
-{\r
- int id;\r
- char* name;\r
- OnigEncoding enc;\r
- unsigned int ts[4];\r
- OnigValue opts[4];\r
-\r
- if (IS_NOT_NULL(fp))\r
- OutFp = (FILE* )fp;\r
- else\r
- OutFp = stdout;\r
-\r
- enc = ONIG_ENCODING_ASCII;\r
-\r
- name = "MON";\r
- ts[0] = ONIG_TYPE_CHAR;\r
- opts[0].c = '>';\r
- BC_B_O(name, monitor, 1, ts, 1, opts);\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-#endif /* USE_CALLOUT */\r
+++ /dev/null
-/**********************************************************************\r
- reggnu.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-#include "oniggnu.h"\r
-\r
-extern void\r
-re_free_registers(OnigRegion* r)\r
-{\r
- /* 0: don't free self */\r
- onig_region_free(r, 0);\r
-}\r
-\r
-extern int\r
-re_adjust_startpos(regex_t* reg, const char* string, int size,\r
- int startpos, int range)\r
-{\r
- if (startpos > 0 && ONIGENC_MBC_MAXLEN(reg->enc) != 1 && startpos < size) {\r
- UChar *p;\r
- UChar *s = (UChar* )string + startpos;\r
-\r
- if (range > 0) {\r
- p = onigenc_get_right_adjust_char_head(reg->enc, (UChar* )string, s);\r
- }\r
- else {\r
- p = ONIGENC_LEFT_ADJUST_CHAR_HEAD(reg->enc, (UChar* )string, s);\r
- }\r
- return (int )(p - (UChar* )string);\r
- }\r
-\r
- return startpos;\r
-}\r
-\r
-extern int\r
-re_match(regex_t* reg, const char* str, int size, int pos,\r
- struct re_registers* regs)\r
-{\r
- return onig_match(reg, (UChar* )str, (UChar* )(str + size),\r
- (UChar* )(str + pos), regs, ONIG_OPTION_NONE);\r
-}\r
-\r
-extern int\r
-re_search(regex_t* bufp, const char* string, int size, int startpos, int range,\r
- struct re_registers* regs)\r
-{\r
- return onig_search(bufp, (UChar* )string, (UChar* )(string + size),\r
- (UChar* )(string + startpos),\r
- (UChar* )(string + startpos + range),\r
- regs, ONIG_OPTION_NONE);\r
-}\r
-\r
-extern int\r
-re_compile_pattern(const char* pattern, int size, regex_t* reg, char* ebuf)\r
-{\r
- int r;\r
- OnigErrorInfo einfo;\r
-\r
- r = onig_compile(reg, (UChar* )pattern, (UChar* )(pattern + size), &einfo);\r
- if (r != ONIG_NORMAL) {\r
- if (IS_NOT_NULL(ebuf))\r
- (void )onig_error_code_to_str((UChar* )ebuf, r, &einfo);\r
- }\r
-\r
- return r;\r
-}\r
-\r
-extern void\r
-re_free_pattern(regex_t* reg)\r
-{\r
- onig_free(reg);\r
-}\r
-\r
-extern int\r
-re_alloc_pattern(regex_t** reg)\r
-{\r
- *reg = (regex_t* )xmalloc(sizeof(regex_t));\r
- if (IS_NULL(*reg)) return ONIGERR_MEMORY;\r
-\r
- return onig_reg_init(*reg, ONIG_OPTION_DEFAULT,\r
- ONIGENC_CASE_FOLD_DEFAULT,\r
- OnigEncDefaultCharEncoding,\r
- OnigDefaultSyntax);\r
-}\r
-\r
-extern void\r
-re_set_casetable(const char* table)\r
-{\r
- onigenc_set_default_caseconv_table((UChar* )table);\r
-}\r
-\r
-extern void\r
-re_mbcinit(int mb_code)\r
-{\r
- OnigEncoding enc;\r
-\r
- switch (mb_code) {\r
- case RE_MBCTYPE_ASCII:\r
- enc = ONIG_ENCODING_ASCII;\r
- break;\r
- }\r
-\r
- onig_initialize(&enc, 1);\r
-\r
- onigenc_set_default_encoding(enc);\r
-}\r
+++ /dev/null
-#ifndef REGINT_H\r
-#define REGINT_H\r
-/**********************************************************************\r
- regint.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-/* for debug */\r
-/* #define ONIG_DEBUG_PARSE */\r
-/* #define ONIG_DEBUG_COMPILE */\r
-/* #define ONIG_DEBUG_SEARCH */\r
-/* #define ONIG_DEBUG_MATCH */\r
-/* #define ONIG_DONT_OPTIMIZE */\r
-\r
-/* for byte-code statistical data. */\r
-/* #define ONIG_DEBUG_STATISTICS */\r
-\r
-#if defined(ONIG_DEBUG_PARSE) || defined(ONIG_DEBUG_MATCH) || \\r
- defined(ONIG_DEBUG_SEARCH) || defined(ONIG_DEBUG_COMPILE) || \\r
- defined(ONIG_DEBUG_STATISTICS)\r
-#ifndef ONIG_DEBUG\r
-#define ONIG_DEBUG\r
-#endif\r
-#endif\r
-\r
-#if defined(__i386) || defined(__i386__) || defined(_M_IX86) || \\r
- (defined(__ppc__) && defined(__APPLE__)) || \\r
- defined(__x86_64) || defined(__x86_64__) || \\r
- defined(__mc68020__)\r
-#define PLATFORM_UNALIGNED_WORD_ACCESS\r
-#endif\r
-\r
-#ifdef __GNUC__\r
-#define USE_GOTO_LABELS_AS_VALUES\r
-#endif\r
-\r
-/* config */\r
-/* spec. config */\r
-#define USE_CALL\r
-#define USE_CALLOUT\r
-#define USE_BACKREF_WITH_LEVEL /* \k<name+n>, \k<name-n> */\r
-#define USE_STUBBORN_CHECK_CAPTURES_IN_EMPTY_REPEAT /* /(?:()|())*\2/ */\r
-#define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */\r
-#define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR\r
-#define USE_RETRY_LIMIT_IN_MATCH\r
-#ifdef USE_GOTO_LABELS_AS_VALUES\r
-#define USE_THREADED_CODE\r
-#define USE_DIRECT_THREADED_CODE\r
-#endif\r
-\r
-/* internal config */\r
-#define USE_OP_PUSH_OR_JUMP_EXACT\r
-#define USE_QUANT_PEEK_NEXT\r
-#define USE_ST_LIBRARY\r
-\r
-#define USE_WORD_BEGIN_END /* "\<", "\>" */\r
-#define USE_CAPTURE_HISTORY\r
-#define USE_VARIABLE_META_CHARS\r
-#define USE_POSIX_API_REGION_OPTION\r
-#define USE_FIND_LONGEST_SEARCH_ALL_OF_RANGE\r
-\r
-#include "regenc.h"\r
-\r
-#define INIT_MATCH_STACK_SIZE 160\r
-#define DEFAULT_MATCH_STACK_LIMIT_SIZE 0 /* unlimited */\r
-#define DEFAULT_RETRY_LIMIT_IN_MATCH 10000000\r
-#define DEFAULT_PARSE_DEPTH_LIMIT 4096\r
-\r
-/* */\r
-/* escape other system UChar definition */\r
-#ifdef ONIG_ESCAPE_UCHAR_COLLISION\r
-#undef ONIG_ESCAPE_UCHAR_COLLISION\r
-#endif\r
-\r
-#define xmalloc malloc\r
-#define xrealloc realloc\r
-#define xcalloc calloc\r
-#define xfree free\r
-\r
-#define st_init_table onig_st_init_table\r
-#define st_init_table_with_size onig_st_init_table_with_size\r
-#define st_init_numtable onig_st_init_numtable\r
-#define st_init_numtable_with_size onig_st_init_numtable_with_size\r
-#define st_init_strtable onig_st_init_strtable\r
-#define st_init_strtable_with_size onig_st_init_strtable_with_size\r
-#define st_delete onig_st_delete\r
-#define st_delete_safe onig_st_delete_safe\r
-#define st_insert onig_st_insert\r
-#define st_lookup onig_st_lookup\r
-#define st_foreach onig_st_foreach\r
-#define st_add_direct onig_st_add_direct\r
-#define st_free_table onig_st_free_table\r
-#define st_cleanup_safe onig_st_cleanup_safe\r
-#define st_copy onig_st_copy\r
-#define st_nothing_key_clone onig_st_nothing_key_clone\r
-#define st_nothing_key_free onig_st_nothing_key_free\r
-/* */\r
-#define onig_st_is_member st_is_member\r
-\r
-//#define xmemset memset\r
-//#define xmemcpy memcpy\r
-//#define xmemmove memmove\r
-\r
-#if defined(_WIN32) && !defined(__GNUC__)\r
-#define xalloca _alloca\r
-#define xvsnprintf(buf,size,fmt,args) _vsnprintf_s(buf,size,_TRUNCATE,fmt,args)\r
-#define xsnprintf sprintf_s\r
-#define xstrcat(dest,src,size) strcat_s(dest,size,src)\r
-#else\r
-#define xalloca alloca\r
-#define xvsnprintf vsnprintf\r
-#define xsnprintf snprintf\r
-#define xstrcat(dest,src,size) strcat(dest,src)\r
-#endif\r
-\r
-#if 0\r
-#include <stddef.h>\r
-#include <limits.h>\r
-#include <stdlib.h>\r
-\r
-#ifdef HAVE_STDINT_H\r
-#include <stdint.h>\r
-#endif\r
-\r
-#if defined(HAVE_ALLOCA_H) && !defined(__GNUC__)\r
-#include <alloca.h>\r
-#endif\r
-\r
-#include <string.h>\r
-\r
-#include <ctype.h>\r
-#ifdef HAVE_SYS_TYPES_H\r
-#ifndef __BORLANDC__\r
-#include <sys/types.h>\r
-#endif\r
-#endif\r
-\r
-#ifdef HAVE_INTTYPES_H\r
-#include <inttypes.h>\r
-#endif\r
-\r
-#ifdef __BORLANDC__\r
-#include <malloc.h>\r
-#endif\r
-\r
-#ifdef ONIG_DEBUG\r
-# include <stdio.h>\r
-#endif\r
-#endif\r
-\r
-#ifdef _WIN32\r
-#if defined(_MSC_VER) && (_MSC_VER < 1300)\r
-typedef int intptr_t;\r
-typedef unsigned int uintptr_t;\r
-#endif\r
-#endif\r
-\r
-typedef INTN intptr_t;\r
-typedef UINTN uintptr_t;\r
-\r
-#ifndef offsetof\r
-#define offsetof OFFSET_OF\r
-#endif\r
-\r
-#ifdef MIN\r
-#undef MIN\r
-#endif\r
-#ifdef MAX\r
-#undef MAX\r
-#endif\r
-\r
-#define MIN(a,b) (((a)>(b))?(b):(a))\r
-#define MAX(a,b) (((a)<(b))?(b):(a))\r
-\r
-#define IS_NULL(p) (((void*)(p)) == (void*)0)\r
-#define IS_NOT_NULL(p) (((void*)(p)) != (void*)0)\r
-#define CHECK_NULL_RETURN(p) if (IS_NULL(p)) return NULL\r
-#define CHECK_NULL_RETURN_MEMERR(p) if (IS_NULL(p)) return ONIGERR_MEMORY\r
-#define NULL_UCHARP ((UChar* )0)\r
-\r
-#define CHAR_MAP_SIZE 256\r
-#define INFINITE_LEN ONIG_INFINITE_DISTANCE\r
-\r
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS\r
-\r
-#define PLATFORM_GET_INC(val,p,type) do{\\r
- val = *(type* )p;\\r
- (p) += sizeof(type);\\r
-} while(0)\r
-\r
-#else\r
-\r
-#define PLATFORM_GET_INC(val,p,type) do{\\r
- xmemcpy(&val, (p), sizeof(type));\\r
- (p) += sizeof(type);\\r
-} while(0)\r
-\r
-/* sizeof(OnigCodePoint) */\r
-#ifdef SIZEOF_SIZE_T\r
-# define WORD_ALIGNMENT_SIZE SIZEOF_SIZE_T\r
-#else\r
-# define WORD_ALIGNMENT_SIZE SIZEOF_LONG\r
-#endif\r
-\r
-#define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\\r
- (pad_size) = WORD_ALIGNMENT_SIZE - ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\\r
- if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\\r
-} while (0)\r
-\r
-#define ALIGNMENT_RIGHT(addr) do {\\r
- (addr) += (WORD_ALIGNMENT_SIZE - 1);\\r
- (addr) -= ((uintptr_t )(addr) % WORD_ALIGNMENT_SIZE);\\r
-} while (0)\r
-\r
-#endif /* PLATFORM_UNALIGNED_WORD_ACCESS */\r
-\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-typedef struct {\r
- int flag;\r
- OnigCalloutOf of;\r
- int in;\r
- int name_id;\r
- const UChar* tag_start;\r
- const UChar* tag_end;\r
- OnigCalloutType type;\r
- OnigCalloutFunc start_func;\r
- OnigCalloutFunc end_func;\r
- union {\r
- struct {\r
- const UChar* start;\r
- const UChar* end;\r
- } content;\r
- struct {\r
- int num;\r
- int passed_num;\r
- OnigType types[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- } arg;\r
- } u;\r
-} CalloutListEntry;\r
-\r
-#endif\r
-\r
-/* stack pop level */\r
-enum StackPopLevel {\r
- STACK_POP_LEVEL_FREE = 0,\r
- STACK_POP_LEVEL_MEM_START = 1,\r
- STACK_POP_LEVEL_ALL = 2\r
-};\r
-\r
-/* optimize flags */\r
-enum OptimizeType {\r
- OPTIMIZE_NONE = 0,\r
- OPTIMIZE_STR, /* Slow Search */\r
- OPTIMIZE_STR_FAST, /* Sunday quick search / BMH */\r
- OPTIMIZE_STR_FAST_STEP_FORWARD, /* Sunday quick search / BMH */\r
- OPTIMIZE_STR_CASE_FOLD_FAST, /* Sunday quick search / BMH (ignore case) */\r
- OPTIMIZE_STR_CASE_FOLD, /* Slow Search (ignore case) */\r
- OPTIMIZE_MAP /* char map */\r
-};\r
-\r
-/* bit status */\r
-typedef unsigned int MemStatusType;\r
-\r
-#define MEM_STATUS_BITS_NUM (sizeof(MemStatusType) * 8)\r
-#define MEM_STATUS_CLEAR(stats) (stats) = 0\r
-#define MEM_STATUS_ON_ALL(stats) (stats) = ~((MemStatusType )0)\r
-#define MEM_STATUS_AT(stats,n) \\r
- ((n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1))\r
-#define MEM_STATUS_AT0(stats,n) \\r
- ((n) > 0 && (n) < (int )MEM_STATUS_BITS_NUM ? ((stats) & ((MemStatusType )1 << n)) : ((stats) & 1))\r
-\r
-#define MEM_STATUS_ON(stats,n) do {\\r
- if ((n) < (int )MEM_STATUS_BITS_NUM) {\\r
- if ((n) != 0)\\r
- (stats) |= ((MemStatusType )1 << (n));\\r
- }\\r
- else\\r
- (stats) |= 1;\\r
-} while (0)\r
-\r
-#define MEM_STATUS_ON_SIMPLE(stats,n) do {\\r
- if ((n) < (int )MEM_STATUS_BITS_NUM)\\r
- (stats) |= ((MemStatusType )1 << (n));\\r
-} while (0)\r
-\r
-\r
-#define INT_MAX_LIMIT ((1UL << (SIZEOF_INT * 8 - 1)) - 1)\r
-\r
-#define IS_CODE_WORD_ASCII(enc,code) \\r
- (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_WORD(enc,code))\r
-#define IS_CODE_DIGIT_ASCII(enc, code) \\r
- (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_DIGIT(enc,code))\r
-#define IS_CODE_XDIGIT_ASCII(enc, code) \\r
- (ONIGENC_IS_CODE_ASCII(code) && ONIGENC_IS_CODE_XDIGIT(enc,code))\r
-\r
-#define DIGITVAL(code) ((code) - '0')\r
-#define ODIGITVAL(code) DIGITVAL(code)\r
-#define XDIGITVAL(enc,code) \\r
- (IS_CODE_DIGIT_ASCII(enc,code) ? DIGITVAL(code) \\r
- : (ONIGENC_IS_CODE_UPPER(enc,code) ? (code) - 'A' + 10 : (code) - 'a' + 10))\r
-\r
-#define IS_SINGLELINE(option) ((option) & ONIG_OPTION_SINGLELINE)\r
-#define IS_MULTILINE(option) ((option) & ONIG_OPTION_MULTILINE)\r
-#define IS_IGNORECASE(option) ((option) & ONIG_OPTION_IGNORECASE)\r
-#define IS_EXTEND(option) ((option) & ONIG_OPTION_EXTEND)\r
-#define IS_FIND_LONGEST(option) ((option) & ONIG_OPTION_FIND_LONGEST)\r
-#define IS_FIND_NOT_EMPTY(option) ((option) & ONIG_OPTION_FIND_NOT_EMPTY)\r
-#define IS_FIND_CONDITION(option) ((option) & \\r
- (ONIG_OPTION_FIND_LONGEST | ONIG_OPTION_FIND_NOT_EMPTY))\r
-#define IS_NOTBOL(option) ((option) & ONIG_OPTION_NOTBOL)\r
-#define IS_NOTEOL(option) ((option) & ONIG_OPTION_NOTEOL)\r
-#define IS_POSIX_REGION(option) ((option) & ONIG_OPTION_POSIX_REGION)\r
-\r
-#define IS_WORD_ASCII(option) \\r
- ((option) & (ONIG_OPTION_WORD_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII))\r
-#define IS_DIGIT_ASCII(option) \\r
- ((option) & (ONIG_OPTION_DIGIT_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII))\r
-#define IS_SPACE_ASCII(option) \\r
- ((option) & (ONIG_OPTION_SPACE_IS_ASCII | ONIG_OPTION_POSIX_IS_ASCII))\r
-#define IS_POSIX_ASCII(option) ((option) & ONIG_OPTION_POSIX_IS_ASCII)\r
-\r
-#define IS_ASCII_MODE_CTYPE_OPTION(ctype, options) \\r
- ((ctype) >= 0 && \\r
- (((ctype) < ONIGENC_CTYPE_ASCII && IS_POSIX_ASCII(options)) ||\\r
- ((ctype) == ONIGENC_CTYPE_WORD && IS_WORD_ASCII(options)) ||\\r
- ((ctype) == ONIGENC_CTYPE_DIGIT && IS_DIGIT_ASCII(options)) ||\\r
- ((ctype) == ONIGENC_CTYPE_SPACE && IS_SPACE_ASCII(options))))\r
-\r
-#define DISABLE_CASE_FOLD_MULTI_CHAR(case_fold_flag) \\r
- ((case_fold_flag) & ~INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR)\r
-\r
-#define INFINITE_REPEAT -1\r
-#define IS_INFINITE_REPEAT(n) ((n) == INFINITE_REPEAT)\r
-\r
-/* bitset */\r
-#define BITS_PER_BYTE 8\r
-#define SINGLE_BYTE_SIZE (1 << BITS_PER_BYTE)\r
-#define BITS_IN_ROOM (sizeof(Bits) * BITS_PER_BYTE)\r
-#define BITSET_SIZE (SINGLE_BYTE_SIZE / BITS_IN_ROOM)\r
-\r
-#ifdef PLATFORM_UNALIGNED_WORD_ACCESS\r
-typedef unsigned int Bits;\r
-#else\r
-typedef unsigned char Bits;\r
-#endif\r
-typedef Bits BitSet[BITSET_SIZE];\r
-typedef Bits* BitSetRef;\r
-\r
-#define SIZE_BITSET sizeof(BitSet)\r
-\r
-#define BITSET_CLEAR(bs) do {\\r
- int i;\\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { (bs)[i] = 0; } \\r
-} while (0)\r
-\r
-#define BS_ROOM(bs,pos) (bs)[pos / BITS_IN_ROOM]\r
-#define BS_BIT(pos) (1 << (pos % BITS_IN_ROOM))\r
-\r
-#define BITSET_AT(bs, pos) (BS_ROOM(bs,pos) & BS_BIT(pos))\r
-#define BITSET_SET_BIT(bs, pos) BS_ROOM(bs,pos) |= BS_BIT(pos)\r
-#define BITSET_CLEAR_BIT(bs, pos) BS_ROOM(bs,pos) &= ~(BS_BIT(pos))\r
-#define BITSET_INVERT_BIT(bs, pos) BS_ROOM(bs,pos) ^= BS_BIT(pos)\r
-\r
-/* bytes buffer */\r
-typedef struct _BBuf {\r
- UChar* p;\r
- unsigned int used;\r
- unsigned int alloc;\r
-} BBuf;\r
-\r
-#define BB_INIT(buf,size) bbuf_init((BBuf* )(buf), (size))\r
-\r
-#define BB_SIZE_INC(buf,inc) do{\\r
- (buf)->alloc += (inc);\\r
- (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc);\\r
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\\r
-} while (0)\r
-\r
-#define BB_EXPAND(buf,low) do{\\r
- unsigned int OldSize_ = (buf)->alloc * sizeof((buf)->p[0]);\\r
- do { (buf)->alloc *= 2; } while ((buf)->alloc < (unsigned int )low);\\r
- (buf)->p = (UChar* )xrealloc((buf)->p, (buf)->alloc, OldSize_);\\r
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\\r
-} while (0)\r
-\r
-#define BB_ENSURE_SIZE(buf,size) do{\\r
- unsigned int new_alloc = (buf)->alloc;\\r
- while (new_alloc < (unsigned int )(size)) { new_alloc *= 2; }\\r
- if ((buf)->alloc != new_alloc) {\\r
- (buf)->p = (UChar* )xrealloc((buf)->p, new_alloc, (buf)->alloc);\\r
- if (IS_NULL((buf)->p)) return(ONIGERR_MEMORY);\\r
- (buf)->alloc = new_alloc;\\r
- }\\r
-} while (0)\r
-\r
-#define BB_WRITE(buf,pos,bytes,n) do{\\r
- int used = (pos) + (n);\\r
- if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\\r
- xmemcpy((buf)->p + (pos), (bytes), (n));\\r
- if ((buf)->used < (unsigned int )used) (buf)->used = used;\\r
-} while (0)\r
-\r
-#define BB_WRITE1(buf,pos,byte) do{\\r
- int used = (pos) + 1;\\r
- if ((buf)->alloc < (unsigned int )used) BB_EXPAND((buf),used);\\r
- (buf)->p[(pos)] = (byte);\\r
- if ((buf)->used < (unsigned int )used) (buf)->used = used;\\r
-} while (0)\r
-\r
-#define BB_ADD(buf,bytes,n) BB_WRITE((buf),(buf)->used,(bytes),(n))\r
-#define BB_ADD1(buf,byte) BB_WRITE1((buf),(buf)->used,(byte))\r
-#define BB_GET_ADD_ADDRESS(buf) ((buf)->p + (buf)->used)\r
-#define BB_GET_OFFSET_POS(buf) ((buf)->used)\r
-\r
-/* from < to */\r
-#define BB_MOVE_RIGHT(buf,from,to,n) do {\\r
- if ((unsigned int )((to)+(n)) > (buf)->alloc) BB_EXPAND((buf),(to) + (n));\\r
- xmemmove((buf)->p + (to), (buf)->p + (from), (n));\\r
- if ((unsigned int )((to)+(n)) > (buf)->used) (buf)->used = (to) + (n);\\r
-} while (0)\r
-\r
-/* from > to */\r
-#define BB_MOVE_LEFT(buf,from,to,n) do {\\r
- xmemmove((buf)->p + (to), (buf)->p + (from), (n));\\r
-} while (0)\r
-\r
-/* from > to */\r
-#define BB_MOVE_LEFT_REDUCE(buf,from,to) do {\\r
- xmemmove((buf)->p + (to), (buf)->p + (from), (buf)->used - (from));\\r
- (buf)->used -= (from - to);\\r
-} while (0)\r
-\r
-#define BB_INSERT(buf,pos,bytes,n) do {\\r
- if (pos >= (buf)->used) {\\r
- BB_WRITE(buf,pos,bytes,n);\\r
- }\\r
- else {\\r
- BB_MOVE_RIGHT((buf),(pos),(pos) + (n),((buf)->used - (pos)));\\r
- xmemcpy((buf)->p + (pos), (bytes), (n));\\r
- }\\r
-} while (0)\r
-\r
-#define BB_GET_BYTE(buf, pos) (buf)->p[(pos)]\r
-\r
-\r
-/* has body */\r
-#define ANCR_PREC_READ (1<<0)\r
-#define ANCR_PREC_READ_NOT (1<<1)\r
-#define ANCR_LOOK_BEHIND (1<<2)\r
-#define ANCR_LOOK_BEHIND_NOT (1<<3)\r
-/* no body */\r
-#define ANCR_BEGIN_BUF (1<<4)\r
-#define ANCR_BEGIN_LINE (1<<5)\r
-#define ANCR_BEGIN_POSITION (1<<6)\r
-#define ANCR_END_BUF (1<<7)\r
-#define ANCR_SEMI_END_BUF (1<<8)\r
-#define ANCR_END_LINE (1<<9)\r
-#define ANCR_WORD_BOUNDARY (1<<10)\r
-#define ANCR_NO_WORD_BOUNDARY (1<<11)\r
-#define ANCR_WORD_BEGIN (1<<12)\r
-#define ANCR_WORD_END (1<<13)\r
-#define ANCR_ANYCHAR_INF (1<<14)\r
-#define ANCR_ANYCHAR_INF_ML (1<<15)\r
-#define ANCR_TEXT_SEGMENT_BOUNDARY (1<<16)\r
-#define ANCR_NO_TEXT_SEGMENT_BOUNDARY (1<<17)\r
-\r
-\r
-#define ANCHOR_HAS_BODY(a) ((a)->type < ANCR_BEGIN_BUF)\r
-\r
-#define IS_WORD_ANCHOR_TYPE(type) \\r
- ((type) == ANCR_WORD_BOUNDARY || (type) == ANCR_NO_WORD_BOUNDARY || \\r
- (type) == ANCR_WORD_BEGIN || (type) == ANCR_WORD_END)\r
-\r
-/* operation code */\r
-enum OpCode {\r
- OP_FINISH = 0, /* matching process terminator (no more alternative) */\r
- OP_END = 1, /* pattern code terminator (success end) */\r
-\r
- OP_EXACT1 = 2, /* single byte, N = 1 */\r
- OP_EXACT2, /* single byte, N = 2 */\r
- OP_EXACT3, /* single byte, N = 3 */\r
- OP_EXACT4, /* single byte, N = 4 */\r
- OP_EXACT5, /* single byte, N = 5 */\r
- OP_EXACTN, /* single byte */\r
- OP_EXACTMB2N1, /* mb-length = 2 N = 1 */\r
- OP_EXACTMB2N2, /* mb-length = 2 N = 2 */\r
- OP_EXACTMB2N3, /* mb-length = 2 N = 3 */\r
- OP_EXACTMB2N, /* mb-length = 2 */\r
- OP_EXACTMB3N, /* mb-length = 3 */\r
- OP_EXACTMBN, /* other length */\r
-\r
- OP_EXACT1_IC, /* single byte, N = 1, ignore case */\r
- OP_EXACTN_IC, /* single byte, ignore case */\r
-\r
- OP_CCLASS,\r
- OP_CCLASS_MB,\r
- OP_CCLASS_MIX,\r
- OP_CCLASS_NOT,\r
- OP_CCLASS_MB_NOT,\r
- OP_CCLASS_MIX_NOT,\r
-\r
- OP_ANYCHAR, /* "." */\r
- OP_ANYCHAR_ML, /* "." multi-line */\r
- OP_ANYCHAR_STAR, /* ".*" */\r
- OP_ANYCHAR_ML_STAR, /* ".*" multi-line */\r
- OP_ANYCHAR_STAR_PEEK_NEXT,\r
- OP_ANYCHAR_ML_STAR_PEEK_NEXT,\r
-\r
- OP_WORD,\r
- OP_WORD_ASCII,\r
- OP_NO_WORD,\r
- OP_NO_WORD_ASCII,\r
- OP_WORD_BOUNDARY,\r
- OP_NO_WORD_BOUNDARY,\r
- OP_WORD_BEGIN,\r
- OP_WORD_END,\r
-\r
- OP_TEXT_SEGMENT_BOUNDARY,\r
-\r
- OP_BEGIN_BUF,\r
- OP_END_BUF,\r
- OP_BEGIN_LINE,\r
- OP_END_LINE,\r
- OP_SEMI_END_BUF,\r
- OP_BEGIN_POSITION,\r
-\r
- OP_BACKREF1,\r
- OP_BACKREF2,\r
- OP_BACKREF_N,\r
- OP_BACKREF_N_IC,\r
- OP_BACKREF_MULTI,\r
- OP_BACKREF_MULTI_IC,\r
- OP_BACKREF_WITH_LEVEL, /* \k<xxx+n>, \k<xxx-n> */\r
- OP_BACKREF_WITH_LEVEL_IC, /* \k<xxx+n>, \k<xxx-n> */\r
- OP_BACKREF_CHECK, /* (?(n)), (?('name')) */\r
- OP_BACKREF_CHECK_WITH_LEVEL, /* (?(n-level)), (?('name-level')) */\r
-\r
- OP_MEMORY_START,\r
- OP_MEMORY_START_PUSH, /* push back-tracker to stack */\r
- OP_MEMORY_END_PUSH, /* push back-tracker to stack */\r
- OP_MEMORY_END_PUSH_REC, /* push back-tracker to stack */\r
- OP_MEMORY_END,\r
- OP_MEMORY_END_REC, /* push marker to stack */\r
-\r
- OP_FAIL, /* pop stack and move */\r
- OP_JUMP,\r
- OP_PUSH,\r
- OP_PUSH_SUPER,\r
- OP_POP_OUT,\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
- OP_PUSH_OR_JUMP_EXACT1, /* if match exact then push, else jump. */\r
-#endif\r
- OP_PUSH_IF_PEEK_NEXT, /* if match exact then push, else none. */\r
- OP_REPEAT, /* {n,m} */\r
- OP_REPEAT_NG, /* {n,m}? (non greedy) */\r
- OP_REPEAT_INC,\r
- OP_REPEAT_INC_NG, /* non greedy */\r
- OP_REPEAT_INC_SG, /* search and get in stack */\r
- OP_REPEAT_INC_NG_SG, /* search and get in stack (non greedy) */\r
- OP_EMPTY_CHECK_START, /* null loop checker start */\r
- OP_EMPTY_CHECK_END, /* null loop checker end */\r
- OP_EMPTY_CHECK_END_MEMST, /* null loop checker end (with capture status) */\r
- OP_EMPTY_CHECK_END_MEMST_PUSH, /* with capture status and push check-end */\r
-\r
- OP_PREC_READ_START, /* (?=...) start */\r
- OP_PREC_READ_END, /* (?=...) end */\r
- OP_PREC_READ_NOT_START, /* (?!...) start */\r
- OP_PREC_READ_NOT_END, /* (?!...) end */\r
- OP_ATOMIC_START, /* (?>...) start */\r
- OP_ATOMIC_END, /* (?>...) end */\r
- OP_LOOK_BEHIND, /* (?<=...) start (no needs end opcode) */\r
- OP_LOOK_BEHIND_NOT_START, /* (?<!...) start */\r
- OP_LOOK_BEHIND_NOT_END, /* (?<!...) end */\r
-\r
- OP_CALL, /* \g<name> */\r
- OP_RETURN,\r
- OP_PUSH_SAVE_VAL,\r
- OP_UPDATE_VAR,\r
-#ifdef USE_CALLOUT\r
- OP_CALLOUT_CONTENTS, /* (?{...}) (?{{...}}) */\r
- OP_CALLOUT_NAME, /* (*name) (*name[tag](args...)) */\r
-#endif\r
-};\r
-\r
-enum SaveType {\r
- SAVE_KEEP = 0, /* SAVE S */\r
- SAVE_S = 1,\r
- SAVE_RIGHT_RANGE = 2,\r
-};\r
-\r
-enum UpdateVarType {\r
- UPDATE_VAR_KEEP_FROM_STACK_LAST = 0,\r
- UPDATE_VAR_S_FROM_STACK = 1,\r
- UPDATE_VAR_RIGHT_RANGE_FROM_STACK = 2,\r
- UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK = 3,\r
- UPDATE_VAR_RIGHT_RANGE_INIT = 4,\r
-};\r
-\r
-enum TextSegmentBoundaryType {\r
- EXTENDED_GRAPHEME_CLUSTER_BOUNDARY = 0,\r
- WORD_BOUNDARY = 1,\r
-};\r
-\r
-typedef int RelAddrType;\r
-typedef int AbsAddrType;\r
-typedef int LengthType;\r
-typedef int RepeatNumType;\r
-typedef int MemNumType;\r
-typedef void* PointerType;\r
-typedef int SaveType;\r
-typedef int UpdateVarType;\r
-typedef int ModeType;\r
-\r
-#define SIZE_OPCODE 1\r
-#define SIZE_RELADDR sizeof(RelAddrType)\r
-#define SIZE_ABSADDR sizeof(AbsAddrType)\r
-#define SIZE_LENGTH sizeof(LengthType)\r
-#define SIZE_MEMNUM sizeof(MemNumType)\r
-#define SIZE_REPEATNUM sizeof(RepeatNumType)\r
-#define SIZE_OPTION sizeof(OnigOptionType)\r
-#define SIZE_CODE_POINT sizeof(OnigCodePoint)\r
-#define SIZE_POINTER sizeof(PointerType)\r
-#define SIZE_SAVE_TYPE sizeof(SaveType)\r
-#define SIZE_UPDATE_VAR_TYPE sizeof(UpdateVarType)\r
-#define SIZE_MODE sizeof(ModeType)\r
-\r
-#define GET_RELADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, RelAddrType)\r
-#define GET_ABSADDR_INC(addr,p) PLATFORM_GET_INC(addr, p, AbsAddrType)\r
-#define GET_LENGTH_INC(len,p) PLATFORM_GET_INC(len, p, LengthType)\r
-#define GET_MEMNUM_INC(num,p) PLATFORM_GET_INC(num, p, MemNumType)\r
-#define GET_REPEATNUM_INC(num,p) PLATFORM_GET_INC(num, p, RepeatNumType)\r
-#define GET_OPTION_INC(option,p) PLATFORM_GET_INC(option, p, OnigOptionType)\r
-#define GET_POINTER_INC(ptr,p) PLATFORM_GET_INC(ptr, p, PointerType)\r
-#define GET_SAVE_TYPE_INC(type,p) PLATFORM_GET_INC(type, p, SaveType)\r
-#define GET_UPDATE_VAR_TYPE_INC(type,p) PLATFORM_GET_INC(type, p, UpdateVarType)\r
-#define GET_MODE_INC(mode,p) PLATFORM_GET_INC(mode, p, ModeType)\r
-\r
-/* code point's address must be aligned address. */\r
-#define GET_CODE_POINT(code,p) code = *((OnigCodePoint* )(p))\r
-#define GET_BYTE_INC(byte,p) do{\\r
- byte = *(p);\\r
- (p)++;\\r
-} while(0)\r
-\r
-\r
-/* op-code + arg size */\r
-#if 0\r
-#define SIZE_OP_ANYCHAR_STAR SIZE_OPCODE\r
-#define SIZE_OP_ANYCHAR_STAR_PEEK_NEXT (SIZE_OPCODE + 1)\r
-#define SIZE_OP_JUMP (SIZE_OPCODE + SIZE_RELADDR)\r
-#define SIZE_OP_PUSH (SIZE_OPCODE + SIZE_RELADDR)\r
-#define SIZE_OP_PUSH_SUPER (SIZE_OPCODE + SIZE_RELADDR)\r
-#define SIZE_OP_POP_OUT SIZE_OPCODE\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
-#define SIZE_OP_PUSH_OR_JUMP_EXACT1 (SIZE_OPCODE + SIZE_RELADDR + 1)\r
-#endif\r
-#define SIZE_OP_PUSH_IF_PEEK_NEXT (SIZE_OPCODE + SIZE_RELADDR + 1)\r
-#define SIZE_OP_REPEAT_INC (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_REPEAT_INC_NG (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_WORD_BOUNDARY (SIZE_OPCODE + SIZE_MODE)\r
-#define SIZE_OP_PREC_READ_START SIZE_OPCODE\r
-#define SIZE_OP_PREC_READ_NOT_START (SIZE_OPCODE + SIZE_RELADDR)\r
-#define SIZE_OP_PREC_READ_END SIZE_OPCODE\r
-#define SIZE_OP_PREC_READ_NOT_END SIZE_OPCODE\r
-#define SIZE_OP_FAIL SIZE_OPCODE\r
-#define SIZE_OP_MEMORY_START (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_MEMORY_START_PUSH (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_MEMORY_END_PUSH (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_MEMORY_END_PUSH_REC (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_MEMORY_END (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_MEMORY_END_REC (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_ATOMIC_START SIZE_OPCODE\r
-#define SIZE_OP_ATOMIC_END SIZE_OPCODE\r
-#define SIZE_OP_EMPTY_CHECK_START (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_EMPTY_CHECK_END (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_LOOK_BEHIND (SIZE_OPCODE + SIZE_LENGTH)\r
-#define SIZE_OP_LOOK_BEHIND_NOT_START (SIZE_OPCODE + SIZE_RELADDR + SIZE_LENGTH)\r
-#define SIZE_OP_LOOK_BEHIND_NOT_END SIZE_OPCODE\r
-#define SIZE_OP_CALL (SIZE_OPCODE + SIZE_ABSADDR)\r
-#define SIZE_OP_RETURN SIZE_OPCODE\r
-#define SIZE_OP_PUSH_SAVE_VAL (SIZE_OPCODE + SIZE_SAVE_TYPE + SIZE_MEMNUM)\r
-#define SIZE_OP_UPDATE_VAR (SIZE_OPCODE + SIZE_UPDATE_VAR_TYPE + SIZE_MEMNUM)\r
-\r
-#ifdef USE_CALLOUT\r
-#define SIZE_OP_CALLOUT_CONTENTS (SIZE_OPCODE + SIZE_MEMNUM)\r
-#define SIZE_OP_CALLOUT_NAME (SIZE_OPCODE + SIZE_MEMNUM + SIZE_MEMNUM)\r
-#endif\r
-\r
-#else /* if 0 */\r
-\r
-/* for relative address increment to go next op. */\r
-#define SIZE_INC_OP 1\r
-\r
-#define SIZE_OP_ANYCHAR_STAR 1\r
-#define SIZE_OP_ANYCHAR_STAR_PEEK_NEXT 1\r
-#define SIZE_OP_JUMP 1\r
-#define SIZE_OP_PUSH 1\r
-#define SIZE_OP_PUSH_SUPER 1\r
-#define SIZE_OP_POP_OUT 1\r
-#ifdef USE_OP_PUSH_OR_JUMP_EXACT\r
-#define SIZE_OP_PUSH_OR_JUMP_EXACT1 1\r
-#endif\r
-#define SIZE_OP_PUSH_IF_PEEK_NEXT 1\r
-#define SIZE_OP_REPEAT 1\r
-#define SIZE_OP_REPEAT_INC 1\r
-#define SIZE_OP_REPEAT_INC_NG 1\r
-#define SIZE_OP_WORD_BOUNDARY 1\r
-#define SIZE_OP_PREC_READ_START 1\r
-#define SIZE_OP_PREC_READ_NOT_START 1\r
-#define SIZE_OP_PREC_READ_END 1\r
-#define SIZE_OP_PREC_READ_NOT_END 1\r
-#define SIZE_OP_BACKREF 1\r
-#define SIZE_OP_FAIL 1\r
-#define SIZE_OP_MEMORY_START 1\r
-#define SIZE_OP_MEMORY_START_PUSH 1\r
-#define SIZE_OP_MEMORY_END_PUSH 1\r
-#define SIZE_OP_MEMORY_END_PUSH_REC 1\r
-#define SIZE_OP_MEMORY_END 1\r
-#define SIZE_OP_MEMORY_END_REC 1\r
-#define SIZE_OP_ATOMIC_START 1\r
-#define SIZE_OP_ATOMIC_END 1\r
-#define SIZE_OP_EMPTY_CHECK_START 1\r
-#define SIZE_OP_EMPTY_CHECK_END 1\r
-#define SIZE_OP_LOOK_BEHIND 1\r
-#define SIZE_OP_LOOK_BEHIND_NOT_START 1\r
-#define SIZE_OP_LOOK_BEHIND_NOT_END 1\r
-#define SIZE_OP_CALL 1\r
-#define SIZE_OP_RETURN 1\r
-#define SIZE_OP_PUSH_SAVE_VAL 1\r
-#define SIZE_OP_UPDATE_VAR 1\r
-\r
-#ifdef USE_CALLOUT\r
-#define SIZE_OP_CALLOUT_CONTENTS 1\r
-#define SIZE_OP_CALLOUT_NAME 1\r
-#endif\r
-#endif /* if 0 */\r
-\r
-\r
-#define MC_ESC(syn) (syn)->meta_char_table.esc\r
-#define MC_ANYCHAR(syn) (syn)->meta_char_table.anychar\r
-#define MC_ANYTIME(syn) (syn)->meta_char_table.anytime\r
-#define MC_ZERO_OR_ONE_TIME(syn) (syn)->meta_char_table.zero_or_one_time\r
-#define MC_ONE_OR_MORE_TIME(syn) (syn)->meta_char_table.one_or_more_time\r
-#define MC_ANYCHAR_ANYTIME(syn) (syn)->meta_char_table.anychar_anytime\r
-\r
-#define IS_MC_ESC_CODE(code, syn) \\r
- ((code) == MC_ESC(syn) && \\r
- !IS_SYNTAX_OP2((syn), ONIG_SYN_OP2_INEFFECTIVE_ESCAPE))\r
-\r
-\r
-#define SYN_POSIX_COMMON_OP \\r
- ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_POSIX_BRACKET | \\r
- ONIG_SYN_OP_DECIMAL_BACKREF | \\r
- ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_ASTERISK_ZERO_INF | \\r
- ONIG_SYN_OP_LINE_ANCHOR | \\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS )\r
-\r
-#define SYN_GNU_REGEX_OP \\r
- ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | \\r
- ONIG_SYN_OP_POSIX_BRACKET | ONIG_SYN_OP_DECIMAL_BACKREF | \\r
- ONIG_SYN_OP_BRACE_INTERVAL | ONIG_SYN_OP_LPAREN_SUBEXP | \\r
- ONIG_SYN_OP_VBAR_ALT | \\r
- ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF | \\r
- ONIG_SYN_OP_QMARK_ZERO_ONE | \\r
- ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR | ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR | \\r
- ONIG_SYN_OP_ESC_W_WORD | \\r
- ONIG_SYN_OP_ESC_B_WORD_BOUND | ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | \\r
- ONIG_SYN_OP_ESC_S_WHITE_SPACE | ONIG_SYN_OP_ESC_D_DIGIT | \\r
- ONIG_SYN_OP_LINE_ANCHOR )\r
-\r
-#define SYN_GNU_REGEX_BV \\r
- ( ONIG_SYN_CONTEXT_INDEP_ANCHORS | ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | \\r
- ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS | ONIG_SYN_ALLOW_INVALID_INTERVAL | \\r
- ONIG_SYN_BACKSLASH_ESCAPE_IN_CC | ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC )\r
-\r
-\r
-#define NCCLASS_FLAGS(cc) ((cc)->flags)\r
-#define NCCLASS_FLAG_SET(cc,flag) (NCCLASS_FLAGS(cc) |= (flag))\r
-#define NCCLASS_FLAG_CLEAR(cc,flag) (NCCLASS_FLAGS(cc) &= ~(flag))\r
-#define IS_NCCLASS_FLAG_ON(cc,flag) ((NCCLASS_FLAGS(cc) & (flag)) != 0)\r
-\r
-/* cclass node */\r
-#define FLAG_NCCLASS_NOT (1<<0)\r
-#define FLAG_NCCLASS_SHARE (1<<1)\r
-\r
-#define NCCLASS_SET_NOT(nd) NCCLASS_FLAG_SET(nd, FLAG_NCCLASS_NOT)\r
-#define NCCLASS_CLEAR_NOT(nd) NCCLASS_FLAG_CLEAR(nd, FLAG_NCCLASS_NOT)\r
-#define IS_NCCLASS_NOT(nd) IS_NCCLASS_FLAG_ON(nd, FLAG_NCCLASS_NOT)\r
-\r
-\r
-typedef struct {\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- const void* opaddr;\r
-#else\r
- enum OpCode opcode;\r
-#endif\r
- union {\r
- struct {\r
- UChar s[16]; /* Now used first 7 bytes only. */\r
- } exact;\r
- struct {\r
- UChar* s;\r
- LengthType n; /* number of chars */\r
- } exact_n; /* EXACTN, EXACTN_IC, EXACTMB2N, EXACTMB3N */\r
- struct {\r
- UChar* s;\r
- LengthType n; /* number of chars */\r
- LengthType len; /* char byte length */\r
- } exact_len_n; /* EXACTMBN */\r
- struct {\r
- BitSetRef bsp;\r
- } cclass;\r
- struct {\r
- void* mb;\r
- } cclass_mb;\r
- struct {\r
- void* mb; /* mb must be same position with cclass_mb for match_at(). */\r
- BitSetRef bsp;\r
- } cclass_mix;\r
- struct {\r
- UChar c;\r
- } anychar_star_peek_next;\r
- struct {\r
- ModeType mode;\r
- } word_boundary; /* OP_WORD_BOUNDARY, OP_NO_WORD_BOUNDARY, OP_WORD_BEGIN, OP_WORD_END */\r
- struct {\r
- enum TextSegmentBoundaryType type;\r
- int not;\r
- } text_segment_boundary;\r
- struct {\r
- union {\r
- MemNumType n1; /* num == 1 */\r
- MemNumType* ns; /* num > 1 */\r
- };\r
- int num;\r
- int nest_level;\r
- } backref_general; /* BACKREF_MULTI, BACKREF_MULTI_IC, BACKREF_WITH_LEVEL, BACKREF_CHECK, BACKREF_CHECK_WITH_LEVEL, */\r
- struct {\r
- MemNumType n1;\r
- } backref_n; /* BACKREF_N, BACKREF_N_IC */\r
- struct {\r
- MemNumType num;\r
- } memory_start; /* MEMORY_START, MEMORY_START_PUSH */\r
- struct {\r
- MemNumType num;\r
- } memory_end; /* MEMORY_END, MEMORY_END_REC, MEMORY_END_PUSH, MEMORY_END_PUSH_REC */\r
- struct {\r
- RelAddrType addr;\r
- } jump;\r
- struct {\r
- RelAddrType addr;\r
- } push;\r
- struct {\r
- RelAddrType addr;\r
- UChar c;\r
- } push_or_jump_exact1;\r
- struct {\r
- RelAddrType addr;\r
- UChar c;\r
- } push_if_peek_next;\r
- struct {\r
- MemNumType id;\r
- RelAddrType addr;\r
- } repeat; /* REPEAT, REPEAT_NG */\r
- struct {\r
- MemNumType id;\r
- } repeat_inc; /* REPEAT_INC, REPEAT_INC_SG, REPEAT_INC_NG, REPEAT_INC_NG_SG */\r
- struct {\r
- MemNumType mem;\r
- } empty_check_start;\r
- struct {\r
- MemNumType mem;\r
- } empty_check_end; /* EMPTY_CHECK_END, EMPTY_CHECK_END_MEMST, EMPTY_CHECK_END_MEMST_PUSH */\r
- struct {\r
- RelAddrType addr;\r
- } prec_read_not_start;\r
- struct {\r
- LengthType len;\r
- } look_behind;\r
- struct {\r
- LengthType len;\r
- RelAddrType addr;\r
- } look_behind_not_start;\r
- struct {\r
- AbsAddrType addr;\r
- } call;\r
- struct {\r
- SaveType type;\r
- MemNumType id;\r
- } push_save_val;\r
- struct {\r
- UpdateVarType type;\r
- MemNumType id;\r
- } update_var;\r
-#ifdef USE_CALLOUT\r
- struct {\r
- MemNumType num;\r
- } callout_contents;\r
- struct {\r
- MemNumType num;\r
- MemNumType id;\r
- } callout_name;\r
-#endif\r
- };\r
-} Operation;\r
-\r
-typedef struct {\r
- const UChar* pattern;\r
- const UChar* pattern_end;\r
-#ifdef USE_CALLOUT\r
- void* tag_table;\r
- int callout_num;\r
- int callout_list_alloc;\r
- CalloutListEntry* callout_list; /* index: callout num */\r
-#endif\r
-} RegexExt;\r
-\r
-struct re_pattern_buffer {\r
- /* common members of BBuf(bytes-buffer) */\r
- Operation* ops;\r
-#ifdef USE_DIRECT_THREADED_CODE\r
- enum OpCode* ocs;\r
-#endif\r
- Operation* ops_curr;\r
- unsigned int ops_used; /* used space for ops */\r
- unsigned int ops_alloc; /* allocated space for ops */\r
- unsigned char* string_pool;\r
- unsigned char* string_pool_end;\r
-\r
- int num_mem; /* used memory(...) num counted from 1 */\r
- int num_repeat; /* OP_REPEAT/OP_REPEAT_NG id-counter */\r
- int num_null_check; /* OP_EMPTY_CHECK_START/END id counter */\r
- int num_call; /* number of subexp call */\r
- unsigned int capture_history; /* (?@...) flag (1-31) */\r
- unsigned int bt_mem_start; /* need backtrack flag */\r
- unsigned int bt_mem_end; /* need backtrack flag */\r
- int stack_pop_level;\r
- int repeat_range_alloc;\r
- OnigRepeatRange* repeat_range;\r
-\r
- OnigEncoding enc;\r
- OnigOptionType options;\r
- OnigSyntaxType* syntax;\r
- OnigCaseFoldType case_fold_flag;\r
- void* name_table;\r
-\r
- /* optimization info (string search, char-map and anchors) */\r
- int optimize; /* optimize flag */\r
- int threshold_len; /* search str-length for apply optimize */\r
- int anchor; /* BEGIN_BUF, BEGIN_POS, (SEMI_)END_BUF */\r
- OnigLen anchor_dmin; /* (SEMI_)END_BUF anchor distance */\r
- OnigLen anchor_dmax; /* (SEMI_)END_BUF anchor distance */\r
- int sub_anchor; /* start-anchor for exact or map */\r
- unsigned char *exact;\r
- unsigned char *exact_end;\r
- unsigned char map[CHAR_MAP_SIZE]; /* used as BMH skip or char-map */\r
- int map_offset;\r
- OnigLen dmin; /* min-distance of exact or map */\r
- OnigLen dmax; /* max-distance of exact or map */\r
- RegexExt* extp;\r
-};\r
-\r
-#define COP(reg) ((reg)->ops_curr)\r
-#define COP_CURR_OFFSET(reg) ((reg)->ops_used - 1)\r
-#define COP_CURR_OFFSET_BYTES(reg, p) \\r
- ((int )((char* )(&((reg)->ops_curr->p)) - (char* )((reg)->ops)))\r
-\r
-\r
-extern void onig_add_end_call(void (*func)(void));\r
-\r
-#ifdef ONIG_DEBUG\r
-\r
-#ifdef ONIG_DEBUG_COMPILE\r
-extern void onig_print_compiled_byte_code_list(FILE* f, regex_t* reg);\r
-#endif\r
-\r
-#ifdef ONIG_DEBUG_STATISTICS\r
-extern void onig_statistics_init P_((void));\r
-extern int onig_print_statistics P_((FILE* f));\r
-#endif\r
-#endif\r
-\r
-extern void onig_warning(const char* s);\r
-extern UChar* onig_error_code_to_format P_((int code));\r
-extern void EFIAPI onig_snprintf_with_pattern PV_((UChar buf[], int bufsize, OnigEncoding enc, UChar* pat, UChar* pat_end, const UChar *fmt, ...));\r
-extern int onig_compile P_((regex_t* reg, const UChar* pattern, const UChar* pattern_end, OnigErrorInfo* einfo));\r
-extern int onig_is_code_in_cc_len P_((int enclen, OnigCodePoint code, void* /* CClassNode* */ cc));\r
-extern RegexExt* onig_get_regex_ext(regex_t* reg);\r
-extern int onig_ext_set_pattern(regex_t* reg, const UChar* pattern, const UChar* pattern_end);\r
-extern int onig_positive_int_multiply(int x, int y);\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-extern OnigCalloutType onig_get_callout_type_by_name_id(int name_id);\r
-extern OnigCalloutFunc onig_get_callout_start_func_by_name_id(int id);\r
-extern OnigCalloutFunc onig_get_callout_end_func_by_name_id(int id);\r
-extern int onig_callout_tag_table_free(void* table);\r
-extern void onig_free_reg_callout_list(int n, CalloutListEntry* list);\r
-extern CalloutListEntry* onig_reg_callout_list_at(regex_t* reg, int num);\r
-extern OnigCalloutFunc onig_get_callout_start_func(regex_t* reg, int callout_num);\r
-\r
-/* for definition of builtin callout */\r
-#define BC0_P(name, func) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_PROGRESS,\\r
- onig_builtin_ ## func, 0, 0, 0, 0, 0);\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC0_R(name, func) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_RETRACTION,\\r
- onig_builtin_ ## func, 0, 0, 0, 0, 0);\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC0_B(name, func) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_BOTH,\\r
- onig_builtin_ ## func, 0, 0, 0, 0, 0);\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC_P(name, func, na, ts) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_PROGRESS,\\r
- onig_builtin_ ## func, 0, (na), (ts), 0, 0); \\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC_P_O(name, func, nts, ts, nopts, opts) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_PROGRESS,\\r
- onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC_B(name, func, na, ts) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_BOTH,\\r
- onig_builtin_ ## func, 0, (na), (ts), 0, 0);\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#define BC_B_O(name, func, nts, ts, nopts, opts) do {\\r
- int len = onigenc_str_bytelen_null(enc, (UChar* )name);\\r
- id = onig_set_callout_of_name(enc, ONIG_CALLOUT_TYPE_SINGLE,\\r
- (UChar* )(name), (UChar* )((name) + len),\\r
- ONIG_CALLOUT_IN_BOTH,\\r
- onig_builtin_ ## func, 0, (nts), (ts), (nopts), (opts));\\r
- if (id < 0) return id;\\r
-} while(0)\r
-\r
-#endif /* USE_CALLOUT */\r
-\r
-\r
-/* strend hash */\r
-typedef void hash_table_type;\r
-\r
-#ifdef _WIN32\r
-# include <windows.h>\r
-typedef ULONG_PTR hash_data_type;\r
-#else\r
-//typedef unsigned long hash_data_type;\r
-#endif\r
-\r
-typedef UINTN hash_data_type;\r
-\r
-extern hash_table_type* onig_st_init_strend_table_with_size P_((int size));\r
-extern int onig_st_lookup_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type *value));\r
-extern int onig_st_insert_strend P_((hash_table_type* table, const UChar* str_key, const UChar* end_key, hash_data_type value));\r
-\r
-typedef int (*ONIGENC_INIT_PROPERTY_LIST_FUNC_TYPE)(void);\r
-\r
-#endif /* REGINT_H */\r
-#include <ProcessorBind.h>\r
-#define INT_MAX MAX_INTN\r
-#define LONG_MAX MAX_UINTN\r
+++ /dev/null
-/**********************************************************************\r
- regparse.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regparse.h"\r
-#include "st.h"\r
-\r
-#ifdef DEBUG_NODE_FREE\r
-#include <stdio.h>\r
-#endif\r
-\r
-#define INIT_TAG_NAMES_ALLOC_NUM 5\r
-\r
-#define WARN_BUFSIZE 256\r
-\r
-#define CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS\r
-\r
-#define IS_ALLOWED_CODE_IN_CALLOUT_NAME(c) \\r
- ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_' /* || c == '!' */)\r
-#define IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c) \\r
- ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_')\r
-\r
-\r
-OnigSyntaxType OnigSyntaxOniguruma = {\r
- (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |\r
- ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |\r
- ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS |\r
- ONIG_SYN_OP_ESC_C_CONTROL )\r
- & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )\r
- , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT |\r
- ONIG_SYN_OP2_OPTION_ONIGURUMA |\r
- ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF |\r
- ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |\r
- ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |\r
- ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS |\r
- ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME |\r
- ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |\r
- ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |\r
- ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT |\r
- ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |\r
- ONIG_SYN_OP2_ESC_G_SUBEXP_CALL |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |\r
- ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT |\r
- ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL |\r
- ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB |\r
- ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 )\r
- , ( SYN_GNU_REGEX_BV |\r
- ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV |\r
- ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND |\r
- ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP |\r
- ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME |\r
- ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY |\r
- ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC |\r
- ONIG_SYN_WARN_CC_OP_NOT_ESCAPED |\r
- ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT )\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxRuby = {\r
- (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |\r
- ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |\r
- ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS |\r
- ONIG_SYN_OP_ESC_C_CONTROL )\r
- & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )\r
- , ( ONIG_SYN_OP2_QMARK_GROUP_EFFECT |\r
- ONIG_SYN_OP2_OPTION_RUBY |\r
- ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP | ONIG_SYN_OP2_ESC_K_NAMED_BACKREF |\r
- ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |\r
- ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |\r
- ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |\r
- ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |\r
- ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |\r
- ONIG_SYN_OP2_ESC_G_SUBEXP_CALL |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |\r
- ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT |\r
- ONIG_SYN_OP2_CCLASS_SET_OP | ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL |\r
- ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META | ONIG_SYN_OP2_ESC_V_VTAB |\r
- ONIG_SYN_OP2_ESC_H_XDIGIT | ONIG_SYN_OP2_ESC_U_HEX4 )\r
- , ( SYN_GNU_REGEX_BV |\r
- ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV |\r
- ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND |\r
- ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP |\r
- ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME |\r
- ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY |\r
- ONIG_SYN_WARN_CC_OP_NOT_ESCAPED |\r
- ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT )\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType* OnigDefaultSyntax = ONIG_SYNTAX_ONIGURUMA;\r
-\r
-extern void onig_null_warn(const char* s ARG_UNUSED) { }\r
-\r
-#ifdef DEFAULT_WARN_FUNCTION\r
-static OnigWarnFunc onig_warn = (OnigWarnFunc )DEFAULT_WARN_FUNCTION;\r
-#else\r
-static OnigWarnFunc onig_warn = onig_null_warn;\r
-#endif\r
-\r
-#ifdef DEFAULT_VERB_WARN_FUNCTION\r
-static OnigWarnFunc onig_verb_warn = (OnigWarnFunc )DEFAULT_VERB_WARN_FUNCTION;\r
-#else\r
-static OnigWarnFunc onig_verb_warn = onig_null_warn;\r
-#endif\r
-\r
-extern void onig_set_warn_func(OnigWarnFunc f)\r
-{\r
- onig_warn = f;\r
-}\r
-\r
-extern void onig_set_verb_warn_func(OnigWarnFunc f)\r
-{\r
- onig_verb_warn = f;\r
-}\r
-\r
-extern void\r
-onig_warning(const char* s)\r
-{\r
- if (onig_warn == onig_null_warn) return ;\r
-\r
- (*onig_warn)(s);\r
-}\r
-\r
-#define DEFAULT_MAX_CAPTURE_NUM 32767\r
-\r
-static int MaxCaptureNum = DEFAULT_MAX_CAPTURE_NUM;\r
-\r
-extern int\r
-onig_set_capture_num_limit(int num)\r
-{\r
- if (num < 0) return -1;\r
-\r
- MaxCaptureNum = num;\r
- return 0;\r
-}\r
-\r
-static unsigned int ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT;\r
-\r
-extern unsigned int\r
-onig_get_parse_depth_limit(void)\r
-{\r
- return ParseDepthLimit;\r
-}\r
-\r
-extern int\r
-onig_set_parse_depth_limit(unsigned int depth)\r
-{\r
- if (depth == 0)\r
- ParseDepthLimit = DEFAULT_PARSE_DEPTH_LIMIT;\r
- else\r
- ParseDepthLimit = depth;\r
- return 0;\r
-}\r
-\r
-static int\r
-bbuf_init(BBuf* buf, int size)\r
-{\r
- if (size <= 0) {\r
- size = 0;\r
- buf->p = NULL;\r
- }\r
- else {\r
- buf->p = (UChar* )xmalloc(size);\r
- if (IS_NULL(buf->p)) return(ONIGERR_MEMORY);\r
- }\r
-\r
- buf->alloc = size;\r
- buf->used = 0;\r
- return 0;\r
-}\r
-\r
-static void\r
-bbuf_free(BBuf* bbuf)\r
-{\r
- if (IS_NOT_NULL(bbuf)) {\r
- if (IS_NOT_NULL(bbuf->p)) xfree(bbuf->p);\r
- xfree(bbuf);\r
- }\r
-}\r
-\r
-static int\r
-bbuf_clone(BBuf** rto, BBuf* from)\r
-{\r
- int r;\r
- BBuf *to;\r
-\r
- *rto = to = (BBuf* )xmalloc(sizeof(BBuf));\r
- CHECK_NULL_RETURN_MEMERR(to);\r
- r = BB_INIT(to, from->alloc);\r
- if (r != 0) {\r
- xfree(to->p);\r
- *rto = 0;\r
- return r;\r
- }\r
- to->used = from->used;\r
- xmemcpy(to->p, from->p, from->used);\r
- return 0;\r
-}\r
-\r
-static int backref_rel_to_abs(int rel_no, ScanEnv* env)\r
-{\r
- if (rel_no > 0) {\r
- return env->num_mem + rel_no;\r
- }\r
- else {\r
- return env->num_mem + 1 + rel_no;\r
- }\r
-}\r
-\r
-#define OPTION_ON(v,f) ((v) |= (f))\r
-#define OPTION_OFF(v,f) ((v) &= ~(f))\r
-\r
-#define OPTION_NEGATE(v,f,negative) (negative) ? ((v) &= ~(f)) : ((v) |= (f))\r
-\r
-#define MBCODE_START_POS(enc) \\r
- (OnigCodePoint )(ONIGENC_MBC_MINLEN(enc) > 1 ? 0 : 0x80)\r
-\r
-#define SET_ALL_MULTI_BYTE_RANGE(enc, pbuf) \\r
- add_code_range_to_buf(pbuf, MBCODE_START_POS(enc), ~((OnigCodePoint )0))\r
-\r
-#define ADD_ALL_MULTI_BYTE_RANGE(enc, mbuf) do {\\r
- if (! ONIGENC_IS_SINGLEBYTE(enc)) {\\r
- r = SET_ALL_MULTI_BYTE_RANGE(enc, &(mbuf));\\r
- if (r != 0) return r;\\r
- }\\r
-} while (0)\r
-\r
-\r
-#define BITSET_IS_EMPTY(bs,empty) do {\\r
- int i;\\r
- empty = 1;\\r
- for (i = 0; i < (int )BITSET_SIZE; i++) {\\r
- if ((bs)[i] != 0) {\\r
- empty = 0; break;\\r
- }\\r
- }\\r
-} while (0)\r
-\r
-static void\r
-bitset_set_range(BitSetRef bs, int from, int to)\r
-{\r
- int i;\r
- for (i = from; i <= to && i < SINGLE_BYTE_SIZE; i++) {\r
- BITSET_SET_BIT(bs, i);\r
- }\r
-}\r
-\r
-#if 0\r
-static void\r
-bitset_set_all(BitSetRef bs)\r
-{\r
- int i;\r
- for (i = 0; i < BITSET_SIZE; i++) { bs[i] = ~((Bits )0); }\r
-}\r
-#endif\r
-\r
-static void\r
-bitset_invert(BitSetRef bs)\r
-{\r
- int i;\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { bs[i] = ~(bs[i]); }\r
-}\r
-\r
-static void\r
-bitset_invert_to(BitSetRef from, BitSetRef to)\r
-{\r
- int i;\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { to[i] = ~(from[i]); }\r
-}\r
-\r
-static void\r
-bitset_and(BitSetRef dest, BitSetRef bs)\r
-{\r
- int i;\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] &= bs[i]; }\r
-}\r
-\r
-static void\r
-bitset_or(BitSetRef dest, BitSetRef bs)\r
-{\r
- int i;\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] |= bs[i]; }\r
-}\r
-\r
-static void\r
-bitset_copy(BitSetRef dest, BitSetRef bs)\r
-{\r
- int i;\r
- for (i = 0; i < (int )BITSET_SIZE; i++) { dest[i] = bs[i]; }\r
-}\r
-\r
-extern int\r
-onig_strncmp(const UChar* s1, const UChar* s2, int n)\r
-{\r
- int x;\r
-\r
- while (n-- > 0) {\r
- x = *s2++ - *s1++;\r
- if (x) return x;\r
- }\r
- return 0;\r
-}\r
-\r
-extern void\r
-onig_strcpy(UChar* dest, const UChar* src, const UChar* end)\r
-{\r
- int len = (int )(end - src);\r
- if (len > 0) {\r
- xmemcpy(dest, src, len);\r
- dest[len] = (UChar )0;\r
- }\r
-}\r
-\r
-static int\r
-save_entry(ScanEnv* env, enum SaveType type, int* id)\r
-{\r
- int nid = env->save_num;\r
-\r
-#if 0\r
- if (IS_NULL(env->saves)) {\r
- int n = 10;\r
- env->saves = (SaveItem* )xmalloc(sizeof(SaveItem) * n);\r
- CHECK_NULL_RETURN_MEMERR(env->saves);\r
- env->save_alloc_num = n;\r
- }\r
- else if (env->save_alloc_num <= nid) {\r
- int n = env->save_alloc_num * 2;\r
- SaveItem* p = (SaveItem* )xrealloc(env->saves, sizeof(SaveItem) * n, sizeof(SaveItem)*env->save_alloc_num);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- env->saves = p;\r
- env->save_alloc_num = n;\r
- }\r
-\r
- env->saves[nid].type = type;\r
-#endif\r
-\r
- env->save_num++;\r
- *id = nid;\r
- return 0;\r
-}\r
-\r
-/* scan pattern methods */\r
-#define PEND_VALUE 0\r
-\r
-#define PFETCH_READY UChar* pfetch_prev\r
-#define PEND (p < end ? 0 : 1)\r
-#define PUNFETCH p = pfetch_prev\r
-#define PINC do { \\r
- pfetch_prev = p; \\r
- p += ONIGENC_MBC_ENC_LEN(enc, p); \\r
-} while (0)\r
-#define PFETCH(c) do { \\r
- c = ONIGENC_MBC_TO_CODE(enc, p, end); \\r
- pfetch_prev = p; \\r
- p += ONIGENC_MBC_ENC_LEN(enc, p); \\r
-} while (0)\r
-\r
-#define PINC_S do { \\r
- p += ONIGENC_MBC_ENC_LEN(enc, p); \\r
-} while (0)\r
-#define PFETCH_S(c) do { \\r
- c = ONIGENC_MBC_TO_CODE(enc, p, end); \\r
- p += ONIGENC_MBC_ENC_LEN(enc, p); \\r
-} while (0)\r
-\r
-#define PPEEK (p < end ? ONIGENC_MBC_TO_CODE(enc, p, end) : PEND_VALUE)\r
-#define PPEEK_IS(c) (PPEEK == (OnigCodePoint )c)\r
-\r
-static UChar*\r
-strcat_capa(UChar* dest, UChar* dest_end, const UChar* src, const UChar* src_end,\r
- int capa, int oldCapa)\r
-{\r
- UChar* r;\r
-\r
- if (dest)\r
- r = (UChar* )xrealloc(dest, capa + 1, oldCapa);\r
- else\r
- r = (UChar* )xmalloc(capa + 1);\r
-\r
- CHECK_NULL_RETURN(r);\r
- onig_strcpy(r + (dest_end - dest), src, src_end);\r
- return r;\r
-}\r
-\r
-/* dest on static area */\r
-static UChar*\r
-strcat_capa_from_static(UChar* dest, UChar* dest_end,\r
- const UChar* src, const UChar* src_end, int capa)\r
-{\r
- UChar* r;\r
-\r
- r = (UChar* )xmalloc(capa + 1);\r
- CHECK_NULL_RETURN(r);\r
- onig_strcpy(r, dest, dest_end);\r
- onig_strcpy(r + (dest_end - dest), src, src_end);\r
- return r;\r
-}\r
-\r
-\r
-#ifdef USE_ST_LIBRARY\r
-\r
-typedef struct {\r
- UChar* s;\r
- UChar* end;\r
-} st_str_end_key;\r
-\r
-static int\r
-str_end_cmp(st_str_end_key* x, st_str_end_key* y)\r
-{\r
- UChar *p, *q;\r
- int c;\r
-\r
- if ((x->end - x->s) != (y->end - y->s))\r
- return 1;\r
-\r
- p = x->s;\r
- q = y->s;\r
- while (p < x->end) {\r
- c = (int )*p - (int )*q;\r
- if (c != 0) return c;\r
-\r
- p++; q++;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-str_end_hash(st_str_end_key* x)\r
-{\r
- UChar *p;\r
- int val = 0;\r
-\r
- p = x->s;\r
- while (p < x->end) {\r
- val = val * 997 + (int )*p++;\r
- }\r
-\r
- return val + (val >> 5);\r
-}\r
-\r
-extern hash_table_type*\r
-onig_st_init_strend_table_with_size(int size)\r
-{\r
- static struct st_hash_type hashType = {\r
- str_end_cmp,\r
- str_end_hash,\r
- };\r
-\r
- return (hash_table_type* )\r
- onig_st_init_table_with_size(&hashType, size);\r
-}\r
-\r
-extern int\r
-onig_st_lookup_strend(hash_table_type* table, const UChar* str_key,\r
- const UChar* end_key, hash_data_type *value)\r
-{\r
- st_str_end_key key;\r
-\r
- key.s = (UChar* )str_key;\r
- key.end = (UChar* )end_key;\r
-\r
- return onig_st_lookup(table, (st_data_t )(&key), value);\r
-}\r
-\r
-extern int\r
-onig_st_insert_strend(hash_table_type* table, const UChar* str_key,\r
- const UChar* end_key, hash_data_type value)\r
-{\r
- st_str_end_key* key;\r
- int result;\r
-\r
- key = (st_str_end_key* )xmalloc(sizeof(st_str_end_key));\r
- CHECK_NULL_RETURN_MEMERR(key);\r
-\r
- key->s = (UChar* )str_key;\r
- key->end = (UChar* )end_key;\r
- result = onig_st_insert(table, (st_data_t )key, value);\r
- if (result) {\r
- xfree(key);\r
- }\r
- return result;\r
-}\r
-\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-typedef struct {\r
- OnigEncoding enc;\r
- int type; /* callout type: single or not */\r
- UChar* s;\r
- UChar* end;\r
-} st_callout_name_key;\r
-\r
-static int\r
-callout_name_table_cmp(st_callout_name_key* x, st_callout_name_key* y)\r
-{\r
- UChar *p, *q;\r
- int c;\r
-\r
- if (x->enc != y->enc) return 1;\r
- if (x->type != y->type) return 1;\r
- if ((x->end - x->s) != (y->end - y->s))\r
- return 1;\r
-\r
- p = x->s;\r
- q = y->s;\r
- while (p < x->end) {\r
- c = (int )*p - (int )*q;\r
- if (c != 0) return c;\r
-\r
- p++; q++;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-callout_name_table_hash(st_callout_name_key* x)\r
-{\r
- UChar *p;\r
- int val = 0;\r
-\r
- p = x->s;\r
- while (p < x->end) {\r
- val = val * 997 + (int )*p++;\r
- }\r
-\r
- /* use intptr_t for escape warning in Windows */\r
- return val + (val >> 5) + ((intptr_t )x->enc & 0xffff) + x->type;\r
-}\r
-\r
-extern hash_table_type*\r
-onig_st_init_callout_name_table_with_size(int size)\r
-{\r
- static struct st_hash_type hashType = {\r
- callout_name_table_cmp,\r
- callout_name_table_hash,\r
- };\r
-\r
- return (hash_table_type* )\r
- onig_st_init_table_with_size(&hashType, size);\r
-}\r
-\r
-extern int\r
-onig_st_lookup_callout_name_table(hash_table_type* table,\r
- OnigEncoding enc,\r
- int type,\r
- const UChar* str_key,\r
- const UChar* end_key,\r
- hash_data_type *value)\r
-{\r
- st_callout_name_key key;\r
-\r
- key.enc = enc;\r
- key.type = type;\r
- key.s = (UChar* )str_key;\r
- key.end = (UChar* )end_key;\r
-\r
- return onig_st_lookup(table, (st_data_t )(&key), value);\r
-}\r
-\r
-static int\r
-st_insert_callout_name_table(hash_table_type* table,\r
- OnigEncoding enc, int type,\r
- UChar* str_key, UChar* end_key,\r
- hash_data_type value)\r
-{\r
- st_callout_name_key* key;\r
- int result;\r
-\r
- key = (st_callout_name_key* )xmalloc(sizeof(st_callout_name_key));\r
- CHECK_NULL_RETURN_MEMERR(key);\r
-\r
- /* key->s: don't duplicate, because str_key is duped in callout_name_entry() */\r
- key->enc = enc;\r
- key->type = type;\r
- key->s = str_key;\r
- key->end = end_key;\r
- result = onig_st_insert(table, (st_data_t )key, value);\r
- if (result) {\r
- xfree(key);\r
- }\r
- return result;\r
-}\r
-#endif\r
-\r
-#endif /* USE_ST_LIBRARY */\r
-\r
-\r
-#define INIT_NAME_BACKREFS_ALLOC_NUM 8\r
-\r
-typedef struct {\r
- UChar* name;\r
- int name_len; /* byte length */\r
- int back_num; /* number of backrefs */\r
- int back_alloc;\r
- int back_ref1;\r
- int* back_refs;\r
-} NameEntry;\r
-\r
-#ifdef USE_ST_LIBRARY\r
-\r
-#define INIT_NAMES_ALLOC_NUM 5\r
-\r
-typedef st_table NameTable;\r
-typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */\r
-\r
-#define NAMEBUF_SIZE 24\r
-#define NAMEBUF_SIZE_1 25\r
-\r
-#ifdef ONIG_DEBUG\r
-static int\r
-i_print_name_entry(UChar* key, NameEntry* e, void* arg)\r
-{\r
- int i;\r
- FILE* fp = (FILE* )arg;\r
-\r
- fprintf(fp, "%s: ", e->name);\r
- if (e->back_num == 0)\r
- fputs("-", fp);\r
- else if (e->back_num == 1)\r
- fprintf(fp, "%d", e->back_ref1);\r
- else {\r
- for (i = 0; i < e->back_num; i++) {\r
- if (i > 0) fprintf(fp, ", ");\r
- fprintf(fp, "%d", e->back_refs[i]);\r
- }\r
- }\r
- fputs("\n", fp);\r
- return ST_CONTINUE;\r
-}\r
-\r
-extern int\r
-onig_print_names(FILE* fp, regex_t* reg)\r
-{\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- fprintf(fp, "name table\n");\r
- onig_st_foreach(t, i_print_name_entry, (HashDataType )fp);\r
- fputs("\n", fp);\r
- }\r
- return 0;\r
-}\r
-#endif /* ONIG_DEBUG */\r
-\r
-static int\r
-i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED)\r
-{\r
- xfree(e->name);\r
- if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs);\r
- xfree(key);\r
- xfree(e);\r
- return ST_DELETE;\r
-}\r
-\r
-static int\r
-names_clear(regex_t* reg)\r
-{\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_foreach(t, i_free_name_entry, 0);\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_names_free(regex_t* reg)\r
-{\r
- int r;\r
- NameTable* t;\r
-\r
- r = names_clear(reg);\r
- if (r != 0) return r;\r
-\r
- t = (NameTable* )reg->name_table;\r
- if (IS_NOT_NULL(t)) onig_st_free_table(t);\r
- reg->name_table = (void* )NULL;\r
- return 0;\r
-}\r
-\r
-static NameEntry*\r
-name_find(regex_t* reg, const UChar* name, const UChar* name_end)\r
-{\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- e = (NameEntry* )NULL;\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e)));\r
- }\r
- return e;\r
-}\r
-\r
-typedef struct {\r
- int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*);\r
- regex_t* reg;\r
- void* arg;\r
- int ret;\r
- OnigEncoding enc;\r
-} INamesArg;\r
-\r
-static int\r
-i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg)\r
-{\r
- int r = (*(arg->func))(e->name,\r
- e->name + e->name_len,\r
- e->back_num,\r
- (e->back_num > 1 ? e->back_refs : &(e->back_ref1)),\r
- arg->reg, arg->arg);\r
- if (r != 0) {\r
- arg->ret = r;\r
- return ST_STOP;\r
- }\r
- return ST_CONTINUE;\r
-}\r
-\r
-extern int\r
-onig_foreach_name(regex_t* reg,\r
- int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg)\r
-{\r
- INamesArg narg;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- narg.ret = 0;\r
- if (IS_NOT_NULL(t)) {\r
- narg.func = func;\r
- narg.reg = reg;\r
- narg.arg = arg;\r
- narg.enc = reg->enc; /* should be pattern encoding. */\r
- onig_st_foreach(t, i_names, (HashDataType )&narg);\r
- }\r
- return narg.ret;\r
-}\r
-\r
-static int\r
-i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumRemap* map)\r
-{\r
- int i;\r
-\r
- if (e->back_num > 1) {\r
- for (i = 0; i < e->back_num; i++) {\r
- e->back_refs[i] = map[e->back_refs[i]].new_val;\r
- }\r
- }\r
- else if (e->back_num == 1) {\r
- e->back_ref1 = map[e->back_ref1].new_val;\r
- }\r
-\r
- return ST_CONTINUE;\r
-}\r
-\r
-extern int\r
-onig_renumber_name_table(regex_t* reg, GroupNumRemap* map)\r
-{\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_foreach(t, i_renumber_name, (HashDataType )map);\r
- }\r
- return 0;\r
-}\r
-\r
-\r
-extern int\r
-onig_number_of_names(regex_t* reg)\r
-{\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t))\r
- return t->num_entries;\r
- else\r
- return 0;\r
-}\r
-\r
-#else /* USE_ST_LIBRARY */\r
-\r
-#define INIT_NAMES_ALLOC_NUM 8\r
-\r
-typedef struct {\r
- NameEntry* e;\r
- int num;\r
- int alloc;\r
-} NameTable;\r
-\r
-#ifdef ONIG_DEBUG\r
-extern int\r
-onig_print_names(FILE* fp, regex_t* reg)\r
-{\r
- int i, j;\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t) && t->num > 0) {\r
- fprintf(fp, "name table\n");\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- fprintf(fp, "%s: ", e->name);\r
- if (e->back_num == 0) {\r
- fputs("-", fp);\r
- }\r
- else if (e->back_num == 1) {\r
- fprintf(fp, "%d", e->back_ref1);\r
- }\r
- else {\r
- for (j = 0; j < e->back_num; j++) {\r
- if (j > 0) fprintf(fp, ", ");\r
- fprintf(fp, "%d", e->back_refs[j]);\r
- }\r
- }\r
- fputs("\n", fp);\r
- }\r
- fputs("\n", fp);\r
- }\r
- return 0;\r
-}\r
-#endif\r
-\r
-static int\r
-names_clear(regex_t* reg)\r
-{\r
- int i;\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- if (IS_NOT_NULL(e->name)) {\r
- xfree(e->name);\r
- e->name = NULL;\r
- e->name_len = 0;\r
- e->back_num = 0;\r
- e->back_alloc = 0;\r
- if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs);\r
- e->back_refs = (int* )NULL;\r
- }\r
- }\r
- if (IS_NOT_NULL(t->e)) {\r
- xfree(t->e);\r
- t->e = NULL;\r
- }\r
- t->num = 0;\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_names_free(regex_t* reg)\r
-{\r
- int r;\r
- NameTable* t;\r
-\r
- r = names_clear(reg);\r
- if (r != 0) return r;\r
-\r
- t = (NameTable* )reg->name_table;\r
- if (IS_NOT_NULL(t)) xfree(t);\r
- reg->name_table = NULL;\r
- return 0;\r
-}\r
-\r
-static NameEntry*\r
-name_find(regex_t* reg, UChar* name, UChar* name_end)\r
-{\r
- int i, len;\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- len = name_end - name;\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- if (len == e->name_len && onig_strncmp(name, e->name, len) == 0)\r
- return e;\r
- }\r
- }\r
- return (NameEntry* )NULL;\r
-}\r
-\r
-extern int\r
-onig_foreach_name(regex_t* reg,\r
- int (*func)(const UChar*, const UChar*,int,int*,regex_t*,void*), void* arg)\r
-{\r
- int i, r;\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- r = (*func)(e->name, e->name + e->name_len, e->back_num,\r
- (e->back_num > 1 ? e->back_refs : &(e->back_ref1)),\r
- reg, arg);\r
- if (r != 0) return r;\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_number_of_names(regex_t* reg)\r
-{\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (IS_NOT_NULL(t))\r
- return t->num;\r
- else\r
- return 0;\r
-}\r
-\r
-#endif /* else USE_ST_LIBRARY */\r
-\r
-static int\r
-name_add(regex_t* reg, UChar* name, UChar* name_end, int backref, ScanEnv* env)\r
-{\r
- int r;\r
- int alloc;\r
- NameEntry* e;\r
- NameTable* t = (NameTable* )reg->name_table;\r
-\r
- if (name_end - name <= 0)\r
- return ONIGERR_EMPTY_GROUP_NAME;\r
-\r
- e = name_find(reg, name, name_end);\r
- if (IS_NULL(e)) {\r
-#ifdef USE_ST_LIBRARY\r
- if (IS_NULL(t)) {\r
- t = onig_st_init_strend_table_with_size(INIT_NAMES_ALLOC_NUM);\r
- CHECK_NULL_RETURN_MEMERR(t);\r
- reg->name_table = (void* )t;\r
- }\r
- e = (NameEntry* )xmalloc(sizeof(NameEntry));\r
- CHECK_NULL_RETURN_MEMERR(e);\r
-\r
- e->name = onigenc_strdup(reg->enc, name, name_end);\r
- if (IS_NULL(e->name)) {\r
- xfree(e); return ONIGERR_MEMORY;\r
- }\r
- r = onig_st_insert_strend(t, e->name, (e->name + (name_end - name)),\r
- (HashDataType )e);\r
- if (r < 0) return r;\r
-\r
- e->name_len = (int )(name_end - name);\r
- e->back_num = 0;\r
- e->back_alloc = 0;\r
- e->back_refs = (int* )NULL;\r
-\r
-#else\r
-\r
- if (IS_NULL(t)) {\r
- alloc = INIT_NAMES_ALLOC_NUM;\r
- t = (NameTable* )xmalloc(sizeof(NameTable));\r
- CHECK_NULL_RETURN_MEMERR(t);\r
- t->e = NULL;\r
- t->alloc = 0;\r
- t->num = 0;\r
-\r
- t->e = (NameEntry* )xmalloc(sizeof(NameEntry) * alloc);\r
- if (IS_NULL(t->e)) {\r
- xfree(t);\r
- return ONIGERR_MEMORY;\r
- }\r
- t->alloc = alloc;\r
- reg->name_table = t;\r
- goto clear;\r
- }\r
- else if (t->num == t->alloc) {\r
- int i;\r
-\r
- alloc = t->alloc * 2;\r
- t->e = (NameEntry* )xrealloc(t->e, sizeof(NameEntry) * alloc, sizeof(NameEntry) * t->alloc);\r
- CHECK_NULL_RETURN_MEMERR(t->e);\r
- t->alloc = alloc;\r
-\r
- clear:\r
- for (i = t->num; i < t->alloc; i++) {\r
- t->e[i].name = NULL;\r
- t->e[i].name_len = 0;\r
- t->e[i].back_num = 0;\r
- t->e[i].back_alloc = 0;\r
- t->e[i].back_refs = (int* )NULL;\r
- }\r
- }\r
- e = &(t->e[t->num]);\r
- t->num++;\r
- e->name = onigenc_strdup(reg->enc, name, name_end);\r
- if (IS_NULL(e->name)) return ONIGERR_MEMORY;\r
- e->name_len = name_end - name;\r
-#endif\r
- }\r
-\r
- if (e->back_num >= 1 &&\r
- ! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME)) {\r
- onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME,\r
- name, name_end);\r
- return ONIGERR_MULTIPLEX_DEFINED_NAME;\r
- }\r
-\r
- e->back_num++;\r
- if (e->back_num == 1) {\r
- e->back_ref1 = backref;\r
- }\r
- else {\r
- if (e->back_num == 2) {\r
- alloc = INIT_NAME_BACKREFS_ALLOC_NUM;\r
- e->back_refs = (int* )xmalloc(sizeof(int) * alloc);\r
- CHECK_NULL_RETURN_MEMERR(e->back_refs);\r
- e->back_alloc = alloc;\r
- e->back_refs[0] = e->back_ref1;\r
- e->back_refs[1] = backref;\r
- }\r
- else {\r
- if (e->back_num > e->back_alloc) {\r
- alloc = e->back_alloc * 2;\r
- e->back_refs = (int* )xrealloc(e->back_refs, sizeof(int) * alloc, sizeof(int) * e->back_alloc);\r
- CHECK_NULL_RETURN_MEMERR(e->back_refs);\r
- e->back_alloc = alloc;\r
- }\r
- e->back_refs[e->back_num - 1] = backref;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_name_to_group_numbers(regex_t* reg, const UChar* name,\r
- const UChar* name_end, int** nums)\r
-{\r
- NameEntry* e = name_find(reg, name, name_end);\r
-\r
- if (IS_NULL(e)) return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
-\r
- switch (e->back_num) {\r
- case 0:\r
- break;\r
- case 1:\r
- *nums = &(e->back_ref1);\r
- break;\r
- default:\r
- *nums = e->back_refs;\r
- break;\r
- }\r
- return e->back_num;\r
-}\r
-\r
-static int\r
-name_to_group_numbers(ScanEnv* env, const UChar* name, const UChar* name_end,\r
- int** nums)\r
-{\r
- regex_t* reg;\r
- NameEntry* e;\r
-\r
- reg = env->reg;\r
- e = name_find(reg, name, name_end);\r
-\r
- if (IS_NULL(e)) {\r
- onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE,\r
- (UChar* )name, (UChar* )name_end);\r
- return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
- }\r
-\r
- switch (e->back_num) {\r
- case 0:\r
- break;\r
- case 1:\r
- *nums = &(e->back_ref1);\r
- break;\r
- default:\r
- *nums = e->back_refs;\r
- break;\r
- }\r
- return e->back_num;\r
-}\r
-\r
-extern int\r
-onig_name_to_backref_number(regex_t* reg, const UChar* name,\r
- const UChar* name_end, OnigRegion *region)\r
-{\r
- int i, n, *nums;\r
-\r
- n = onig_name_to_group_numbers(reg, name, name_end, &nums);\r
- if (n < 0)\r
- return n;\r
- else if (n == 0)\r
- return ONIGERR_PARSER_BUG;\r
- else if (n == 1)\r
- return nums[0];\r
- else {\r
- if (IS_NOT_NULL(region)) {\r
- for (i = n - 1; i >= 0; i--) {\r
- if (region->beg[nums[i]] != ONIG_REGION_NOTPOS)\r
- return nums[i];\r
- }\r
- }\r
- return nums[n - 1];\r
- }\r
-}\r
-\r
-extern int\r
-onig_noname_group_capture_is_active(regex_t* reg)\r
-{\r
- if (ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_DONT_CAPTURE_GROUP))\r
- return 0;\r
-\r
- if (onig_number_of_names(reg) > 0 &&\r
- IS_SYNTAX_BV(reg->syntax, ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP) &&\r
- !ONIG_IS_OPTION_ON(reg->options, ONIG_OPTION_CAPTURE_GROUP)) {\r
- return 0;\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-typedef struct {\r
- OnigCalloutType type;\r
- int in;\r
- OnigCalloutFunc start_func;\r
- OnigCalloutFunc end_func;\r
- int arg_num;\r
- int opt_arg_num;\r
- unsigned int arg_types[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- OnigValue opt_defaults[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- UChar* name; /* reference to GlobalCalloutNameTable entry: e->name */\r
-} CalloutNameListEntry;\r
-\r
-typedef struct {\r
- int n;\r
- int alloc;\r
- CalloutNameListEntry* v;\r
-} CalloutNameListType;\r
-\r
-static CalloutNameListType* GlobalCalloutNameList;\r
-\r
-static int\r
-make_callout_func_list(CalloutNameListType** rs, int init_size)\r
-{\r
- CalloutNameListType* s;\r
- CalloutNameListEntry* v;\r
-\r
- *rs = 0;\r
-\r
- s = xmalloc(sizeof(*s));\r
- if (IS_NULL(s)) return ONIGERR_MEMORY;\r
-\r
- v = (CalloutNameListEntry* )xmalloc(sizeof(CalloutNameListEntry) * init_size);\r
- if (IS_NULL(v)) {\r
- xfree(s);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- s->n = 0;\r
- s->alloc = init_size;\r
- s->v = v;\r
-\r
- *rs = s;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static void\r
-free_callout_func_list(CalloutNameListType* s)\r
-{\r
- if (IS_NOT_NULL(s)) {\r
- if (IS_NOT_NULL(s->v)) {\r
- int i, j;\r
-\r
- for (i = 0; i < s->n; i++) {\r
- CalloutNameListEntry* e = s->v + i;\r
- for (j = e->arg_num - e->opt_arg_num; j < e->arg_num; j++) {\r
- if (e->arg_types[j] == ONIG_TYPE_STRING) {\r
- UChar* p = e->opt_defaults[j].s.start;\r
- if (IS_NOT_NULL(p)) xfree(p);\r
- }\r
- }\r
- }\r
- xfree(s->v);\r
- }\r
- xfree(s);\r
- }\r
-}\r
-\r
-static int\r
-callout_func_list_add(CalloutNameListType* s, int* rid)\r
-{\r
- if (s->n >= s->alloc) {\r
- int new_size = s->alloc * 2;\r
- CalloutNameListEntry* nv = (CalloutNameListEntry* )\r
- xrealloc(s->v, sizeof(CalloutNameListEntry) * new_size, sizeof(CalloutNameListEntry)*s->alloc);\r
- if (IS_NULL(nv)) return ONIGERR_MEMORY;\r
-\r
- s->alloc = new_size;\r
- s->v = nv;\r
- }\r
-\r
- *rid = s->n;\r
-\r
- xmemset(&(s->v[s->n]), 0, sizeof(*(s->v)));\r
- s->n++;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-\r
-typedef struct {\r
- UChar* name;\r
- int name_len; /* byte length */\r
- int id;\r
-} CalloutNameEntry;\r
-\r
-#ifdef USE_ST_LIBRARY\r
-typedef st_table CalloutNameTable;\r
-#else\r
-typedef struct {\r
- CalloutNameEntry* e;\r
- int num;\r
- int alloc;\r
-} CalloutNameTable;\r
-#endif\r
-\r
-static CalloutNameTable* GlobalCalloutNameTable;\r
-static int CalloutNameIDCounter;\r
-\r
-#ifdef USE_ST_LIBRARY\r
-\r
-static int\r
-i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e,\r
- void* arg ARG_UNUSED)\r
-{\r
- xfree(e->name);\r
- /*xfree(key->s); */ /* is same as e->name */\r
- xfree(key);\r
- xfree(e);\r
- return ST_DELETE;\r
-}\r
-\r
-static int\r
-callout_name_table_clear(CalloutNameTable* t)\r
-{\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_foreach(t, i_free_callout_name_entry, 0);\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-global_callout_name_table_free(void)\r
-{\r
- if (IS_NOT_NULL(GlobalCalloutNameTable)) {\r
- int r = callout_name_table_clear(GlobalCalloutNameTable);\r
- if (r != 0) return r;\r
-\r
- onig_st_free_table(GlobalCalloutNameTable);\r
- GlobalCalloutNameTable = 0;\r
- CalloutNameIDCounter = 0;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static CalloutNameEntry*\r
-callout_name_find(OnigEncoding enc, int is_not_single,\r
- const UChar* name, const UChar* name_end)\r
-{\r
- int r;\r
- CalloutNameEntry* e;\r
- CalloutNameTable* t = GlobalCalloutNameTable;\r
-\r
- e = (CalloutNameEntry* )NULL;\r
- if (IS_NOT_NULL(t)) {\r
- r = onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end,\r
- (HashDataType* )((void* )(&e)));\r
- if (r == 0) { /* not found */\r
- if (enc != ONIG_ENCODING_ASCII &&\r
- ONIGENC_IS_ASCII_COMPATIBLE_ENCODING(enc)) {\r
- enc = ONIG_ENCODING_ASCII;\r
- onig_st_lookup_callout_name_table(t, enc, is_not_single, name, name_end,\r
- (HashDataType* )((void* )(&e)));\r
- }\r
- }\r
- }\r
- return e;\r
-}\r
-\r
-#else\r
-\r
-static int\r
-callout_name_table_clear(CalloutNameTable* t)\r
-{\r
- int i;\r
- CalloutNameEntry* e;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- if (IS_NOT_NULL(e->name)) {\r
- xfree(e->name);\r
- e->name = NULL;\r
- e->name_len = 0;\r
- e->id = 0;\r
- e->func = 0;\r
- }\r
- }\r
- if (IS_NOT_NULL(t->e)) {\r
- xfree(t->e);\r
- t->e = NULL;\r
- }\r
- t->num = 0;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-global_callout_name_table_free(void)\r
-{\r
- if (IS_NOT_NULL(GlobalCalloutNameTable)) {\r
- int r = callout_name_table_clear(GlobalCalloutNameTable);\r
- if (r != 0) return r;\r
-\r
- xfree(GlobalCalloutNameTable);\r
- GlobalCalloutNameTable = 0;\r
- CalloutNameIDCounter = 0;\r
- }\r
- return 0;\r
-}\r
-\r
-static CalloutNameEntry*\r
-callout_name_find(UChar* name, UChar* name_end)\r
-{\r
- int i, len;\r
- CalloutNameEntry* e;\r
- CalloutNameTable* t = Calloutnames;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- len = name_end - name;\r
- for (i = 0; i < t->num; i++) {\r
- e = &(t->e[i]);\r
- if (len == e->name_len && onig_strncmp(name, e->name, len) == 0)\r
- return e;\r
- }\r
- }\r
- return (CalloutNameEntry* )NULL;\r
-}\r
-\r
-#endif\r
-\r
-/* name string must be single byte char string. */\r
-static int\r
-callout_name_entry(CalloutNameEntry** rentry, OnigEncoding enc,\r
- int is_not_single, UChar* name, UChar* name_end)\r
-{\r
- int r;\r
- CalloutNameEntry* e;\r
- CalloutNameTable* t = GlobalCalloutNameTable;\r
-\r
- *rentry = 0;\r
- if (name_end - name <= 0)\r
- return ONIGERR_INVALID_CALLOUT_NAME;\r
-\r
- e = callout_name_find(enc, is_not_single, name, name_end);\r
- if (IS_NULL(e)) {\r
-#ifdef USE_ST_LIBRARY\r
- if (IS_NULL(t)) {\r
- t = onig_st_init_callout_name_table_with_size(INIT_NAMES_ALLOC_NUM);\r
- CHECK_NULL_RETURN_MEMERR(t);\r
- GlobalCalloutNameTable = t;\r
- }\r
- e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry));\r
- CHECK_NULL_RETURN_MEMERR(e);\r
-\r
- e->name = onigenc_strdup(enc, name, name_end);\r
- if (IS_NULL(e->name)) {\r
- xfree(e); return ONIGERR_MEMORY;\r
- }\r
-\r
- r = st_insert_callout_name_table(t, enc, is_not_single,\r
- e->name, (e->name + (name_end - name)),\r
- (HashDataType )e);\r
- if (r < 0) return r;\r
-\r
-#else\r
-\r
- int alloc;\r
-\r
- if (IS_NULL(t)) {\r
- alloc = INIT_NAMES_ALLOC_NUM;\r
- t = (CalloutNameTable* )xmalloc(sizeof(CalloutNameTable));\r
- CHECK_NULL_RETURN_MEMERR(t);\r
- t->e = NULL;\r
- t->alloc = 0;\r
- t->num = 0;\r
-\r
- t->e = (CalloutNameEntry* )xmalloc(sizeof(CalloutNameEntry) * alloc);\r
- if (IS_NULL(t->e)) {\r
- xfree(t);\r
- return ONIGERR_MEMORY;\r
- }\r
- t->alloc = alloc;\r
- GlobalCalloutNameTable = t;\r
- goto clear;\r
- }\r
- else if (t->num == t->alloc) {\r
- int i;\r
-\r
- alloc = t->alloc * 2;\r
- t->e = (CalloutNameEntry* )xrealloc(t->e, sizeof(CalloutNameEntry) * alloc, sizeof(CalloutNameEntry)*t->alloc);\r
- CHECK_NULL_RETURN_MEMERR(t->e);\r
- t->alloc = alloc;\r
-\r
- clear:\r
- for (i = t->num; i < t->alloc; i++) {\r
- t->e[i].name = NULL;\r
- t->e[i].name_len = 0;\r
- t->e[i].id = 0;\r
- }\r
- }\r
- e = &(t->e[t->num]);\r
- t->num++;\r
- e->name = onigenc_strdup(enc, name, name_end);\r
- if (IS_NULL(e->name)) return ONIGERR_MEMORY;\r
-#endif\r
-\r
- CalloutNameIDCounter++;\r
- e->id = CalloutNameIDCounter;\r
- e->name_len = (int )(name_end - name);\r
- }\r
-\r
- *rentry = e;\r
- return e->id;\r
-}\r
-\r
-static int\r
-is_allowed_callout_name(OnigEncoding enc, UChar* name, UChar* name_end)\r
-{\r
- UChar* p;\r
- OnigCodePoint c;\r
-\r
- if (name >= name_end) return 0;\r
-\r
- p = name;\r
- while (p < name_end) {\r
- c = ONIGENC_MBC_TO_CODE(enc, p, name_end);\r
- if (! IS_ALLOWED_CODE_IN_CALLOUT_NAME(c))\r
- return 0;\r
-\r
- if (p == name) {\r
- if (c >= '0' && c <= '9') return 0;\r
- }\r
-\r
- p += ONIGENC_MBC_ENC_LEN(enc, p);\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-static int\r
-is_allowed_callout_tag_name(OnigEncoding enc, UChar* name, UChar* name_end)\r
-{\r
- UChar* p;\r
- OnigCodePoint c;\r
-\r
- if (name >= name_end) return 0;\r
-\r
- p = name;\r
- while (p < name_end) {\r
- c = ONIGENC_MBC_TO_CODE(enc, p, name_end);\r
- if (! IS_ALLOWED_CODE_IN_CALLOUT_TAG_NAME(c))\r
- return 0;\r
-\r
- if (p == name) {\r
- if (c >= '0' && c <= '9') return 0;\r
- }\r
-\r
- p += ONIGENC_MBC_ENC_LEN(enc, p);\r
- }\r
-\r
- return 1;\r
-}\r
-\r
-extern int\r
-onig_set_callout_of_name(OnigEncoding enc, OnigCalloutType callout_type,\r
- UChar* name, UChar* name_end, int in,\r
- OnigCalloutFunc start_func,\r
- OnigCalloutFunc end_func,\r
- int arg_num, unsigned int arg_types[],\r
- int opt_arg_num, OnigValue opt_defaults[])\r
-{\r
- int r;\r
- int i;\r
- int j;\r
- int id;\r
- int is_not_single;\r
- CalloutNameEntry* e;\r
- CalloutNameListEntry* fe;\r
-\r
- if (callout_type != ONIG_CALLOUT_TYPE_SINGLE)\r
- return ONIGERR_INVALID_ARGUMENT;\r
-\r
- if (arg_num < 0 || arg_num > ONIG_CALLOUT_MAX_ARGS_NUM)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- if (opt_arg_num < 0 || opt_arg_num > arg_num)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- if (start_func == 0 && end_func == 0)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- if ((in & ONIG_CALLOUT_IN_PROGRESS) == 0 && (in & ONIG_CALLOUT_IN_RETRACTION) == 0)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- for (i = 0; i < arg_num; i++) {\r
- unsigned int t = arg_types[i];\r
- if (t == ONIG_TYPE_VOID)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
- else {\r
- if (i >= arg_num - opt_arg_num) {\r
- if (t != ONIG_TYPE_LONG && t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING &&\r
- t != ONIG_TYPE_TAG)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
- }\r
- else {\r
- if (t != ONIG_TYPE_LONG) {\r
- t = t & ~ONIG_TYPE_LONG;\r
- if (t != ONIG_TYPE_CHAR && t != ONIG_TYPE_STRING && t != ONIG_TYPE_TAG)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
- }\r
- }\r
- }\r
- }\r
-\r
- if (! is_allowed_callout_name(enc, name, name_end)) {\r
- return ONIGERR_INVALID_CALLOUT_NAME;\r
- }\r
-\r
- is_not_single = (callout_type != ONIG_CALLOUT_TYPE_SINGLE);\r
- id = callout_name_entry(&e, enc, is_not_single, name, name_end);\r
- if (id < 0) return id;\r
-\r
- r = ONIG_NORMAL;\r
- if (IS_NULL(GlobalCalloutNameList)) {\r
- r = make_callout_func_list(&GlobalCalloutNameList, 10);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- while (id >= GlobalCalloutNameList->n) {\r
- int rid;\r
- r = callout_func_list_add(GlobalCalloutNameList, &rid);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- fe = GlobalCalloutNameList->v + id;\r
- fe->type = callout_type;\r
- fe->in = in;\r
- fe->start_func = start_func;\r
- fe->end_func = end_func;\r
- fe->arg_num = arg_num;\r
- fe->opt_arg_num = opt_arg_num;\r
- fe->name = e->name;\r
-\r
- for (i = 0; i < arg_num; i++) {\r
- fe->arg_types[i] = arg_types[i];\r
- }\r
- for (i = arg_num - opt_arg_num, j = 0; i < arg_num; i++, j++) {\r
- if(IS_NULL(opt_defaults))return ONIGERR_INVALID_ARGUMENT;\r
- if (fe->arg_types[i] == ONIG_TYPE_STRING) {\r
- OnigValue* val;\r
- UChar* ds;\r
-\r
- if (IS_NULL(opt_defaults)) return ONIGERR_INVALID_ARGUMENT;\r
-\r
- val = opt_defaults + j;\r
- ds = onigenc_strdup(enc, val->s.start, val->s.end);\r
- CHECK_NULL_RETURN_MEMERR(ds);\r
-\r
- fe->opt_defaults[i].s.start = ds;\r
- fe->opt_defaults[i].s.end = ds + (val->s.end - val->s.start);\r
- }\r
- else {\r
- fe->opt_defaults[i] = opt_defaults[j];\r
- }\r
- }\r
-\r
- r = id;\r
- return r;\r
-}\r
-\r
-static int\r
-get_callout_name_id_by_name(OnigEncoding enc, int is_not_single,\r
- UChar* name, UChar* name_end, int* rid)\r
-{\r
- int r;\r
- CalloutNameEntry* e;\r
-\r
- if (! is_allowed_callout_name(enc, name, name_end)) {\r
- return ONIGERR_INVALID_CALLOUT_NAME;\r
- }\r
-\r
- e = callout_name_find(enc, is_not_single, name, name_end);\r
- if (IS_NULL(e)) {\r
- return ONIGERR_UNDEFINED_CALLOUT_NAME;\r
- }\r
-\r
- r = ONIG_NORMAL;\r
- *rid = e->id;\r
-\r
- return r;\r
-}\r
-\r
-extern OnigCalloutFunc\r
-onig_get_callout_start_func(regex_t* reg, int callout_num)\r
-{\r
- /* If used for callouts of contents, return 0. */\r
- CalloutListEntry* e;\r
-\r
- e = onig_reg_callout_list_at(reg, callout_num);\r
- CHECK_NULL_RETURN(e);\r
- return e->start_func;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_callout_tag_start(regex_t* reg, int callout_num)\r
-{\r
- CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num);\r
- CHECK_NULL_RETURN(e);\r
- return e->tag_start;\r
-}\r
-\r
-extern const UChar*\r
-onig_get_callout_tag_end(regex_t* reg, int callout_num)\r
-{\r
- CalloutListEntry* e = onig_reg_callout_list_at(reg, callout_num);\r
- CHECK_NULL_RETURN(e);\r
- return e->tag_end;\r
-}\r
-\r
-\r
-extern OnigCalloutType\r
-onig_get_callout_type_by_name_id(int name_id)\r
-{\r
- if (name_id < 0 || name_id >= GlobalCalloutNameList->n)\r
- return 0;\r
-\r
- return GlobalCalloutNameList->v[name_id].type;\r
-}\r
-\r
-extern OnigCalloutFunc\r
-onig_get_callout_start_func_by_name_id(int name_id)\r
-{\r
- if (name_id < 0 || name_id >= GlobalCalloutNameList->n)\r
- return 0;\r
-\r
- return GlobalCalloutNameList->v[name_id].start_func;\r
-}\r
-\r
-extern OnigCalloutFunc\r
-onig_get_callout_end_func_by_name_id(int name_id)\r
-{\r
- if (name_id < 0 || name_id >= GlobalCalloutNameList->n)\r
- return 0;\r
-\r
- return GlobalCalloutNameList->v[name_id].end_func;\r
-}\r
-\r
-extern int\r
-onig_get_callout_in_by_name_id(int name_id)\r
-{\r
- if (name_id < 0 || name_id >= GlobalCalloutNameList->n)\r
- return 0;\r
-\r
- return GlobalCalloutNameList->v[name_id].in;\r
-}\r
-\r
-static int\r
-get_callout_arg_num_by_name_id(int name_id)\r
-{\r
- return GlobalCalloutNameList->v[name_id].arg_num;\r
-}\r
-\r
-static int\r
-get_callout_opt_arg_num_by_name_id(int name_id)\r
-{\r
- return GlobalCalloutNameList->v[name_id].opt_arg_num;\r
-}\r
-\r
-static unsigned int\r
-get_callout_arg_type_by_name_id(int name_id, int index)\r
-{\r
- return GlobalCalloutNameList->v[name_id].arg_types[index];\r
-}\r
-\r
-static OnigValue\r
-get_callout_opt_default_by_name_id(int name_id, int index)\r
-{\r
- return GlobalCalloutNameList->v[name_id].opt_defaults[index];\r
-}\r
-\r
-extern UChar*\r
-onig_get_callout_name_by_name_id(int name_id)\r
-{\r
- if (name_id < 0 || name_id >= GlobalCalloutNameList->n)\r
- return 0;\r
-\r
- return GlobalCalloutNameList->v[name_id].name;\r
-}\r
-\r
-extern int\r
-onig_global_callout_names_free(void)\r
-{\r
- free_callout_func_list(GlobalCalloutNameList);\r
- GlobalCalloutNameList = 0;\r
-\r
- global_callout_name_table_free();\r
- return ONIG_NORMAL;\r
-}\r
-\r
-\r
-typedef st_table CalloutTagTable;\r
-typedef intptr_t CalloutTagVal;\r
-\r
-#define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0)\r
-\r
-static int\r
-i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg)\r
-{\r
- int num;\r
- RegexExt* ext = (RegexExt* )arg;\r
-\r
- num = (int )e - 1;\r
- ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST;\r
- return ST_CONTINUE;\r
-}\r
-\r
-static int\r
-setup_ext_callout_list_values(regex_t* reg)\r
-{\r
- int i, j;\r
- RegexExt* ext;\r
-\r
- ext = reg->extp;\r
- if (IS_NOT_NULL(ext->tag_table)) {\r
- onig_st_foreach((CalloutTagTable *)ext->tag_table, i_callout_callout_list_set,\r
- (st_data_t )ext);\r
- }\r
-\r
- for (i = 0; i < ext->callout_num; i++) {\r
- CalloutListEntry* e = ext->callout_list + i;\r
- if (e->of == ONIG_CALLOUT_OF_NAME) {\r
- for (j = 0; j < e->u.arg.num; j++) {\r
- if (e->u.arg.types[j] == ONIG_TYPE_TAG) {\r
- UChar* start;\r
- UChar* end;\r
- int num;\r
- start = e->u.arg.vals[j].s.start;\r
- end = e->u.arg.vals[j].s.end;\r
- num = onig_get_callout_num_by_tag(reg, start, end);\r
- if (num < 0) return num;\r
- e->u.arg.vals[j].tag = num;\r
- }\r
- }\r
- }\r
- }\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-extern int\r
-onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num)\r
-{\r
- RegexExt* ext = reg->extp;\r
-\r
- if (IS_NULL(ext) || IS_NULL(ext->callout_list)) return 0;\r
- if (callout_num > ext->callout_num) return 0;\r
-\r
- return (ext->callout_list[callout_num].flag &\r
- CALLOUT_TAG_LIST_FLAG_TAG_EXIST) != 0;\r
-}\r
-\r
-static int\r
-i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED)\r
-{\r
- xfree(key);\r
- return ST_DELETE;\r
-}\r
-\r
-static int\r
-callout_tag_table_clear(CalloutTagTable* t)\r
-{\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_foreach(t, i_free_callout_tag_entry, 0);\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_callout_tag_table_free(void* table)\r
-{\r
- CalloutTagTable* t = (CalloutTagTable* )table;\r
-\r
- if (IS_NOT_NULL(t)) {\r
- int r = callout_tag_table_clear(t);\r
- if (r != 0) return r;\r
-\r
- onig_st_free_table(t);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_get_callout_num_by_tag(regex_t* reg,\r
- const UChar* tag, const UChar* tag_end)\r
-{\r
- int r;\r
- RegexExt* ext;\r
- CalloutTagVal e;\r
-\r
- ext = reg->extp;\r
- if (IS_NULL(ext) || IS_NULL(ext->tag_table))\r
- return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- r = onig_st_lookup_strend(ext->tag_table, tag, tag_end,\r
- (HashDataType* )((void* )(&e)));\r
- if (r == 0) return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
- return (int )e;\r
-}\r
-\r
-static CalloutTagVal\r
-callout_tag_find(CalloutTagTable* t, const UChar* name, const UChar* name_end)\r
-{\r
- CalloutTagVal e;\r
-\r
- e = -1;\r
- if (IS_NOT_NULL(t)) {\r
- onig_st_lookup_strend(t, name, name_end, (HashDataType* )((void* )(&e)));\r
- }\r
- return e;\r
-}\r
-\r
-static int\r
-callout_tag_table_new(CalloutTagTable** rt)\r
-{\r
- CalloutTagTable* t;\r
-\r
- *rt = 0;\r
- t = onig_st_init_strend_table_with_size(INIT_TAG_NAMES_ALLOC_NUM);\r
- CHECK_NULL_RETURN_MEMERR(t);\r
-\r
- *rt = t;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-callout_tag_entry_raw(ScanEnv* env, CalloutTagTable* t, UChar* name,\r
- UChar* name_end, CalloutTagVal entry_val)\r
-{\r
- int r;\r
- CalloutTagVal val;\r
-\r
- if (name_end - name <= 0)\r
- return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- val = callout_tag_find(t, name, name_end);\r
- if (val >= 0) {\r
- onig_scan_env_set_error_string(env, ONIGERR_MULTIPLEX_DEFINED_NAME,\r
- name, name_end);\r
- return ONIGERR_MULTIPLEX_DEFINED_NAME;\r
- }\r
-\r
- r = onig_st_insert_strend(t, name, name_end, (HashDataType )entry_val);\r
- if (r < 0) return r;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-ext_ensure_tag_table(regex_t* reg)\r
-{\r
- int r;\r
- RegexExt* ext;\r
- CalloutTagTable* t;\r
-\r
- ext = onig_get_regex_ext(reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
-\r
- if (IS_NULL(ext->tag_table)) {\r
- r = callout_tag_table_new(&t);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- ext->tag_table = t;\r
- }\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-callout_tag_entry(ScanEnv* env, regex_t* reg, UChar* name, UChar* name_end,\r
- CalloutTagVal entry_val)\r
-{\r
- int r;\r
- RegexExt* ext;\r
- CalloutListEntry* e;\r
-\r
- r = ext_ensure_tag_table(reg);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- ext = onig_get_regex_ext(reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
- CHECK_NULL_RETURN_MEMERR(ext->tag_table);\r
- r = callout_tag_entry_raw(env, ext->tag_table, name, name_end, entry_val);\r
-\r
- e = onig_reg_callout_list_at(reg, (int )entry_val);\r
- CHECK_NULL_RETURN_MEMERR(e);\r
- e->tag_start = name;\r
- e->tag_end = name_end;\r
-\r
- return r;\r
-}\r
-\r
-#endif /* USE_CALLOUT */\r
-\r
-\r
-#define INIT_SCANENV_MEMENV_ALLOC_SIZE 16\r
-\r
-static void\r
-scan_env_clear(ScanEnv* env)\r
-{\r
- MEM_STATUS_CLEAR(env->capture_history);\r
- MEM_STATUS_CLEAR(env->bt_mem_start);\r
- MEM_STATUS_CLEAR(env->bt_mem_end);\r
- MEM_STATUS_CLEAR(env->backrefed_mem);\r
- env->error = (UChar* )NULL;\r
- env->error_end = (UChar* )NULL;\r
- env->num_call = 0;\r
-\r
-#ifdef USE_CALL\r
- env->unset_addr_list = NULL;\r
- env->has_call_zero = 0;\r
-#endif\r
-\r
- env->num_mem = 0;\r
- env->num_named = 0;\r
- env->mem_alloc = 0;\r
- env->mem_env_dynamic = (MemEnv* )NULL;\r
-\r
- xmemset(env->mem_env_static, 0, sizeof(env->mem_env_static));\r
-\r
- env->parse_depth = 0;\r
- env->keep_num = 0;\r
- env->save_num = 0;\r
- env->save_alloc_num = 0;\r
- env->saves = 0;\r
-}\r
-\r
-static int\r
-scan_env_add_mem_entry(ScanEnv* env)\r
-{\r
- int i, need, alloc;\r
- MemEnv* p;\r
-\r
- need = env->num_mem + 1;\r
- if (need > MaxCaptureNum && MaxCaptureNum != 0)\r
- return ONIGERR_TOO_MANY_CAPTURES;\r
-\r
- if (need >= SCANENV_MEMENV_SIZE) {\r
- if (env->mem_alloc <= need) {\r
- if (IS_NULL(env->mem_env_dynamic)) {\r
- alloc = INIT_SCANENV_MEMENV_ALLOC_SIZE;\r
- p = (MemEnv* )xmalloc(sizeof(MemEnv) * alloc);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- xmemcpy(p, env->mem_env_static, sizeof(env->mem_env_static));\r
- }\r
- else {\r
- alloc = env->mem_alloc * 2;\r
- p = (MemEnv* )xrealloc(env->mem_env_dynamic, sizeof(MemEnv) * alloc, sizeof(MemEnv)*env->mem_alloc);\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- }\r
-\r
- for (i = env->num_mem + 1; i < alloc; i++) {\r
- p[i].node = NULL_NODE;\r
-#if 0\r
- p[i].in = 0;\r
- p[i].recursion = 0;\r
-#endif\r
- }\r
-\r
- env->mem_env_dynamic = p;\r
- env->mem_alloc = alloc;\r
- }\r
- }\r
-\r
- env->num_mem++;\r
- return env->num_mem;\r
-}\r
-\r
-static int\r
-scan_env_set_mem_node(ScanEnv* env, int num, Node* node)\r
-{\r
- if (env->num_mem >= num)\r
- SCANENV_MEMENV(env)[num].node = node;\r
- else\r
- return ONIGERR_PARSER_BUG;\r
- return 0;\r
-}\r
-\r
-extern void\r
-onig_node_free(Node* node)\r
-{\r
- start:\r
- if (IS_NULL(node)) return ;\r
-\r
-#ifdef DEBUG_NODE_FREE\r
- fprintf(stderr, "onig_node_free: %p\n", node);\r
-#endif\r
-\r
- switch (NODE_TYPE(node)) {\r
- case NODE_STRING:\r
- if (STR_(node)->capacity != 0 &&\r
- IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) {\r
- xfree(STR_(node)->s);\r
- }\r
- break;\r
-\r
- case NODE_LIST:\r
- case NODE_ALT:\r
- onig_node_free(NODE_CAR(node));\r
- {\r
- Node* next_node = NODE_CDR(node);\r
-\r
- xfree(node);\r
- node = next_node;\r
- goto start;\r
- }\r
- break;\r
-\r
- case NODE_CCLASS:\r
- {\r
- CClassNode* cc = CCLASS_(node);\r
-\r
- if (cc->mbuf)\r
- bbuf_free(cc->mbuf);\r
- }\r
- break;\r
-\r
- case NODE_BACKREF:\r
- if (IS_NOT_NULL(BACKREF_(node)->back_dynamic))\r
- xfree(BACKREF_(node)->back_dynamic);\r
- break;\r
-\r
- case NODE_BAG:\r
- if (NODE_BODY(node))\r
- onig_node_free(NODE_BODY(node));\r
-\r
- {\r
- BagNode* en = BAG_(node);\r
- if (en->type == BAG_IF_ELSE) {\r
- onig_node_free(en->te.Then);\r
- onig_node_free(en->te.Else);\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- case NODE_ANCHOR:\r
- if (NODE_BODY(node))\r
- onig_node_free(NODE_BODY(node));\r
- break;\r
-\r
- case NODE_CTYPE:\r
- case NODE_CALL:\r
- case NODE_GIMMICK:\r
- break;\r
- }\r
-\r
- xfree(node);\r
-}\r
-\r
-static void\r
-cons_node_free_alone(Node* node)\r
-{\r
- NODE_CAR(node) = 0;\r
- NODE_CDR(node) = 0;\r
- onig_node_free(node);\r
-}\r
-\r
-static Node*\r
-node_new(void)\r
-{\r
- Node* node;\r
-\r
- node = (Node* )xmalloc(sizeof(Node));\r
- CHECK_NULL_RETURN(node);\r
- xmemset(node, 0, sizeof(*node));\r
-\r
-#ifdef DEBUG_NODE_FREE\r
- fprintf(stderr, "node_new: %p\n", node);\r
-#endif\r
- return node;\r
-}\r
-\r
-\r
-static void\r
-initialize_cclass(CClassNode* cc)\r
-{\r
- BITSET_CLEAR(cc->bs);\r
- cc->flags = 0;\r
- cc->mbuf = NULL;\r
-}\r
-\r
-static Node*\r
-node_new_cclass(void)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_CCLASS);\r
- initialize_cclass(CCLASS_(node));\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_ctype(int type, int not, OnigOptionType options)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_CTYPE);\r
- CTYPE_(node)->ctype = type;\r
- CTYPE_(node)->not = not;\r
- CTYPE_(node)->options = options;\r
- CTYPE_(node)->ascii_mode = IS_ASCII_MODE_CTYPE_OPTION(type, options);\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_anychar(void)\r
-{\r
- Node* node = node_new_ctype(CTYPE_ANYCHAR, 0, ONIG_OPTION_NONE);\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_anychar_with_fixed_option(OnigOptionType option)\r
-{\r
- CtypeNode* ct;\r
- Node* node;\r
-\r
- node = node_new_anychar();\r
- CHECK_NULL_RETURN(node);\r
-\r
- ct = CTYPE_(node);\r
- ct->options = option;\r
- NODE_STATUS_ADD(node, FIXED_OPTION);\r
- return node;\r
-}\r
-\r
-static int\r
-node_new_no_newline(Node** node, ScanEnv* env)\r
-{\r
- Node* n;\r
-\r
- n = node_new_anychar_with_fixed_option(ONIG_OPTION_NONE);\r
- CHECK_NULL_RETURN_MEMERR(n);\r
- *node = n;\r
- return 0;\r
-}\r
-\r
-static int\r
-node_new_true_anychar(Node** node, ScanEnv* env)\r
-{\r
- Node* n;\r
-\r
- n = node_new_anychar_with_fixed_option(ONIG_OPTION_MULTILINE);\r
- CHECK_NULL_RETURN_MEMERR(n);\r
- *node = n;\r
- return 0;\r
-}\r
-\r
-static Node*\r
-node_new_list(Node* left, Node* right)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_LIST);\r
- NODE_CAR(node) = left;\r
- NODE_CDR(node) = right;\r
- return node;\r
-}\r
-\r
-extern Node*\r
-onig_node_new_list(Node* left, Node* right)\r
-{\r
- return node_new_list(left, right);\r
-}\r
-\r
-extern Node*\r
-onig_node_list_add(Node* list, Node* x)\r
-{\r
- Node *n;\r
-\r
- n = onig_node_new_list(x, NULL);\r
- if (IS_NULL(n)) return NULL_NODE;\r
-\r
- if (IS_NOT_NULL(list)) {\r
- while (IS_NOT_NULL(NODE_CDR(list)))\r
- list = NODE_CDR(list);\r
-\r
- NODE_CDR(list) = n;\r
- }\r
-\r
- return n;\r
-}\r
-\r
-extern Node*\r
-onig_node_new_alt(Node* left, Node* right)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_ALT);\r
- NODE_CAR(node) = left;\r
- NODE_CDR(node) = right;\r
- return node;\r
-}\r
-\r
-static Node*\r
-make_list_or_alt(NodeType type, int n, Node* ns[])\r
-{\r
- Node* r;\r
-\r
- if (n <= 0) return NULL_NODE;\r
-\r
- if (n == 1) {\r
- r = node_new();\r
- CHECK_NULL_RETURN(r);\r
- NODE_SET_TYPE(r, type);\r
- NODE_CAR(r) = ns[0];\r
- NODE_CDR(r) = NULL_NODE;\r
- }\r
- else {\r
- Node* right;\r
-\r
- r = node_new();\r
- CHECK_NULL_RETURN(r);\r
-\r
- right = make_list_or_alt(type, n - 1, ns + 1);\r
- if (IS_NULL(right)) {\r
- onig_node_free(r);\r
- return NULL_NODE;\r
- }\r
-\r
- NODE_SET_TYPE(r, type);\r
- NODE_CAR(r) = ns[0];\r
- NODE_CDR(r) = right;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static Node*\r
-make_list(int n, Node* ns[])\r
-{\r
- return make_list_or_alt(NODE_LIST, n, ns);\r
-}\r
-\r
-static Node*\r
-make_alt(int n, Node* ns[])\r
-{\r
- return make_list_or_alt(NODE_ALT, n, ns);\r
-}\r
-\r
-extern Node*\r
-onig_node_new_anchor(int type, int ascii_mode)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_ANCHOR);\r
- ANCHOR_(node)->type = type;\r
- ANCHOR_(node)->char_len = -1;\r
- ANCHOR_(node)->ascii_mode = ascii_mode;\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_backref(int back_num, int* backrefs, int by_name,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- int exist_level, int nest_level,\r
-#endif\r
- ScanEnv* env)\r
-{\r
- int i;\r
- Node* node = node_new();\r
-\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_BACKREF);\r
- BACKREF_(node)->back_num = back_num;\r
- BACKREF_(node)->back_dynamic = (int* )NULL;\r
- if (by_name != 0)\r
- NODE_STATUS_ADD(node, BY_NAME);\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- if (exist_level != 0) {\r
- NODE_STATUS_ADD(node, NEST_LEVEL);\r
- BACKREF_(node)->nest_level = nest_level;\r
- }\r
-#endif\r
-\r
- for (i = 0; i < back_num; i++) {\r
- if (backrefs[i] <= env->num_mem &&\r
- IS_NULL(SCANENV_MEMENV(env)[backrefs[i]].node)) {\r
- NODE_STATUS_ADD(node, RECURSION); /* /...(\1).../ */\r
- break;\r
- }\r
- }\r
-\r
- if (back_num <= NODE_BACKREFS_SIZE) {\r
- for (i = 0; i < back_num; i++)\r
- BACKREF_(node)->back_static[i] = backrefs[i];\r
- }\r
- else {\r
- int* p = (int* )xmalloc(sizeof(int) * back_num);\r
- if (IS_NULL(p)) {\r
- onig_node_free(node);\r
- return NULL;\r
- }\r
- BACKREF_(node)->back_dynamic = p;\r
- for (i = 0; i < back_num; i++)\r
- p[i] = backrefs[i];\r
- }\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_backref_checker(int back_num, int* backrefs, int by_name,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- int exist_level, int nest_level,\r
-#endif\r
- ScanEnv* env)\r
-{\r
- Node* node;\r
-\r
- node = node_new_backref(back_num, backrefs, by_name,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- exist_level, nest_level,\r
-#endif\r
- env);\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_STATUS_ADD(node, CHECKER);\r
- return node;\r
-}\r
-\r
-#ifdef USE_CALL\r
-static Node*\r
-node_new_call(UChar* name, UChar* name_end, int gnum, int by_number)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_CALL);\r
- CALL_(node)->by_number = by_number;\r
- CALL_(node)->name = name;\r
- CALL_(node)->name_end = name_end;\r
- CALL_(node)->group_num = gnum;\r
- CALL_(node)->entry_count = 1;\r
- return node;\r
-}\r
-#endif\r
-\r
-static Node*\r
-node_new_quantifier(int lower, int upper, int by_number)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_QUANT);\r
- QUANT_(node)->lower = lower;\r
- QUANT_(node)->upper = upper;\r
- QUANT_(node)->greedy = 1;\r
- QUANT_(node)->emptiness = BODY_IS_NOT_EMPTY;\r
- QUANT_(node)->head_exact = NULL_NODE;\r
- QUANT_(node)->next_head_exact = NULL_NODE;\r
- QUANT_(node)->is_refered = 0;\r
- if (by_number != 0)\r
- NODE_STATUS_ADD(node, BY_NUMBER);\r
-\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_bag(enum BagType type)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_BAG);\r
- BAG_(node)->type = type;\r
-\r
- switch (type) {\r
- case BAG_MEMORY:\r
- BAG_(node)->m.regnum = 0;\r
- BAG_(node)->m.called_addr = -1;\r
- BAG_(node)->m.entry_count = 1;\r
- BAG_(node)->m.called_state = 0;\r
- break;\r
-\r
- case BAG_OPTION:\r
- BAG_(node)->o.options = 0;\r
- break;\r
-\r
- case BAG_STOP_BACKTRACK:\r
- break;\r
-\r
- case BAG_IF_ELSE:\r
- BAG_(node)->te.Then = 0;\r
- BAG_(node)->te.Else = 0;\r
- break;\r
- }\r
-\r
- BAG_(node)->opt_count = 0;\r
- return node;\r
-}\r
-\r
-extern Node*\r
-onig_node_new_bag(enum BagType type)\r
-{\r
- return node_new_bag(type);\r
-}\r
-\r
-static Node*\r
-node_new_bag_if_else(Node* cond, Node* Then, Node* Else)\r
-{\r
- Node* n;\r
- n = node_new_bag(BAG_IF_ELSE);\r
- CHECK_NULL_RETURN(n);\r
-\r
- NODE_BODY(n) = cond;\r
- BAG_(n)->te.Then = Then;\r
- BAG_(n)->te.Else = Else;\r
- return n;\r
-}\r
-\r
-static Node*\r
-node_new_memory(int is_named)\r
-{\r
- Node* node = node_new_bag(BAG_MEMORY);\r
- CHECK_NULL_RETURN(node);\r
- if (is_named != 0)\r
- NODE_STATUS_ADD(node, NAMED_GROUP);\r
-\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_option(OnigOptionType option)\r
-{\r
- Node* node = node_new_bag(BAG_OPTION);\r
- CHECK_NULL_RETURN(node);\r
- BAG_(node)->o.options = option;\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_group(Node* content)\r
-{\r
- Node* node;\r
-\r
- node = node_new();\r
- CHECK_NULL_RETURN(node);\r
- NODE_SET_TYPE(node, NODE_LIST);\r
- NODE_CAR(node) = content;\r
- NODE_CDR(node) = NULL_NODE;\r
-\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_drop_group(Node* group)\r
-{\r
- Node* content;\r
-\r
- content = NODE_CAR(group);\r
- NODE_CAR(group) = NULL_NODE;\r
- onig_node_free(group);\r
- return content;\r
-}\r
-\r
-static int\r
-node_new_fail(Node** node, ScanEnv* env)\r
-{\r
- *node = node_new();\r
- CHECK_NULL_RETURN_MEMERR(*node);\r
-\r
- NODE_SET_TYPE(*node, NODE_GIMMICK);\r
- GIMMICK_(*node)->type = GIMMICK_FAIL;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-node_new_save_gimmick(Node** node, enum SaveType save_type, ScanEnv* env)\r
-{\r
- int id;\r
- int r;\r
-\r
- r = save_entry(env, save_type, &id);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- *node = node_new();\r
- CHECK_NULL_RETURN_MEMERR(*node);\r
-\r
- NODE_SET_TYPE(*node, NODE_GIMMICK);\r
- GIMMICK_(*node)->id = id;\r
- GIMMICK_(*node)->type = GIMMICK_SAVE;\r
- GIMMICK_(*node)->detail_type = (int )save_type;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-node_new_update_var_gimmick(Node** node, enum UpdateVarType update_var_type,\r
- int id, ScanEnv* env)\r
-{\r
- *node = node_new();\r
- CHECK_NULL_RETURN_MEMERR(*node);\r
-\r
- NODE_SET_TYPE(*node, NODE_GIMMICK);\r
- GIMMICK_(*node)->id = id;\r
- GIMMICK_(*node)->type = GIMMICK_UPDATE_VAR;\r
- GIMMICK_(*node)->detail_type = (int )update_var_type;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-node_new_keep(Node** node, ScanEnv* env)\r
-{\r
- int r;\r
-\r
- r = node_new_save_gimmick(node, SAVE_KEEP, env);\r
- if (r != 0) return r;\r
-\r
- env->keep_num++;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-extern void\r
-onig_free_reg_callout_list(int n, CalloutListEntry* list)\r
-{\r
- int i;\r
- int j;\r
-\r
- if (IS_NULL(list)) return ;\r
-\r
- for (i = 0; i < n; i++) {\r
- if (list[i].of == ONIG_CALLOUT_OF_NAME) {\r
- for (j = 0; j < list[i].u.arg.passed_num; j++) {\r
- if (list[i].u.arg.types[j] == ONIG_TYPE_STRING) {\r
- if (IS_NOT_NULL(list[i].u.arg.vals[j].s.start))\r
- xfree(list[i].u.arg.vals[j].s.start);\r
- }\r
- }\r
- }\r
- else { /* ONIG_CALLOUT_OF_CONTENTS */\r
- if (IS_NOT_NULL(list[i].u.content.start)) {\r
- xfree((void* )list[i].u.content.start);\r
- }\r
- }\r
- }\r
-\r
- xfree(list);\r
-}\r
-\r
-extern CalloutListEntry*\r
-onig_reg_callout_list_at(regex_t* reg, int num)\r
-{\r
- RegexExt* ext = reg->extp;\r
- CHECK_NULL_RETURN(ext);\r
-\r
- if (num <= 0 || num > ext->callout_num)\r
- return 0;\r
-\r
- num--;\r
- return ext->callout_list + num;\r
-}\r
-\r
-static int\r
-reg_callout_list_entry(ScanEnv* env, int* rnum)\r
-{\r
-#define INIT_CALLOUT_LIST_NUM 3\r
-\r
- int num;\r
- CalloutListEntry* list;\r
- CalloutListEntry* e;\r
- RegexExt* ext;\r
-\r
- ext = onig_get_regex_ext(env->reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
-\r
- if (IS_NULL(ext->callout_list)) {\r
- list = (CalloutListEntry* )xmalloc(sizeof(*list) * INIT_CALLOUT_LIST_NUM);\r
- CHECK_NULL_RETURN_MEMERR(list);\r
-\r
- ext->callout_list = list;\r
- ext->callout_list_alloc = INIT_CALLOUT_LIST_NUM;\r
- ext->callout_num = 0;\r
- }\r
-\r
- num = ext->callout_num + 1;\r
- if (num > ext->callout_list_alloc) {\r
- int alloc = ext->callout_list_alloc * 2;\r
- list = (CalloutListEntry* )xrealloc(ext->callout_list,\r
- sizeof(CalloutListEntry) * alloc,\r
- sizeof(CalloutListEntry) * ext->callout_list_alloc);\r
- CHECK_NULL_RETURN_MEMERR(list);\r
-\r
- ext->callout_list = list;\r
- ext->callout_list_alloc = alloc;\r
- }\r
-\r
- e = ext->callout_list + (num - 1);\r
-\r
- e->flag = 0;\r
- e->of = 0;\r
- e->in = ONIG_CALLOUT_OF_CONTENTS;\r
- e->type = 0;\r
- e->tag_start = 0;\r
- e->tag_end = 0;\r
- e->start_func = 0;\r
- e->end_func = 0;\r
- e->u.arg.num = 0;\r
- e->u.arg.passed_num = 0;\r
-\r
- ext->callout_num = num;\r
- *rnum = num;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-node_new_callout(Node** node, OnigCalloutOf callout_of, int num, int id,\r
- ScanEnv* env)\r
-{\r
- *node = node_new();\r
- CHECK_NULL_RETURN_MEMERR(*node);\r
-\r
- NODE_SET_TYPE(*node, NODE_GIMMICK);\r
- GIMMICK_(*node)->id = id;\r
- GIMMICK_(*node)->num = num;\r
- GIMMICK_(*node)->type = GIMMICK_CALLOUT;\r
- GIMMICK_(*node)->detail_type = (int )callout_of;\r
-\r
- return ONIG_NORMAL;\r
-}\r
-#endif\r
-\r
-static int\r
-make_text_segment(Node** node, ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- Node* x;\r
- Node* ns[2];\r
-\r
- /* \X == (?>\O(?:\Y\O)*) */\r
-\r
- ns[1] = NULL_NODE;\r
-\r
- r = ONIGERR_MEMORY;\r
- ns[0] = onig_node_new_anchor(ANCR_NO_TEXT_SEGMENT_BOUNDARY, 0);\r
- if (IS_NULL(ns[0])) goto err;\r
-\r
- r = node_new_true_anychar(&ns[1], env);\r
- if (r != 0) goto err1;\r
-\r
- x = make_list(2, ns);\r
- if (IS_NULL(x)) goto err;\r
- ns[0] = x;\r
- ns[1] = NULL_NODE;\r
-\r
- x = node_new_quantifier(0, INFINITE_REPEAT, 1);\r
- if (IS_NULL(x)) goto err;\r
-\r
- NODE_BODY(x) = ns[0];\r
- ns[0] = NULL_NODE;\r
- ns[1] = x;\r
-\r
- r = node_new_true_anychar(&ns[0], env);\r
- if (r != 0) goto err1;\r
-\r
- x = make_list(2, ns);\r
- if (IS_NULL(x)) goto err;\r
-\r
- ns[0] = x;\r
- ns[1] = NULL_NODE;\r
-\r
- x = node_new_bag(BAG_STOP_BACKTRACK);\r
- if (IS_NULL(x)) goto err;\r
-\r
- NODE_BODY(x) = ns[0];\r
-\r
- *node = x;\r
- return ONIG_NORMAL;\r
-\r
- err:\r
- r = ONIGERR_MEMORY;\r
- err1:\r
- for (i = 0; i < 2; i++) onig_node_free(ns[i]);\r
- return r;\r
-}\r
-\r
-static int\r
-make_absent_engine(Node** node, int pre_save_right_id, Node* absent,\r
- Node* step_one, int lower, int upper, int possessive,\r
- int is_range_cutter, ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- int id;\r
- Node* x;\r
- Node* ns[4];\r
-\r
- for (i = 0; i < 4; i++) ns[i] = NULL_NODE;\r
-\r
- ns[1] = absent;\r
- ns[3] = step_one; /* for err */\r
- r = node_new_save_gimmick(&ns[0], SAVE_S, env);\r
- if (r != 0) goto err;\r
-\r
- id = GIMMICK_(ns[0])->id;\r
- r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_S_STACK,\r
- id, env);\r
- if (r != 0) goto err;\r
-\r
- r = node_new_fail(&ns[3], env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(4, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- ns[0] = x;\r
- ns[1] = step_one;\r
- ns[2] = ns[3] = NULL_NODE;\r
-\r
- x = make_alt(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- ns[0] = x;\r
-\r
- x = node_new_quantifier(lower, upper, 0);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- NODE_BODY(x) = ns[0];\r
- ns[0] = x;\r
-\r
- if (possessive != 0) {\r
- x = node_new_bag(BAG_STOP_BACKTRACK);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- NODE_BODY(x) = ns[0];\r
- ns[0] = x;\r
- }\r
-\r
- r = node_new_update_var_gimmick(&ns[1], UPDATE_VAR_RIGHT_RANGE_FROM_STACK,\r
- pre_save_right_id, env);\r
- if (r != 0) goto err;\r
-\r
- r = node_new_fail(&ns[2], env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(2, ns + 1);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- ns[1] = x; ns[2] = NULL_NODE;\r
-\r
- x = make_alt(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- if (is_range_cutter != 0)\r
- NODE_STATUS_ADD(x, SUPER);\r
-\r
- *node = x;\r
- return ONIG_NORMAL;\r
-\r
- err0:\r
- r = ONIGERR_MEMORY;\r
- err:\r
- for (i = 0; i < 4; i++) onig_node_free(ns[i]);\r
- return r;\r
-}\r
-\r
-static int\r
-make_absent_tail(Node** node1, Node** node2, int pre_save_right_id,\r
- ScanEnv* env)\r
-{\r
- int r;\r
- int id;\r
- Node* save;\r
- Node* x;\r
- Node* ns[2];\r
-\r
- *node1 = *node2 = NULL_NODE;\r
- save = ns[0] = ns[1] = NULL_NODE;\r
-\r
- r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env);\r
- if (r != 0) goto err;\r
-\r
- id = GIMMICK_(save)->id;\r
- r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK,\r
- id, env);\r
- if (r != 0) goto err;\r
-\r
- r = node_new_fail(&ns[1], env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- ns[0] = NULL_NODE; ns[1] = x;\r
-\r
- r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK,\r
- pre_save_right_id, env);\r
- if (r != 0) goto err;\r
-\r
- x = make_alt(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- *node1 = save;\r
- *node2 = x;\r
- return ONIG_NORMAL;\r
-\r
- err0:\r
- r = ONIGERR_MEMORY;\r
- err:\r
- onig_node_free(save);\r
- onig_node_free(ns[0]);\r
- onig_node_free(ns[1]);\r
- return r;\r
-}\r
-\r
-static int\r
-make_range_clear(Node** node, ScanEnv* env)\r
-{\r
- int r;\r
- int id;\r
- Node* save;\r
- Node* x;\r
- Node* ns[2];\r
-\r
- *node = NULL_NODE;\r
- save = ns[0] = ns[1] = NULL_NODE;\r
-\r
- r = node_new_save_gimmick(&save, SAVE_RIGHT_RANGE, env);\r
- if (r != 0) goto err;\r
-\r
- id = GIMMICK_(save)->id;\r
- r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_FROM_STACK,\r
- id, env);\r
- if (r != 0) goto err;\r
-\r
- r = node_new_fail(&ns[1], env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- ns[0] = NULL_NODE; ns[1] = x;\r
-\r
- r = node_new_update_var_gimmick(&ns[0], UPDATE_VAR_RIGHT_RANGE_INIT, 0, env);\r
- if (r != 0) goto err;\r
-\r
- x = make_alt(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- NODE_STATUS_ADD(x, SUPER);\r
-\r
- ns[0] = save;\r
- ns[1] = x;\r
- save = NULL_NODE;\r
- x = make_list(2, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- *node = x;\r
- return ONIG_NORMAL;\r
-\r
- err0:\r
- r = ONIGERR_MEMORY;\r
- err:\r
- onig_node_free(save);\r
- onig_node_free(ns[0]);\r
- onig_node_free(ns[1]);\r
- return r;\r
-}\r
-\r
-static int\r
-is_simple_one_char_repeat(Node* node, Node** rquant, Node** rbody,\r
- int* is_possessive, ScanEnv* env)\r
-{\r
- Node* quant;\r
- Node* body;\r
-\r
- *rquant = *rbody = 0;\r
- *is_possessive = 0;\r
-\r
- if (NODE_TYPE(node) == NODE_QUANT) {\r
- quant = node;\r
- }\r
- else {\r
- if (NODE_TYPE(node) == NODE_BAG) {\r
- BagNode* en = BAG_(node);\r
- if (en->type == BAG_STOP_BACKTRACK) {\r
- *is_possessive = 1;\r
- quant = NODE_BAG_BODY(en);\r
- if (NODE_TYPE(quant) != NODE_QUANT)\r
- return 0;\r
- }\r
- else\r
- return 0;\r
- }\r
- else\r
- return 0;\r
- }\r
-\r
- if (QUANT_(quant)->greedy == 0)\r
- return 0;\r
-\r
- body = NODE_BODY(quant);\r
- switch (NODE_TYPE(body)) {\r
- case NODE_STRING:\r
- {\r
- int len;\r
- StrNode* sn = STR_(body);\r
- UChar *s = sn->s;\r
-\r
- len = 0;\r
- while (s < sn->end) {\r
- s += enclen(env->enc, s);\r
- len++;\r
- }\r
- if (len != 1)\r
- return 0;\r
- }\r
-\r
- case NODE_CCLASS:\r
- break;\r
-\r
- default:\r
- return 0;\r
- break;\r
- }\r
-\r
- if (node != quant) {\r
- NODE_BODY(node) = 0;\r
- onig_node_free(node);\r
- }\r
- NODE_BODY(quant) = NULL_NODE;\r
- *rquant = quant;\r
- *rbody = body;\r
- return 1;\r
-}\r
-\r
-static int\r
-make_absent_tree_for_simple_one_char_repeat(Node** node, Node* absent, Node* quant,\r
- Node* body, int possessive, ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- int id1;\r
- int lower, upper;\r
- Node* x;\r
- Node* ns[4];\r
-\r
- *node = NULL_NODE;\r
- r = ONIGERR_MEMORY;\r
- ns[0] = ns[1] = NULL_NODE;\r
- ns[2] = body, ns[3] = absent;\r
-\r
- lower = QUANT_(quant)->lower;\r
- upper = QUANT_(quant)->upper;\r
- onig_node_free(quant);\r
-\r
- r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env);\r
- if (r != 0) goto err;\r
-\r
- id1 = GIMMICK_(ns[0])->id;\r
-\r
- r = make_absent_engine(&ns[1], id1, absent, body, lower, upper, possessive,\r
- 0, env);\r
- if (r != 0) goto err;\r
-\r
- ns[2] = ns[3] = NULL_NODE;\r
-\r
- r = node_new_update_var_gimmick(&ns[2], UPDATE_VAR_RIGHT_RANGE_FROM_STACK,\r
- id1, env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(3, ns);\r
- if (IS_NULL(x)) goto err0;\r
-\r
- *node = x;\r
- return ONIG_NORMAL;\r
-\r
- err0:\r
- r = ONIGERR_MEMORY;\r
- err:\r
- for (i = 0; i < 4; i++) onig_node_free(ns[i]);\r
- return r;\r
-}\r
-\r
-static int\r
-make_absent_tree(Node** node, Node* absent, Node* expr, int is_range_cutter,\r
- ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- int id1, id2;\r
- int possessive;\r
- Node* x;\r
- Node* ns[7];\r
-\r
- r = ONIGERR_MEMORY;\r
- for (i = 0; i < 7; i++) ns[i] = NULL_NODE;\r
- ns[4] = expr; ns[5] = absent;\r
-\r
- if (is_range_cutter == 0) {\r
- Node* quant;\r
- Node* body;\r
-\r
- if (expr == NULL_NODE) {\r
- /* default expr \O* */\r
- quant = node_new_quantifier(0, INFINITE_REPEAT, 0);\r
- if (IS_NULL(quant)) goto err0;\r
-\r
- r = node_new_true_anychar(&body, env);\r
- if (r != 0) {\r
- onig_node_free(quant);\r
- goto err;\r
- }\r
- possessive = 0;\r
- goto simple;\r
- }\r
- else {\r
- if (is_simple_one_char_repeat(expr, &quant, &body, &possessive, env)) {\r
- simple:\r
- r = make_absent_tree_for_simple_one_char_repeat(node, absent, quant,\r
- body, possessive, env);\r
- if (r != 0) {\r
- ns[4] = NULL_NODE;\r
- onig_node_free(quant);\r
- onig_node_free(body);\r
- goto err;\r
- }\r
-\r
- return ONIG_NORMAL;\r
- }\r
- }\r
- }\r
-\r
- r = node_new_save_gimmick(&ns[0], SAVE_RIGHT_RANGE, env);\r
- if (r != 0) goto err;\r
-\r
- id1 = GIMMICK_(ns[0])->id;\r
-\r
- r = node_new_save_gimmick(&ns[1], SAVE_S, env);\r
- if (r != 0) goto err;\r
-\r
- id2 = GIMMICK_(ns[1])->id;\r
-\r
- r = node_new_true_anychar(&ns[3], env);\r
- if (r != 0) goto err;\r
-\r
- possessive = 1;\r
- r = make_absent_engine(&ns[2], id1, absent, ns[3], 0, INFINITE_REPEAT,\r
- possessive, is_range_cutter, env);\r
- if (r != 0) goto err;\r
-\r
- ns[3] = NULL_NODE;\r
- ns[5] = NULL_NODE;\r
-\r
- r = node_new_update_var_gimmick(&ns[3], UPDATE_VAR_S_FROM_STACK, id2, env);\r
- if (r != 0) goto err;\r
-\r
- if (is_range_cutter != 0) {\r
- x = make_list(4, ns);\r
- if (IS_NULL(x)) goto err0;\r
- }\r
- else {\r
- r = make_absent_tail(&ns[5], &ns[6], id1, env);\r
- if (r != 0) goto err;\r
-\r
- x = make_list(7, ns);\r
- if (IS_NULL(x)) goto err0;\r
- }\r
-\r
- *node = x;\r
- return ONIG_NORMAL;\r
-\r
- err0:\r
- r = ONIGERR_MEMORY;\r
- err:\r
- for (i = 0; i < 7; i++) onig_node_free(ns[i]);\r
- return r;\r
-}\r
-\r
-extern int\r
-onig_node_str_cat(Node* node, const UChar* s, const UChar* end)\r
-{\r
- int addlen = (int )(end - s);\r
-\r
- if (addlen > 0) {\r
- int len = (int )(STR_(node)->end - STR_(node)->s);\r
-\r
- if (STR_(node)->capacity > 0 || (len + addlen > NODE_STRING_BUF_SIZE - 1)) {\r
- UChar* p;\r
- int capa = len + addlen + NODE_STRING_MARGIN;\r
-\r
- if (capa <= STR_(node)->capacity) {\r
- onig_strcpy(STR_(node)->s + len, s, end);\r
- }\r
- else {\r
- if (STR_(node)->s == STR_(node)->buf)\r
- p = strcat_capa_from_static(STR_(node)->s, STR_(node)->end,\r
- s, end, capa);\r
- else\r
- p = strcat_capa(STR_(node)->s, STR_(node)->end, s, end, capa, STR_(node)->capacity);\r
-\r
- CHECK_NULL_RETURN_MEMERR(p);\r
- STR_(node)->s = p;\r
- STR_(node)->capacity = capa;\r
- }\r
- }\r
- else {\r
- onig_strcpy(STR_(node)->s + len, s, end);\r
- }\r
- STR_(node)->end = STR_(node)->s + len + addlen;\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_node_str_set(Node* node, const UChar* s, const UChar* end)\r
-{\r
- onig_node_str_clear(node);\r
- return onig_node_str_cat(node, s, end);\r
-}\r
-\r
-static int\r
-node_str_cat_char(Node* node, UChar c)\r
-{\r
- UChar s[1];\r
-\r
- s[0] = c;\r
- return onig_node_str_cat(node, s, s + 1);\r
-}\r
-\r
-extern void\r
-onig_node_conv_to_str_node(Node* node, int flag)\r
-{\r
- NODE_SET_TYPE(node, NODE_STRING);\r
- STR_(node)->flag = flag;\r
- STR_(node)->capacity = 0;\r
- STR_(node)->s = STR_(node)->buf;\r
- STR_(node)->end = STR_(node)->buf;\r
-}\r
-\r
-extern void\r
-onig_node_str_clear(Node* node)\r
-{\r
- if (STR_(node)->capacity != 0 &&\r
- IS_NOT_NULL(STR_(node)->s) && STR_(node)->s != STR_(node)->buf) {\r
- xfree(STR_(node)->s);\r
- }\r
-\r
- STR_(node)->capacity = 0;\r
- STR_(node)->flag = 0;\r
- STR_(node)->s = STR_(node)->buf;\r
- STR_(node)->end = STR_(node)->buf;\r
-}\r
-\r
-static Node*\r
-node_new_str(const UChar* s, const UChar* end)\r
-{\r
- Node* node = node_new();\r
- CHECK_NULL_RETURN(node);\r
-\r
- NODE_SET_TYPE(node, NODE_STRING);\r
- STR_(node)->capacity = 0;\r
- STR_(node)->flag = 0;\r
- STR_(node)->s = STR_(node)->buf;\r
- STR_(node)->end = STR_(node)->buf;\r
- if (onig_node_str_cat(node, s, end)) {\r
- onig_node_free(node);\r
- return NULL;\r
- }\r
- return node;\r
-}\r
-\r
-extern Node*\r
-onig_node_new_str(const UChar* s, const UChar* end)\r
-{\r
- return node_new_str(s, end);\r
-}\r
-\r
-static Node*\r
-node_new_str_raw(UChar* s, UChar* end)\r
-{\r
- Node* node = node_new_str(s, end);\r
- CHECK_NULL_RETURN(node);\r
- NODE_STRING_SET_RAW(node);\r
- return node;\r
-}\r
-\r
-static Node*\r
-node_new_empty(void)\r
-{\r
- return node_new_str(NULL, NULL);\r
-}\r
-\r
-static Node*\r
-node_new_str_raw_char(UChar c)\r
-{\r
- int i;\r
- UChar p[1];\r
- Node* node;\r
-\r
- p[0] = c;\r
- node = node_new_str_raw(p, p + 1);\r
- CHECK_NULL_RETURN(node);\r
-\r
- /* clear buf tail */\r
- for (i = 1; i < NODE_STRING_BUF_SIZE; i++)\r
- STR_(node)->buf[i] = '\0';\r
-\r
- return node;\r
-}\r
-\r
-static Node*\r
-str_node_split_last_char(Node* node, OnigEncoding enc)\r
-{\r
- const UChar *p;\r
- Node* rn;\r
- StrNode* sn;\r
-\r
- sn = STR_(node);\r
- rn = NULL_NODE;\r
- if (sn->end > sn->s) {\r
- p = onigenc_get_prev_char_head(enc, sn->s, sn->end);\r
- if (p && p > sn->s) { /* can be split. */\r
- rn = node_new_str(p, sn->end);\r
- CHECK_NULL_RETURN(rn);\r
- if (NODE_STRING_IS_RAW(node))\r
- NODE_STRING_SET_RAW(rn);\r
-\r
- sn->end = (UChar* )p;\r
- }\r
- }\r
- return rn;\r
-}\r
-\r
-static int\r
-str_node_can_be_split(Node* node, OnigEncoding enc)\r
-{\r
- StrNode* sn = STR_(node);\r
- if (sn->end > sn->s) {\r
- return ((enclen(enc, sn->s) < sn->end - sn->s) ? 1 : 0);\r
- }\r
- return 0;\r
-}\r
-\r
-extern int\r
-onig_scan_unsigned_number(UChar** src, const UChar* end, OnigEncoding enc)\r
-{\r
- unsigned int num, val;\r
- OnigCodePoint c;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- num = 0;\r
- while (! PEND) {\r
- PFETCH(c);\r
- if (IS_CODE_DIGIT_ASCII(enc, c)) {\r
- val = (unsigned int )DIGITVAL(c);\r
- if ((INT_MAX_LIMIT - val) / 10UL < num)\r
- return -1; /* overflow */\r
-\r
- num = num * 10 + val;\r
- }\r
- else {\r
- PUNFETCH;\r
- break;\r
- }\r
- }\r
- *src = p;\r
- return num;\r
-}\r
-\r
-static int\r
-scan_unsigned_hexadecimal_number(UChar** src, UChar* end, int minlen,\r
- int maxlen, OnigEncoding enc)\r
-{\r
- OnigCodePoint c;\r
- unsigned int num, val;\r
- int n;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- num = 0;\r
- n = 0;\r
- while (! PEND && n < maxlen) {\r
- PFETCH(c);\r
- if (IS_CODE_XDIGIT_ASCII(enc, c)) {\r
- n++;\r
- val = (unsigned int )XDIGITVAL(enc,c);\r
- if ((INT_MAX_LIMIT - val) / 16UL < num)\r
- return ONIGERR_TOO_BIG_NUMBER; /* overflow */\r
-\r
- num = (num << 4) + XDIGITVAL(enc,c);\r
- }\r
- else {\r
- PUNFETCH;\r
- break;\r
- }\r
- }\r
-\r
- if (n < minlen)\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-\r
- *src = p;\r
- return num;\r
-}\r
-\r
-static int\r
-scan_unsigned_octal_number(UChar** src, UChar* end, int maxlen,\r
- OnigEncoding enc)\r
-{\r
- OnigCodePoint c;\r
- unsigned int num, val;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- num = 0;\r
- while (! PEND && maxlen-- != 0) {\r
- PFETCH(c);\r
- if (IS_CODE_DIGIT_ASCII(enc, c) && c < '8') {\r
- val = ODIGITVAL(c);\r
- if ((INT_MAX_LIMIT - val) / 8UL < num)\r
- return -1; /* overflow */\r
-\r
- num = (num << 3) + val;\r
- }\r
- else {\r
- PUNFETCH;\r
- break;\r
- }\r
- }\r
- *src = p;\r
- return num;\r
-}\r
-\r
-\r
-#define BB_WRITE_CODE_POINT(bbuf,pos,code) \\r
- BB_WRITE(bbuf, pos, &(code), SIZE_CODE_POINT)\r
-\r
-/* data format:\r
- [n][from-1][to-1][from-2][to-2] ... [from-n][to-n]\r
- (all data size is OnigCodePoint)\r
- */\r
-static int\r
-new_code_range(BBuf** pbuf)\r
-{\r
-#define INIT_MULTI_BYTE_RANGE_SIZE (SIZE_CODE_POINT * 5)\r
- int r;\r
- OnigCodePoint n;\r
- BBuf* bbuf;\r
-\r
- bbuf = *pbuf = (BBuf* )xmalloc(sizeof(BBuf));\r
- CHECK_NULL_RETURN_MEMERR(bbuf);\r
- r = BB_INIT(bbuf, INIT_MULTI_BYTE_RANGE_SIZE);\r
- if (r != 0) {\r
- xfree(bbuf);\r
- *pbuf = 0;\r
- return r;\r
- }\r
-\r
- n = 0;\r
- BB_WRITE_CODE_POINT(bbuf, 0, n);\r
- return 0;\r
-}\r
-\r
-static int\r
-add_code_range_to_buf(BBuf** pbuf, OnigCodePoint from, OnigCodePoint to)\r
-{\r
- int r, inc_n, pos;\r
- int low, high, bound, x;\r
- OnigCodePoint n, *data;\r
- BBuf* bbuf;\r
-\r
- if (from > to) {\r
- n = from; from = to; to = n;\r
- }\r
-\r
- if (IS_NULL(*pbuf)) {\r
- r = new_code_range(pbuf);\r
- if (r != 0) return r;\r
- bbuf = *pbuf;\r
- n = 0;\r
- }\r
- else {\r
- bbuf = *pbuf;\r
- GET_CODE_POINT(n, bbuf->p);\r
- }\r
- data = (OnigCodePoint* )(bbuf->p);\r
- data++;\r
-\r
- for (low = 0, bound = n; low < bound; ) {\r
- x = (low + bound) >> 1;\r
- if (from > data[x*2 + 1])\r
- low = x + 1;\r
- else\r
- bound = x;\r
- }\r
-\r
- high = (to == ~((OnigCodePoint )0)) ? n : low;\r
- for (bound = n; high < bound; ) {\r
- x = (high + bound) >> 1;\r
- if (to + 1 >= data[x*2])\r
- high = x + 1;\r
- else\r
- bound = x;\r
- }\r
-\r
- inc_n = low + 1 - high;\r
- if (n + inc_n > ONIG_MAX_MULTI_BYTE_RANGES_NUM)\r
- return ONIGERR_TOO_MANY_MULTI_BYTE_RANGES;\r
-\r
- if (inc_n != 1) {\r
- if (from > data[low*2])\r
- from = data[low*2];\r
- if (to < data[(high - 1)*2 + 1])\r
- to = data[(high - 1)*2 + 1];\r
- }\r
-\r
- if (inc_n != 0 && (OnigCodePoint )high < n) {\r
- int from_pos = SIZE_CODE_POINT * (1 + high * 2);\r
- int to_pos = SIZE_CODE_POINT * (1 + (low + 1) * 2);\r
- int size = (n - high) * 2 * SIZE_CODE_POINT;\r
-\r
- if (inc_n > 0) {\r
- BB_MOVE_RIGHT(bbuf, from_pos, to_pos, size);\r
- }\r
- else {\r
- BB_MOVE_LEFT_REDUCE(bbuf, from_pos, to_pos);\r
- }\r
- }\r
-\r
- pos = SIZE_CODE_POINT * (1 + low * 2);\r
- BB_ENSURE_SIZE(bbuf, pos + SIZE_CODE_POINT * 2);\r
- BB_WRITE_CODE_POINT(bbuf, pos, from);\r
- BB_WRITE_CODE_POINT(bbuf, pos + SIZE_CODE_POINT, to);\r
- n += inc_n;\r
- BB_WRITE_CODE_POINT(bbuf, 0, n);\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-add_code_range(BBuf** pbuf, ScanEnv* env, OnigCodePoint from, OnigCodePoint to)\r
-{\r
- if (from > to) {\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))\r
- return 0;\r
- else\r
- return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;\r
- }\r
-\r
- return add_code_range_to_buf(pbuf, from, to);\r
-}\r
-\r
-static int\r
-not_code_range_buf(OnigEncoding enc, BBuf* bbuf, BBuf** pbuf)\r
-{\r
- int r, i, n;\r
- OnigCodePoint pre, from, *data, to = 0;\r
-\r
- *pbuf = (BBuf* )NULL;\r
- if (IS_NULL(bbuf)) {\r
- set_all:\r
- return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf);\r
- }\r
-\r
- data = (OnigCodePoint* )(bbuf->p);\r
- GET_CODE_POINT(n, data);\r
- data++;\r
- if (n <= 0) goto set_all;\r
-\r
- r = 0;\r
- pre = MBCODE_START_POS(enc);\r
- for (i = 0; i < n; i++) {\r
- from = data[i*2];\r
- to = data[i*2+1];\r
- if (pre <= from - 1) {\r
- r = add_code_range_to_buf(pbuf, pre, from - 1);\r
- if (r != 0) return r;\r
- }\r
- if (to == ~((OnigCodePoint )0)) break;\r
- pre = to + 1;\r
- }\r
- if (to < ~((OnigCodePoint )0)) {\r
- r = add_code_range_to_buf(pbuf, to + 1, ~((OnigCodePoint )0));\r
- }\r
- return r;\r
-}\r
-\r
-#define SWAP_BB_NOT(bbuf1, not1, bbuf2, not2) do {\\r
- BBuf *tbuf; \\r
- int tnot; \\r
- tnot = not1; not1 = not2; not2 = tnot; \\r
- tbuf = bbuf1; bbuf1 = bbuf2; bbuf2 = tbuf; \\r
-} while (0)\r
-\r
-static int\r
-or_code_range_buf(OnigEncoding enc, BBuf* bbuf1, int not1,\r
- BBuf* bbuf2, int not2, BBuf** pbuf)\r
-{\r
- int r;\r
- OnigCodePoint i, n1, *data1;\r
- OnigCodePoint from, to;\r
-\r
- *pbuf = (BBuf* )NULL;\r
- if (IS_NULL(bbuf1) && IS_NULL(bbuf2)) {\r
- if (not1 != 0 || not2 != 0)\r
- return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf);\r
- return 0;\r
- }\r
-\r
- r = 0;\r
- if (IS_NULL(bbuf2))\r
- SWAP_BB_NOT(bbuf1, not1, bbuf2, not2);\r
-\r
- if (IS_NULL(bbuf1)) {\r
- if (not1 != 0) {\r
- return SET_ALL_MULTI_BYTE_RANGE(enc, pbuf);\r
- }\r
- else {\r
- if (not2 == 0) {\r
- return bbuf_clone(pbuf, bbuf2);\r
- }\r
- else {\r
- return not_code_range_buf(enc, bbuf2, pbuf);\r
- }\r
- }\r
- }\r
-\r
- if (not1 != 0)\r
- SWAP_BB_NOT(bbuf1, not1, bbuf2, not2);\r
-\r
- data1 = (OnigCodePoint* )(bbuf1->p);\r
- GET_CODE_POINT(n1, data1);\r
- data1++;\r
-\r
- if (not2 == 0 && not1 == 0) { /* 1 OR 2 */\r
- r = bbuf_clone(pbuf, bbuf2);\r
- }\r
- else if (not1 == 0) { /* 1 OR (not 2) */\r
- r = not_code_range_buf(enc, bbuf2, pbuf);\r
- }\r
- if (r != 0) return r;\r
-\r
- for (i = 0; i < n1; i++) {\r
- from = data1[i*2];\r
- to = data1[i*2+1];\r
- r = add_code_range_to_buf(pbuf, from, to);\r
- if (r != 0) return r;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-and_code_range1(BBuf** pbuf, OnigCodePoint from1, OnigCodePoint to1,\r
- OnigCodePoint* data, int n)\r
-{\r
- int i, r;\r
- OnigCodePoint from2, to2;\r
-\r
- for (i = 0; i < n; i++) {\r
- from2 = data[i*2];\r
- to2 = data[i*2+1];\r
- if (from2 < from1) {\r
- if (to2 < from1) continue;\r
- else {\r
- from1 = to2 + 1;\r
- }\r
- }\r
- else if (from2 <= to1) {\r
- if (to2 < to1) {\r
- if (from1 <= from2 - 1) {\r
- r = add_code_range_to_buf(pbuf, from1, from2-1);\r
- if (r != 0) return r;\r
- }\r
- from1 = to2 + 1;\r
- }\r
- else {\r
- to1 = from2 - 1;\r
- }\r
- }\r
- else {\r
- from1 = from2;\r
- }\r
- if (from1 > to1) break;\r
- }\r
- if (from1 <= to1) {\r
- r = add_code_range_to_buf(pbuf, from1, to1);\r
- if (r != 0) return r;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-and_code_range_buf(BBuf* bbuf1, int not1, BBuf* bbuf2, int not2, BBuf** pbuf)\r
-{\r
- int r;\r
- OnigCodePoint i, j, n1, n2, *data1, *data2;\r
- OnigCodePoint from, to, from1, to1, from2, to2;\r
-\r
- *pbuf = (BBuf* )NULL;\r
- if (IS_NULL(bbuf1)) {\r
- if (not1 != 0 && IS_NOT_NULL(bbuf2)) /* not1 != 0 -> not2 == 0 */\r
- return bbuf_clone(pbuf, bbuf2);\r
- return 0;\r
- }\r
- else if (IS_NULL(bbuf2)) {\r
- if (not2 != 0)\r
- return bbuf_clone(pbuf, bbuf1);\r
- return 0;\r
- }\r
-\r
- if (not1 != 0)\r
- SWAP_BB_NOT(bbuf1, not1, bbuf2, not2);\r
-\r
- data1 = (OnigCodePoint* )(bbuf1->p);\r
- data2 = (OnigCodePoint* )(bbuf2->p);\r
- GET_CODE_POINT(n1, data1);\r
- GET_CODE_POINT(n2, data2);\r
- data1++;\r
- data2++;\r
-\r
- if (not2 == 0 && not1 == 0) { /* 1 AND 2 */\r
- for (i = 0; i < n1; i++) {\r
- from1 = data1[i*2];\r
- to1 = data1[i*2+1];\r
- for (j = 0; j < n2; j++) {\r
- from2 = data2[j*2];\r
- to2 = data2[j*2+1];\r
- if (from2 > to1) break;\r
- if (to2 < from1) continue;\r
- from = MAX(from1, from2);\r
- to = MIN(to1, to2);\r
- r = add_code_range_to_buf(pbuf, from, to);\r
- if (r != 0) return r;\r
- }\r
- }\r
- }\r
- else if (not1 == 0) { /* 1 AND (not 2) */\r
- for (i = 0; i < n1; i++) {\r
- from1 = data1[i*2];\r
- to1 = data1[i*2+1];\r
- r = and_code_range1(pbuf, from1, to1, data2, n2);\r
- if (r != 0) return r;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-and_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc)\r
-{\r
- int r, not1, not2;\r
- BBuf *buf1, *buf2, *pbuf;\r
- BitSetRef bsr1, bsr2;\r
- BitSet bs1, bs2;\r
-\r
- not1 = IS_NCCLASS_NOT(dest);\r
- bsr1 = dest->bs;\r
- buf1 = dest->mbuf;\r
- not2 = IS_NCCLASS_NOT(cc);\r
- bsr2 = cc->bs;\r
- buf2 = cc->mbuf;\r
-\r
- if (not1 != 0) {\r
- bitset_invert_to(bsr1, bs1);\r
- bsr1 = bs1;\r
- }\r
- if (not2 != 0) {\r
- bitset_invert_to(bsr2, bs2);\r
- bsr2 = bs2;\r
- }\r
- bitset_and(bsr1, bsr2);\r
- if (bsr1 != dest->bs) {\r
- bitset_copy(dest->bs, bsr1);\r
- }\r
- if (not1 != 0) {\r
- bitset_invert(dest->bs);\r
- }\r
-\r
- if (! ONIGENC_IS_SINGLEBYTE(enc)) {\r
- if (not1 != 0 && not2 != 0) {\r
- r = or_code_range_buf(enc, buf1, 0, buf2, 0, &pbuf);\r
- }\r
- else {\r
- r = and_code_range_buf(buf1, not1, buf2, not2, &pbuf);\r
- if (r == 0 && not1 != 0) {\r
- BBuf *tbuf;\r
- r = not_code_range_buf(enc, pbuf, &tbuf);\r
- if (r != 0) {\r
- bbuf_free(pbuf);\r
- return r;\r
- }\r
- bbuf_free(pbuf);\r
- pbuf = tbuf;\r
- }\r
- }\r
- if (r != 0) return r;\r
-\r
- dest->mbuf = pbuf;\r
- bbuf_free(buf1);\r
- return r;\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-or_cclass(CClassNode* dest, CClassNode* cc, OnigEncoding enc)\r
-{\r
- int r, not1, not2;\r
- BBuf *buf1, *buf2, *pbuf;\r
- BitSetRef bsr1, bsr2;\r
- BitSet bs1, bs2;\r
-\r
- not1 = IS_NCCLASS_NOT(dest);\r
- bsr1 = dest->bs;\r
- buf1 = dest->mbuf;\r
- not2 = IS_NCCLASS_NOT(cc);\r
- bsr2 = cc->bs;\r
- buf2 = cc->mbuf;\r
-\r
- if (not1 != 0) {\r
- bitset_invert_to(bsr1, bs1);\r
- bsr1 = bs1;\r
- }\r
- if (not2 != 0) {\r
- bitset_invert_to(bsr2, bs2);\r
- bsr2 = bs2;\r
- }\r
- bitset_or(bsr1, bsr2);\r
- if (bsr1 != dest->bs) {\r
- bitset_copy(dest->bs, bsr1);\r
- }\r
- if (not1 != 0) {\r
- bitset_invert(dest->bs);\r
- }\r
-\r
- if (! ONIGENC_IS_SINGLEBYTE(enc)) {\r
- if (not1 != 0 && not2 != 0) {\r
- r = and_code_range_buf(buf1, 0, buf2, 0, &pbuf);\r
- }\r
- else {\r
- r = or_code_range_buf(enc, buf1, not1, buf2, not2, &pbuf);\r
- if (r == 0 && not1 != 0) {\r
- BBuf *tbuf;\r
- r = not_code_range_buf(enc, pbuf, &tbuf);\r
- if (r != 0) {\r
- bbuf_free(pbuf);\r
- return r;\r
- }\r
- bbuf_free(pbuf);\r
- pbuf = tbuf;\r
- }\r
- }\r
- if (r != 0) return r;\r
-\r
- dest->mbuf = pbuf;\r
- bbuf_free(buf1);\r
- return r;\r
- }\r
- else\r
- return 0;\r
-}\r
-\r
-static OnigCodePoint\r
-conv_backslash_value(OnigCodePoint c, ScanEnv* env)\r
-{\r
- if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_CONTROL_CHARS)) {\r
- switch (c) {\r
- case 'n': return '\n';\r
- case 't': return '\t';\r
- case 'r': return '\r';\r
- case 'f': return '\f';\r
- case 'a': return '\007';\r
- case 'b': return '\010';\r
- case 'e': return '\033';\r
- case 'v':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_V_VTAB))\r
- return '\v';\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- }\r
- return c;\r
-}\r
-\r
-static int\r
-is_invalid_quantifier_target(Node* node)\r
-{\r
- switch (NODE_TYPE(node)) {\r
- case NODE_ANCHOR:\r
- case NODE_GIMMICK:\r
- return 1;\r
- break;\r
-\r
- case NODE_BAG:\r
- /* allow enclosed elements */\r
- /* return is_invalid_quantifier_target(NODE_BODY(node)); */\r
- break;\r
-\r
- case NODE_LIST:\r
- do {\r
- if (! is_invalid_quantifier_target(NODE_CAR(node))) return 0;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- return 0;\r
- break;\r
-\r
- case NODE_ALT:\r
- do {\r
- if (is_invalid_quantifier_target(NODE_CAR(node))) return 1;\r
- } while (IS_NOT_NULL(node = NODE_CDR(node)));\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
- return 0;\r
-}\r
-\r
-/* ?:0, *:1, +:2, ??:3, *?:4, +?:5 */\r
-static int\r
-quantifier_type_num(QuantNode* q)\r
-{\r
- if (q->greedy) {\r
- if (q->lower == 0) {\r
- if (q->upper == 1) return 0;\r
- else if (IS_INFINITE_REPEAT(q->upper)) return 1;\r
- }\r
- else if (q->lower == 1) {\r
- if (IS_INFINITE_REPEAT(q->upper)) return 2;\r
- }\r
- }\r
- else {\r
- if (q->lower == 0) {\r
- if (q->upper == 1) return 3;\r
- else if (IS_INFINITE_REPEAT(q->upper)) return 4;\r
- }\r
- else if (q->lower == 1) {\r
- if (IS_INFINITE_REPEAT(q->upper)) return 5;\r
- }\r
- }\r
- return -1;\r
-}\r
-\r
-\r
-enum ReduceType {\r
- RQ_ASIS = 0, /* as is */\r
- RQ_DEL = 1, /* delete parent */\r
- RQ_A, /* to '*' */\r
- RQ_AQ, /* to '*?' */\r
- RQ_QQ, /* to '??' */\r
- RQ_P_QQ, /* to '+)??' */\r
- RQ_PQ_Q /* to '+?)?' */\r
-};\r
-\r
-static enum ReduceType ReduceTypeTable[6][6] = {\r
- {RQ_DEL, RQ_A, RQ_A, RQ_QQ, RQ_AQ, RQ_ASIS}, /* '?' */\r
- {RQ_DEL, RQ_DEL, RQ_DEL, RQ_P_QQ, RQ_P_QQ, RQ_DEL}, /* '*' */\r
- {RQ_A, RQ_A, RQ_DEL, RQ_ASIS, RQ_P_QQ, RQ_DEL}, /* '+' */\r
- {RQ_DEL, RQ_AQ, RQ_AQ, RQ_DEL, RQ_AQ, RQ_AQ}, /* '??' */\r
- {RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL, RQ_DEL}, /* '*?' */\r
- {RQ_ASIS, RQ_PQ_Q, RQ_DEL, RQ_AQ, RQ_AQ, RQ_DEL} /* '+?' */\r
-};\r
-\r
-extern void\r
-onig_reduce_nested_quantifier(Node* pnode, Node* cnode)\r
-{\r
- int pnum, cnum;\r
- QuantNode *p, *c;\r
-\r
- p = QUANT_(pnode);\r
- c = QUANT_(cnode);\r
- pnum = quantifier_type_num(p);\r
- cnum = quantifier_type_num(c);\r
- if (pnum < 0 || cnum < 0) {\r
- if ((p->lower == p->upper) && ! IS_INFINITE_REPEAT(p->upper)) {\r
- if ((c->lower == c->upper) && ! IS_INFINITE_REPEAT(c->upper)) {\r
- int n = onig_positive_int_multiply(p->lower, c->lower);\r
- if (n >= 0) {\r
- p->lower = p->upper = n;\r
- NODE_BODY(pnode) = NODE_BODY(cnode);\r
- goto remove_cnode;\r
- }\r
- }\r
- }\r
-\r
- return ;\r
- }\r
-\r
- switch(ReduceTypeTable[cnum][pnum]) {\r
- case RQ_DEL:\r
- *pnode = *cnode;\r
- break;\r
- case RQ_A:\r
- NODE_BODY(pnode) = NODE_BODY(cnode);\r
- p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 1;\r
- break;\r
- case RQ_AQ:\r
- NODE_BODY(pnode) = NODE_BODY(cnode);\r
- p->lower = 0; p->upper = INFINITE_REPEAT; p->greedy = 0;\r
- break;\r
- case RQ_QQ:\r
- NODE_BODY(pnode) = NODE_BODY(cnode);\r
- p->lower = 0; p->upper = 1; p->greedy = 0;\r
- break;\r
- case RQ_P_QQ:\r
- NODE_BODY(pnode) = cnode;\r
- p->lower = 0; p->upper = 1; p->greedy = 0;\r
- c->lower = 1; c->upper = INFINITE_REPEAT; c->greedy = 1;\r
- return ;\r
- break;\r
- case RQ_PQ_Q:\r
- NODE_BODY(pnode) = cnode;\r
- p->lower = 0; p->upper = 1; p->greedy = 1;\r
- c->lower = 1; c->upper = INFINITE_REPEAT; c->greedy = 0;\r
- return ;\r
- break;\r
- case RQ_ASIS:\r
- NODE_BODY(pnode) = cnode;\r
- return ;\r
- break;\r
- }\r
-\r
- remove_cnode:\r
- NODE_BODY(cnode) = NULL_NODE;\r
- onig_node_free(cnode);\r
-}\r
-\r
-static int\r
-node_new_general_newline(Node** node, ScanEnv* env)\r
-{\r
- int r;\r
- int dlen, alen;\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN * 2];\r
- Node* crnl;\r
- Node* ncc;\r
- Node* x;\r
- CClassNode* cc;\r
-\r
- dlen = ONIGENC_CODE_TO_MBC(env->enc, 0x0d, buf);\r
- if (dlen < 0) return dlen;\r
- alen = ONIGENC_CODE_TO_MBC(env->enc, 0x0a, buf + dlen);\r
- if (alen < 0) return alen;\r
-\r
- crnl = node_new_str_raw(buf, buf + dlen + alen);\r
- CHECK_NULL_RETURN_MEMERR(crnl);\r
-\r
- ncc = node_new_cclass();\r
- if (IS_NULL(ncc)) goto err2;\r
-\r
- cc = CCLASS_(ncc);\r
- if (dlen == 1) {\r
- bitset_set_range(cc->bs, 0x0a, 0x0d);\r
- }\r
- else {\r
- r = add_code_range(&(cc->mbuf), env, 0x0a, 0x0d);\r
- if (r != 0) {\r
- err1:\r
- onig_node_free(ncc);\r
- err2:\r
- onig_node_free(crnl);\r
- return ONIGERR_MEMORY;\r
- }\r
- }\r
-\r
- if (ONIGENC_IS_UNICODE_ENCODING(env->enc)) {\r
- r = add_code_range(&(cc->mbuf), env, 0x85, 0x85);\r
- if (r != 0) goto err1;\r
- r = add_code_range(&(cc->mbuf), env, 0x2028, 0x2029);\r
- if (r != 0) goto err1;\r
- }\r
-\r
- x = node_new_bag_if_else(crnl, 0, ncc);\r
- if (IS_NULL(x)) goto err1;\r
-\r
- *node = x;\r
- return 0;\r
-}\r
-\r
-enum TokenSyms {\r
- TK_EOT = 0, /* end of token */\r
- TK_RAW_BYTE = 1,\r
- TK_CHAR,\r
- TK_STRING,\r
- TK_CODE_POINT,\r
- TK_ANYCHAR,\r
- TK_CHAR_TYPE,\r
- TK_BACKREF,\r
- TK_CALL,\r
- TK_ANCHOR,\r
- TK_REPEAT,\r
- TK_INTERVAL,\r
- TK_ANYCHAR_ANYTIME, /* SQL '%' == .* */\r
- TK_ALT,\r
- TK_SUBEXP_OPEN,\r
- TK_SUBEXP_CLOSE,\r
- TK_CC_OPEN,\r
- TK_QUOTE_OPEN,\r
- TK_CHAR_PROPERTY, /* \p{...}, \P{...} */\r
- TK_KEEP, /* \K */\r
- TK_GENERAL_NEWLINE, /* \R */\r
- TK_NO_NEWLINE, /* \N */\r
- TK_TRUE_ANYCHAR, /* \O */\r
- TK_TEXT_SEGMENT, /* \X */\r
-\r
- /* in cc */\r
- TK_CC_CLOSE,\r
- TK_CC_RANGE,\r
- TK_POSIX_BRACKET_OPEN,\r
- TK_CC_AND, /* && */\r
- TK_CC_CC_OPEN /* [ */\r
-};\r
-\r
-typedef struct {\r
- enum TokenSyms type;\r
- int escaped;\r
- int base; /* is number: 8, 16 (used in [....]) */\r
- UChar* backp;\r
- union {\r
- UChar* s;\r
- int c;\r
- OnigCodePoint code;\r
- int anchor;\r
- int subtype;\r
- struct {\r
- int lower;\r
- int upper;\r
- int greedy;\r
- int possessive;\r
- } repeat;\r
- struct {\r
- int num;\r
- int ref1;\r
- int* refs;\r
- int by_name;\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- int exist_level;\r
- int level; /* \k<name+n> */\r
-#endif\r
- } backref;\r
- struct {\r
- UChar* name;\r
- UChar* name_end;\r
- int gnum;\r
- int by_number;\r
- } call;\r
- struct {\r
- int ctype;\r
- int not;\r
- } prop;\r
- } u;\r
-} PToken;\r
-\r
-\r
-static int\r
-fetch_interval_quantifier(UChar** src, UChar* end, PToken* tok, ScanEnv* env)\r
-{\r
- int low, up, syn_allow, non_low = 0;\r
- int r = 0;\r
- OnigCodePoint c;\r
- OnigEncoding enc = env->enc;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- syn_allow = IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INVALID_INTERVAL);\r
-\r
- if (PEND) {\r
- if (syn_allow)\r
- return 1; /* "....{" : OK! */\r
- else\r
- return ONIGERR_END_PATTERN_AT_LEFT_BRACE; /* "....{" syntax error */\r
- }\r
-\r
- if (! syn_allow) {\r
- c = PPEEK;\r
- if (c == ')' || c == '(' || c == '|') {\r
- return ONIGERR_END_PATTERN_AT_LEFT_BRACE;\r
- }\r
- }\r
-\r
- low = onig_scan_unsigned_number(&p, end, env->enc);\r
- if (low < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
- if (low > ONIG_MAX_REPEAT_NUM)\r
- return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
-\r
- if (p == *src) { /* can't read low */\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_INTERVAL_LOW_ABBREV)) {\r
- /* allow {,n} as {0,n} */\r
- low = 0;\r
- non_low = 1;\r
- }\r
- else\r
- goto invalid;\r
- }\r
-\r
- if (PEND) goto invalid;\r
- PFETCH(c);\r
- if (c == ',') {\r
- UChar* prev = p;\r
- up = onig_scan_unsigned_number(&p, end, env->enc);\r
- if (up < 0) return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
- if (up > ONIG_MAX_REPEAT_NUM)\r
- return ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE;\r
-\r
- if (p == prev) {\r
- if (non_low != 0)\r
- goto invalid;\r
- up = INFINITE_REPEAT; /* {n,} : {n,infinite} */\r
- }\r
- }\r
- else {\r
- if (non_low != 0)\r
- goto invalid;\r
-\r
- PUNFETCH;\r
- up = low; /* {n} : exact n times */\r
- r = 2; /* fixed */\r
- }\r
-\r
- if (PEND) goto invalid;\r
- PFETCH(c);\r
- if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) {\r
- if (c != MC_ESC(env->syntax)) goto invalid;\r
- PFETCH(c);\r
- }\r
- if (c != '}') goto invalid;\r
-\r
- if (!IS_INFINITE_REPEAT(up) && low > up) {\r
- /* {n,m}+ supported case */\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL))\r
- return ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE;\r
-\r
- tok->u.repeat.possessive = 1;\r
- {\r
- int tmp;\r
- tmp = low; low = up; up = tmp;\r
- }\r
- }\r
- else\r
- tok->u.repeat.possessive = 0;\r
-\r
- tok->type = TK_INTERVAL;\r
- tok->u.repeat.lower = low;\r
- tok->u.repeat.upper = up;\r
- *src = p;\r
- return r; /* 0: normal {n,m}, 2: fixed {n} */\r
-\r
- invalid:\r
- if (syn_allow) {\r
- /* *src = p; */ /* !!! Don't do this line !!! */\r
- return 1; /* OK */\r
- }\r
- else\r
- return ONIGERR_INVALID_REPEAT_RANGE_PATTERN;\r
-}\r
-\r
-/* \M-, \C-, \c, or \... */\r
-static int\r
-fetch_escaped_value(UChar** src, UChar* end, ScanEnv* env, OnigCodePoint* val)\r
-{\r
- int v;\r
- OnigCodePoint c;\r
- OnigEncoding enc = env->enc;\r
- UChar* p = *src;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE;\r
-\r
- PFETCH_S(c);\r
- switch (c) {\r
- case 'M':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_M_BAR_META)) {\r
- if (PEND) return ONIGERR_END_PATTERN_AT_META;\r
- PFETCH_S(c);\r
- if (c != '-') return ONIGERR_META_CODE_SYNTAX;\r
- if (PEND) return ONIGERR_END_PATTERN_AT_META;\r
- PFETCH_S(c);\r
- if (c == MC_ESC(env->syntax)) {\r
- v = fetch_escaped_value(&p, end, env, &c);\r
- if (v < 0) return v;\r
- }\r
- c = ((c & 0xff) | 0x80);\r
- }\r
- else\r
- goto backslash;\r
- break;\r
-\r
- case 'C':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ESC_CAPITAL_C_BAR_CONTROL)) {\r
- if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL;\r
- PFETCH_S(c);\r
- if (c != '-') return ONIGERR_CONTROL_CODE_SYNTAX;\r
- goto control;\r
- }\r
- else\r
- goto backslash;\r
-\r
- case 'c':\r
- if (IS_SYNTAX_OP(env->syntax, ONIG_SYN_OP_ESC_C_CONTROL)) {\r
- control:\r
- if (PEND) return ONIGERR_END_PATTERN_AT_CONTROL;\r
- PFETCH_S(c);\r
- if (c == '?') {\r
- c = 0177;\r
- }\r
- else {\r
- if (c == MC_ESC(env->syntax)) {\r
- v = fetch_escaped_value(&p, end, env, &c);\r
- if (v < 0) return v;\r
- }\r
- c &= 0x9f;\r
- }\r
- break;\r
- }\r
- /* fall through */\r
-\r
- default:\r
- {\r
- backslash:\r
- c = conv_backslash_value(c, env);\r
- }\r
- break;\r
- }\r
-\r
- *src = p;\r
- *val = c;\r
- return 0;\r
-}\r
-\r
-static int fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env);\r
-\r
-static OnigCodePoint\r
-get_name_end_code_point(OnigCodePoint start)\r
-{\r
- switch (start) {\r
- case '<': return (OnigCodePoint )'>'; break;\r
- case '\'': return (OnigCodePoint )'\''; break;\r
- case '(': return (OnigCodePoint )')'; break;\r
- default:\r
- break;\r
- }\r
-\r
- return (OnigCodePoint )0;\r
-}\r
-\r
-enum REF_NUM {\r
- IS_NOT_NUM = 0,\r
- IS_ABS_NUM = 1,\r
- IS_REL_NUM = 2\r
-};\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
-/*\r
- \k<name+n>, \k<name-n>\r
- \k<num+n>, \k<num-n>\r
- \k<-num+n>, \k<-num-n>\r
- \k<+num+n>, \k<+num-n>\r
-*/\r
-static int\r
-fetch_name_with_level(OnigCodePoint start_code, UChar** src, UChar* end,\r
- UChar** rname_end, ScanEnv* env,\r
- int* rback_num, int* rlevel, enum REF_NUM* num_type)\r
-{\r
- int r, sign, exist_level;\r
- int digit_count;\r
- OnigCodePoint end_code;\r
- OnigCodePoint c = 0;\r
- OnigEncoding enc = env->enc;\r
- UChar *name_end;\r
- UChar *pnum_head;\r
- UChar *p = *src;\r
- PFETCH_READY;\r
-\r
- *rback_num = 0;\r
- exist_level = 0;\r
- *num_type = IS_NOT_NUM;\r
- sign = 1;\r
- pnum_head = *src;\r
-\r
- end_code = get_name_end_code_point(start_code);\r
-\r
- digit_count = 0;\r
- name_end = end;\r
- r = 0;\r
- if (PEND) {\r
- return ONIGERR_EMPTY_GROUP_NAME;\r
- }\r
- else {\r
- PFETCH(c);\r
- if (c == end_code)\r
- return ONIGERR_EMPTY_GROUP_NAME;\r
-\r
- if (IS_CODE_DIGIT_ASCII(enc, c)) {\r
- *num_type = IS_ABS_NUM;\r
- digit_count++;\r
- }\r
- else if (c == '-') {\r
- *num_type = IS_REL_NUM;\r
- sign = -1;\r
- pnum_head = p;\r
- }\r
- else if (c == '+') {\r
- *num_type = IS_REL_NUM;\r
- sign = 1;\r
- pnum_head = p;\r
- }\r
- else if (!ONIGENC_IS_CODE_WORD(enc, c)) {\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- }\r
- }\r
-\r
- while (!PEND) {\r
- name_end = p;\r
- PFETCH(c);\r
- if (c == end_code || c == ')' || c == '+' || c == '-') {\r
- if (*num_type != IS_NOT_NUM && digit_count == 0)\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- break;\r
- }\r
-\r
- if (*num_type != IS_NOT_NUM) {\r
- if (IS_CODE_DIGIT_ASCII(enc, c)) {\r
- digit_count++;\r
- }\r
- else {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- *num_type = IS_NOT_NUM;\r
- }\r
- }\r
- else if (!ONIGENC_IS_CODE_WORD(enc, c)) {\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- }\r
- }\r
-\r
- if (r == 0 && c != end_code) {\r
- if (c == '+' || c == '-') {\r
- int level;\r
- int flag = (c == '-' ? -1 : 1);\r
-\r
- if (PEND) {\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- goto end;\r
- }\r
- PFETCH(c);\r
- if (! IS_CODE_DIGIT_ASCII(enc, c)) goto err;\r
- PUNFETCH;\r
- level = onig_scan_unsigned_number(&p, end, enc);\r
- if (level < 0) return ONIGERR_TOO_BIG_NUMBER;\r
- *rlevel = (level * flag);\r
- exist_level = 1;\r
-\r
- if (!PEND) {\r
- PFETCH(c);\r
- if (c == end_code)\r
- goto end;\r
- }\r
- }\r
-\r
- err:\r
- name_end = end;\r
- err2:\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- }\r
-\r
- end:\r
- if (r == 0) {\r
- if (*num_type != IS_NOT_NUM) {\r
- *rback_num = onig_scan_unsigned_number(&pnum_head, name_end, enc);\r
- if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER;\r
- else if (*rback_num == 0) {\r
- if (*num_type == IS_REL_NUM)\r
- goto err2;\r
- }\r
-\r
- *rback_num *= sign;\r
- }\r
-\r
- *rname_end = name_end;\r
- *src = p;\r
- return (exist_level ? 1 : 0);\r
- }\r
- else {\r
- onig_scan_env_set_error_string(env, r, *src, name_end);\r
- return r;\r
- }\r
-}\r
-#endif /* USE_BACKREF_WITH_LEVEL */\r
-\r
-/*\r
- ref: 0 -> define name (don't allow number name)\r
- 1 -> reference name (allow number name)\r
-*/\r
-static int\r
-fetch_name(OnigCodePoint start_code, UChar** src, UChar* end,\r
- UChar** rname_end, ScanEnv* env, int* rback_num,\r
- enum REF_NUM* num_type, int ref)\r
-{\r
- int r, sign;\r
- int digit_count;\r
- OnigCodePoint end_code;\r
- OnigCodePoint c = 0;\r
- OnigEncoding enc = env->enc;\r
- UChar *name_end;\r
- UChar *pnum_head;\r
- UChar *p = *src;\r
-\r
- *rback_num = 0;\r
-\r
- end_code = get_name_end_code_point(start_code);\r
-\r
- digit_count = 0;\r
- name_end = end;\r
- pnum_head = *src;\r
- r = 0;\r
- *num_type = IS_NOT_NUM;\r
- sign = 1;\r
- if (PEND) {\r
- return ONIGERR_EMPTY_GROUP_NAME;\r
- }\r
- else {\r
- PFETCH_S(c);\r
- if (c == end_code)\r
- return ONIGERR_EMPTY_GROUP_NAME;\r
-\r
- if (IS_CODE_DIGIT_ASCII(enc, c)) {\r
- if (ref == 1)\r
- *num_type = IS_ABS_NUM;\r
- else {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- }\r
- digit_count++;\r
- }\r
- else if (c == '-') {\r
- if (ref == 1) {\r
- *num_type = IS_REL_NUM;\r
- sign = -1;\r
- pnum_head = p;\r
- }\r
- else {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- }\r
- }\r
- else if (c == '+') {\r
- if (ref == 1) {\r
- *num_type = IS_REL_NUM;\r
- sign = 1;\r
- pnum_head = p;\r
- }\r
- else {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- }\r
- }\r
- else if (!ONIGENC_IS_CODE_WORD(enc, c)) {\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- }\r
- }\r
-\r
- if (r == 0) {\r
- while (!PEND) {\r
- name_end = p;\r
- PFETCH_S(c);\r
- if (c == end_code || c == ')') {\r
- if (*num_type != IS_NOT_NUM && digit_count == 0)\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- break;\r
- }\r
-\r
- if (*num_type != IS_NOT_NUM) {\r
- if (IS_CODE_DIGIT_ASCII(enc, c)) {\r
- digit_count++;\r
- }\r
- else {\r
- if (!ONIGENC_IS_CODE_WORD(enc, c))\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- else\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
-\r
- *num_type = IS_NOT_NUM;\r
- }\r
- }\r
- else {\r
- if (!ONIGENC_IS_CODE_WORD(enc, c)) {\r
- r = ONIGERR_INVALID_CHAR_IN_GROUP_NAME;\r
- }\r
- }\r
- }\r
-\r
- if (c != end_code) {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- goto err;\r
- }\r
-\r
- if (*num_type != IS_NOT_NUM) {\r
- *rback_num = onig_scan_unsigned_number(&pnum_head, name_end, enc);\r
- if (*rback_num < 0) return ONIGERR_TOO_BIG_NUMBER;\r
- else if (*rback_num == 0) {\r
- if (*num_type == IS_REL_NUM) {\r
- r = ONIGERR_INVALID_GROUP_NAME;\r
- goto err;\r
- }\r
- }\r
-\r
- *rback_num *= sign;\r
- }\r
-\r
- *rname_end = name_end;\r
- *src = p;\r
- return 0;\r
- }\r
- else {\r
- while (!PEND) {\r
- name_end = p;\r
- PFETCH_S(c);\r
- if (c == end_code || c == ')')\r
- break;\r
- }\r
- if (PEND)\r
- name_end = end;\r
-\r
- err:\r
- onig_scan_env_set_error_string(env, r, *src, name_end);\r
- return r;\r
- }\r
-}\r
-\r
-static void\r
-CC_ESC_WARN(ScanEnv* env, UChar *c)\r
-{\r
- if (onig_warn == onig_null_warn) return ;\r
-\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED) &&\r
- IS_SYNTAX_BV(env->syntax, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC)) {\r
- UChar buf[WARN_BUFSIZE];\r
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,\r
- env->pattern, env->pattern_end,\r
- (UChar* )"character class has '%s' without escape",\r
- c);\r
- (*onig_warn)((char* )buf);\r
- }\r
-}\r
-\r
-static void\r
-CLOSE_BRACKET_WITHOUT_ESC_WARN(ScanEnv* env, UChar* c)\r
-{\r
- if (onig_warn == onig_null_warn) return ;\r
-\r
- if (IS_SYNTAX_BV((env)->syntax, ONIG_SYN_WARN_CC_OP_NOT_ESCAPED)) {\r
- UChar buf[WARN_BUFSIZE];\r
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, (env)->enc,\r
- (env)->pattern, (env)->pattern_end,\r
- (UChar* )"regular expression has '%s' without escape", c);\r
- (*onig_warn)((char* )buf);\r
- }\r
-}\r
-\r
-static UChar*\r
-find_str_position(OnigCodePoint s[], int n, UChar* from, UChar* to,\r
- UChar **next, OnigEncoding enc)\r
-{\r
- int i;\r
- OnigCodePoint x;\r
- UChar *q;\r
- UChar *p = from;\r
-\r
- while (p < to) {\r
- x = ONIGENC_MBC_TO_CODE(enc, p, to);\r
- q = p + enclen(enc, p);\r
- if (x == s[0]) {\r
- for (i = 1; i < n && q < to; i++) {\r
- x = ONIGENC_MBC_TO_CODE(enc, q, to);\r
- if (x != s[i]) break;\r
- q += enclen(enc, q);\r
- }\r
- if (i >= n) {\r
- if (IS_NOT_NULL(next))\r
- *next = q;\r
- return p;\r
- }\r
- }\r
- p = q;\r
- }\r
- return NULL_UCHARP;\r
-}\r
-\r
-static int\r
-str_exist_check_with_esc(OnigCodePoint s[], int n, UChar* from, UChar* to,\r
- OnigCodePoint bad, OnigEncoding enc, OnigSyntaxType* syn)\r
-{\r
- int i, in_esc;\r
- OnigCodePoint x;\r
- UChar *q;\r
- UChar *p = from;\r
-\r
- in_esc = 0;\r
- while (p < to) {\r
- if (in_esc) {\r
- in_esc = 0;\r
- p += enclen(enc, p);\r
- }\r
- else {\r
- x = ONIGENC_MBC_TO_CODE(enc, p, to);\r
- q = p + enclen(enc, p);\r
- if (x == s[0]) {\r
- for (i = 1; i < n && q < to; i++) {\r
- x = ONIGENC_MBC_TO_CODE(enc, q, to);\r
- if (x != s[i]) break;\r
- q += enclen(enc, q);\r
- }\r
- if (i >= n) return 1;\r
- p += enclen(enc, p);\r
- }\r
- else {\r
- x = ONIGENC_MBC_TO_CODE(enc, p, to);\r
- if (x == bad) return 0;\r
- else if (x == MC_ESC(syn)) in_esc = 1;\r
- p = q;\r
- }\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-fetch_token_in_cc(PToken* tok, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int num;\r
- OnigCodePoint c, c2;\r
- OnigSyntaxType* syn = env->syntax;\r
- OnigEncoding enc = env->enc;\r
- UChar* prev;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- if (PEND) {\r
- tok->type = TK_EOT;\r
- return tok->type;\r
- }\r
-\r
- PFETCH(c);\r
- tok->type = TK_CHAR;\r
- tok->base = 0;\r
- tok->u.c = c;\r
- tok->escaped = 0;\r
-\r
- if (c == ']') {\r
- tok->type = TK_CC_CLOSE;\r
- }\r
- else if (c == '-') {\r
- tok->type = TK_CC_RANGE;\r
- }\r
- else if (c == MC_ESC(syn)) {\r
- if (! IS_SYNTAX_BV(syn, ONIG_SYN_BACKSLASH_ESCAPE_IN_CC))\r
- goto end;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE;\r
-\r
- PFETCH(c);\r
- tok->escaped = 1;\r
- tok->u.c = c;\r
- switch (c) {\r
- case 'w':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_WORD;\r
- tok->u.prop.not = 0;\r
- break;\r
- case 'W':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_WORD;\r
- tok->u.prop.not = 1;\r
- break;\r
- case 'd':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT;\r
- tok->u.prop.not = 0;\r
- break;\r
- case 'D':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT;\r
- tok->u.prop.not = 1;\r
- break;\r
- case 's':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_SPACE;\r
- tok->u.prop.not = 0;\r
- break;\r
- case 'S':\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_SPACE;\r
- tok->u.prop.not = 1;\r
- break;\r
- case 'h':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT;\r
- tok->u.prop.not = 0;\r
- break;\r
- case 'H':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT;\r
- tok->u.prop.not = 1;\r
- break;\r
-\r
- case 'p':\r
- case 'P':\r
- if (PEND) break;\r
-\r
- c2 = PPEEK;\r
- if (c2 == '{' &&\r
- IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) {\r
- PINC;\r
- tok->type = TK_CHAR_PROPERTY;\r
- tok->u.prop.not = c == 'P';\r
-\r
- if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) {\r
- PFETCH(c2);\r
- if (c2 == '^') {\r
- tok->u.prop.not = tok->u.prop.not == 0;\r
- }\r
- else\r
- PUNFETCH;\r
- }\r
- }\r
- break;\r
-\r
- case 'o':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) {\r
- PINC;\r
- num = scan_unsigned_octal_number(&p, end, 11, enc);\r
- if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;\r
- if (!PEND) {\r
- c2 = PPEEK;\r
- if (IS_CODE_DIGIT_ASCII(enc, c2))\r
- return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE;\r
- }\r
-\r
- if (p > prev + enclen(enc, prev) && !PEND && (PPEEK_IS('}'))) {\r
- PINC;\r
- tok->type = TK_CODE_POINT;\r
- tok->base = 8;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- else {\r
- /* can't read nothing or invalid format */\r
- p = prev;\r
- }\r
- }\r
- break;\r
-\r
- case 'x':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) {\r
- PINC;\r
- num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc);\r
- if (num < 0) {\r
- if (num == ONIGERR_TOO_BIG_NUMBER)\r
- return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;\r
- else\r
- return num;\r
- }\r
- if (!PEND) {\r
- c2 = PPEEK;\r
- if (IS_CODE_XDIGIT_ASCII(enc, c2))\r
- return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE;\r
- }\r
-\r
- if (p > prev + enclen(enc, prev) && !PEND && (PPEEK_IS('}'))) {\r
- PINC;\r
- tok->type = TK_CODE_POINT;\r
- tok->base = 16;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- else {\r
- /* can't read nothing or invalid format */\r
- p = prev;\r
- }\r
- }\r
- else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) {\r
- num = scan_unsigned_hexadecimal_number(&p, end, 0, 2, enc);\r
- if (num < 0) return num;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_RAW_BYTE;\r
- tok->base = 16;\r
- tok->u.c = num;\r
- }\r
- break;\r
-\r
- case 'u':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) {\r
- num = scan_unsigned_hexadecimal_number(&p, end, 4, 4, enc);\r
- if (num < 0) return num;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_CODE_POINT;\r
- tok->base = 16;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- break;\r
-\r
- case '0':\r
- case '1': case '2': case '3': case '4': case '5': case '6': case '7':\r
- if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) {\r
- PUNFETCH;\r
- prev = p;\r
- num = scan_unsigned_octal_number(&p, end, 3, enc);\r
- if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_NUMBER;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_RAW_BYTE;\r
- tok->base = 8;\r
- tok->u.c = num;\r
- }\r
- break;\r
-\r
- default:\r
- PUNFETCH;\r
- num = fetch_escaped_value(&p, end, env, &c2);\r
- if (num < 0) return num;\r
- if (tok->u.c != c2) {\r
- tok->u.code = c2;\r
- tok->type = TK_CODE_POINT;\r
- }\r
- break;\r
- }\r
- }\r
- else if (c == '[') {\r
- if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_POSIX_BRACKET) && (PPEEK_IS(':'))) {\r
- OnigCodePoint send[] = { (OnigCodePoint )':', (OnigCodePoint )']' };\r
- tok->backp = p; /* point at '[' is read */\r
- PINC;\r
- if (str_exist_check_with_esc(send, 2, p, end,\r
- (OnigCodePoint )']', enc, syn)) {\r
- tok->type = TK_POSIX_BRACKET_OPEN;\r
- }\r
- else {\r
- PUNFETCH;\r
- goto cc_in_cc;\r
- }\r
- }\r
- else {\r
- cc_in_cc:\r
- if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP)) {\r
- tok->type = TK_CC_CC_OPEN;\r
- }\r
- else {\r
- CC_ESC_WARN(env, (UChar* )"[");\r
- }\r
- }\r
- }\r
- else if (c == '&') {\r
- if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_CCLASS_SET_OP) &&\r
- !PEND && (PPEEK_IS('&'))) {\r
- PINC;\r
- tok->type = TK_CC_AND;\r
- }\r
- }\r
-\r
- end:\r
- *src = p;\r
- return tok->type;\r
-}\r
-\r
-static int\r
-fetch_token(PToken* tok, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r, num;\r
- OnigCodePoint c;\r
- OnigEncoding enc = env->enc;\r
- OnigSyntaxType* syn = env->syntax;\r
- UChar* prev;\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- start:\r
- if (PEND) {\r
- tok->type = TK_EOT;\r
- return tok->type;\r
- }\r
-\r
- tok->type = TK_STRING;\r
- tok->base = 0;\r
- tok->backp = p;\r
-\r
- PFETCH(c);\r
- if (IS_MC_ESC_CODE(c, syn)) {\r
- if (PEND) return ONIGERR_END_PATTERN_AT_ESCAPE;\r
-\r
- tok->backp = p;\r
- PFETCH(c);\r
-\r
- tok->u.c = c;\r
- tok->escaped = 1;\r
- switch (c) {\r
- case '*':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_ASTERISK_ZERO_INF)) break;\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 0;\r
- tok->u.repeat.upper = INFINITE_REPEAT;\r
- goto greedy_check;\r
- break;\r
-\r
- case '+':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_PLUS_ONE_INF)) break;\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 1;\r
- tok->u.repeat.upper = INFINITE_REPEAT;\r
- goto greedy_check;\r
- break;\r
-\r
- case '?':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_QMARK_ZERO_ONE)) break;\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 0;\r
- tok->u.repeat.upper = 1;\r
- greedy_check:\r
- tok->u.repeat.possessive = 0;\r
- greedy_check2:\r
- if (!PEND && PPEEK_IS('?') &&\r
- IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_NON_GREEDY) &&\r
- tok->u.repeat.possessive == 0) {\r
- PFETCH(c);\r
- tok->u.repeat.greedy = 0;\r
- tok->u.repeat.possessive = 0;\r
- }\r
- else {\r
- possessive_check:\r
- tok->u.repeat.greedy = 1;\r
- if (!PEND && PPEEK_IS('+') &&\r
- ((IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT) &&\r
- tok->type != TK_INTERVAL) ||\r
- (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL) &&\r
- tok->type == TK_INTERVAL)) &&\r
- tok->u.repeat.possessive == 0) {\r
- PFETCH(c);\r
- tok->u.repeat.possessive = 1;\r
- }\r
- }\r
- break;\r
-\r
- case '{':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_BRACE_INTERVAL)) break;\r
- r = fetch_interval_quantifier(&p, end, tok, env);\r
- if (r < 0) return r; /* error */\r
- if (r == 0) goto greedy_check2;\r
- else if (r == 2) { /* {n} */\r
- if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY))\r
- goto possessive_check;\r
-\r
- goto greedy_check2;\r
- }\r
- /* r == 1 : normal char */\r
- break;\r
-\r
- case '|':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_VBAR_ALT)) break;\r
- tok->type = TK_ALT;\r
- break;\r
-\r
- case '(':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break;\r
- tok->type = TK_SUBEXP_OPEN;\r
- break;\r
-\r
- case ')':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LPAREN_SUBEXP)) break;\r
- tok->type = TK_SUBEXP_CLOSE;\r
- break;\r
-\r
- case 'w':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_WORD;\r
- tok->u.prop.not = 0;\r
- break;\r
-\r
- case 'W':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_W_WORD)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_WORD;\r
- tok->u.prop.not = 1;\r
- break;\r
-\r
- case 'b':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_WORD_BOUNDARY;\r
- break;\r
-\r
- case 'B':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_B_WORD_BOUND)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_NO_WORD_BOUNDARY;\r
- break;\r
-\r
- case 'y':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_TEXT_SEGMENT_BOUNDARY;\r
- break;\r
-\r
- case 'Y':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_NO_TEXT_SEGMENT_BOUNDARY;\r
- break;\r
-\r
-#ifdef USE_WORD_BEGIN_END\r
- case '<':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_WORD_BEGIN;\r
- break;\r
-\r
- case '>':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.anchor = ANCR_WORD_END;\r
- break;\r
-#endif\r
-\r
- case 's':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_SPACE;\r
- tok->u.prop.not = 0;\r
- break;\r
-\r
- case 'S':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_S_WHITE_SPACE)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_SPACE;\r
- tok->u.prop.not = 1;\r
- break;\r
-\r
- case 'd':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT;\r
- tok->u.prop.not = 0;\r
- break;\r
-\r
- case 'D':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_D_DIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_DIGIT;\r
- tok->u.prop.not = 1;\r
- break;\r
-\r
- case 'h':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT;\r
- tok->u.prop.not = 0;\r
- break;\r
-\r
- case 'H':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_H_XDIGIT)) break;\r
- tok->type = TK_CHAR_TYPE;\r
- tok->u.prop.ctype = ONIGENC_CTYPE_XDIGIT;\r
- tok->u.prop.not = 1;\r
- break;\r
-\r
- case 'K':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP)) break;\r
- tok->type = TK_KEEP;\r
- break;\r
-\r
- case 'R':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE)) break;\r
- tok->type = TK_GENERAL_NEWLINE;\r
- break;\r
-\r
- case 'N':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break;\r
- tok->type = TK_NO_NEWLINE;\r
- break;\r
-\r
- case 'O':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT)) break;\r
- tok->type = TK_TRUE_ANYCHAR;\r
- break;\r
-\r
- case 'X':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT)) break;\r
- tok->type = TK_TEXT_SEGMENT;\r
- break;\r
-\r
- case 'A':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break;\r
- begin_buf:\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = ANCR_BEGIN_BUF;\r
- break;\r
-\r
- case 'Z':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = ANCR_SEMI_END_BUF;\r
- break;\r
-\r
- case 'z':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_AZ_BUF_ANCHOR)) break;\r
- end_buf:\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = ANCR_END_BUF;\r
- break;\r
-\r
- case 'G':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_CAPITAL_G_BEGIN_ANCHOR)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = ANCR_BEGIN_POSITION;\r
- break;\r
-\r
- case '`':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break;\r
- goto begin_buf;\r
- break;\r
-\r
- case '\'':\r
- if (! IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR)) break;\r
- goto end_buf;\r
- break;\r
-\r
- case 'o':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_O_BRACE_OCTAL)) {\r
- PINC;\r
- num = scan_unsigned_octal_number(&p, end, 11, enc);\r
- if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;\r
- if (!PEND) {\r
- if (IS_CODE_DIGIT_ASCII(enc, PPEEK))\r
- return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE;\r
- }\r
-\r
- if ((p > prev + enclen(enc, prev)) && !PEND && PPEEK_IS('}')) {\r
- PINC;\r
- tok->type = TK_CODE_POINT;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- else {\r
- /* can't read nothing or invalid format */\r
- p = prev;\r
- }\r
- }\r
- break;\r
-\r
- case 'x':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) {\r
- PINC;\r
- num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc);\r
- if (num < 0) {\r
- if (num == ONIGERR_TOO_BIG_NUMBER)\r
- return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE;\r
- else\r
- return num;\r
- }\r
- if (!PEND) {\r
- if (IS_CODE_XDIGIT_ASCII(enc, PPEEK))\r
- return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE;\r
- }\r
-\r
- if ((p > prev + enclen(enc, prev)) && !PEND && PPEEK_IS('}')) {\r
- PINC;\r
- tok->type = TK_CODE_POINT;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- else {\r
- /* can't read nothing or invalid format */\r
- p = prev;\r
- }\r
- }\r
- else if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_HEX2)) {\r
- num = scan_unsigned_hexadecimal_number(&p, end, 0, 2, enc);\r
- if (num < 0) return num;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_RAW_BYTE;\r
- tok->base = 16;\r
- tok->u.c = num;\r
- }\r
- break;\r
-\r
- case 'u':\r
- if (PEND) break;\r
-\r
- prev = p;\r
- if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_U_HEX4)) {\r
- num = scan_unsigned_hexadecimal_number(&p, end, 4, 4, enc);\r
- if (num < 0) return num;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_CODE_POINT;\r
- tok->base = 16;\r
- tok->u.code = (OnigCodePoint )num;\r
- }\r
- break;\r
-\r
- case '1': case '2': case '3': case '4':\r
- case '5': case '6': case '7': case '8': case '9':\r
- PUNFETCH;\r
- prev = p;\r
- num = onig_scan_unsigned_number(&p, end, enc);\r
- if (num < 0 || num > ONIG_MAX_BACKREF_NUM) {\r
- goto skip_backref;\r
- }\r
-\r
- if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_DECIMAL_BACKREF) &&\r
- (num <= env->num_mem || num <= 9)) { /* This spec. from GNU regex */\r
- if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) {\r
- if (num > env->num_mem || IS_NULL(SCANENV_MEMENV(env)[num].node))\r
- return ONIGERR_INVALID_BACKREF;\r
- }\r
-\r
- tok->type = TK_BACKREF;\r
- tok->u.backref.num = 1;\r
- tok->u.backref.ref1 = num;\r
- tok->u.backref.by_name = 0;\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- tok->u.backref.exist_level = 0;\r
-#endif\r
- break;\r
- }\r
-\r
- skip_backref:\r
- if (c == '8' || c == '9') {\r
- /* normal char */\r
- p = prev; PINC;\r
- break;\r
- }\r
-\r
- p = prev;\r
- /* fall through */\r
- case '0':\r
- if (IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_OCTAL3)) {\r
- prev = p;\r
- num = scan_unsigned_octal_number(&p, end, (c == '0' ? 2:3), enc);\r
- if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_NUMBER;\r
- if (p == prev) { /* can't read nothing. */\r
- num = 0; /* but, it's not error */\r
- }\r
- tok->type = TK_RAW_BYTE;\r
- tok->base = 8;\r
- tok->u.c = num;\r
- }\r
- else if (c != '0') {\r
- PINC;\r
- }\r
- break;\r
-\r
- case 'k':\r
- if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_K_NAMED_BACKREF)) {\r
- PFETCH(c);\r
- if (c == '<' || c == '\'') {\r
- UChar* name_end;\r
- int* backs;\r
- int back_num;\r
- enum REF_NUM num_type;\r
-\r
- prev = p;\r
-\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- name_end = NULL_UCHARP; /* no need. escape gcc warning. */\r
- r = fetch_name_with_level((OnigCodePoint )c, &p, end, &name_end,\r
- env, &back_num, &tok->u.backref.level, &num_type);\r
- if (r == 1) tok->u.backref.exist_level = 1;\r
- else tok->u.backref.exist_level = 0;\r
-#else\r
- r = fetch_name(c, &p, end, &name_end, env, &back_num, &num_type, 1);\r
-#endif\r
- if (r < 0) return r;\r
-\r
- if (num_type != IS_NOT_NUM) {\r
- if (num_type == IS_REL_NUM) {\r
- back_num = backref_rel_to_abs(back_num, env);\r
- }\r
- if (back_num <= 0)\r
- return ONIGERR_INVALID_BACKREF;\r
-\r
- if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) {\r
- if (back_num > env->num_mem ||\r
- IS_NULL(SCANENV_MEMENV(env)[back_num].node))\r
- return ONIGERR_INVALID_BACKREF;\r
- }\r
- tok->type = TK_BACKREF;\r
- tok->u.backref.by_name = 0;\r
- tok->u.backref.num = 1;\r
- tok->u.backref.ref1 = back_num;\r
- }\r
- else {\r
- num = name_to_group_numbers(env, prev, name_end, &backs);\r
- if (num <= 0) {\r
- return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
- }\r
- if (IS_SYNTAX_BV(syn, ONIG_SYN_STRICT_CHECK_BACKREF)) {\r
- int i;\r
- for (i = 0; i < num; i++) {\r
- if (backs[i] > env->num_mem ||\r
- IS_NULL(SCANENV_MEMENV(env)[backs[i]].node))\r
- return ONIGERR_INVALID_BACKREF;\r
- }\r
- }\r
-\r
- tok->type = TK_BACKREF;\r
- tok->u.backref.by_name = 1;\r
- if (num == 1) {\r
- tok->u.backref.num = 1;\r
- tok->u.backref.ref1 = backs[0];\r
- }\r
- else {\r
- tok->u.backref.num = num;\r
- tok->u.backref.refs = backs;\r
- }\r
- }\r
- }\r
- else\r
- PUNFETCH;\r
- }\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case 'g':\r
- if (!PEND && IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_G_SUBEXP_CALL)) {\r
- PFETCH(c);\r
- if (c == '<' || c == '\'') {\r
- int gnum;\r
- UChar* name_end;\r
- enum REF_NUM num_type;\r
-\r
- prev = p;\r
- r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env,\r
- &gnum, &num_type, 1);\r
- if (r < 0) return r;\r
-\r
- if (num_type != IS_NOT_NUM) {\r
- if (num_type == IS_REL_NUM) {\r
- gnum = backref_rel_to_abs(gnum, env);\r
- if (gnum < 0) {\r
- onig_scan_env_set_error_string(env, ONIGERR_UNDEFINED_NAME_REFERENCE,\r
- prev, name_end);\r
- return ONIGERR_UNDEFINED_GROUP_REFERENCE;\r
- }\r
- }\r
- tok->u.call.by_number = 1;\r
- tok->u.call.gnum = gnum;\r
- }\r
- else {\r
- tok->u.call.by_number = 0;\r
- tok->u.call.gnum = 0;\r
- }\r
-\r
- tok->type = TK_CALL;\r
- tok->u.call.name = prev;\r
- tok->u.call.name_end = name_end;\r
- }\r
- else\r
- PUNFETCH;\r
- }\r
- break;\r
-#endif\r
-\r
- case 'Q':\r
- if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE)) {\r
- tok->type = TK_QUOTE_OPEN;\r
- }\r
- break;\r
-\r
- case 'p':\r
- case 'P':\r
- if (!PEND && PPEEK_IS('{') &&\r
- IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY)) {\r
- PINC;\r
- tok->type = TK_CHAR_PROPERTY;\r
- tok->u.prop.not = c == 'P';\r
-\r
- if (!PEND &&\r
- IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT)) {\r
- PFETCH(c);\r
- if (c == '^') {\r
- tok->u.prop.not = tok->u.prop.not == 0;\r
- }\r
- else\r
- PUNFETCH;\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- {\r
- OnigCodePoint c2;\r
-\r
- PUNFETCH;\r
- num = fetch_escaped_value(&p, end, env, &c2);\r
- if (num < 0) return num;\r
- /* set_raw: */\r
- if (tok->u.c != c2) {\r
- tok->type = TK_CODE_POINT;\r
- tok->u.code = c2;\r
- }\r
- else { /* string */\r
- p = tok->backp + enclen(enc, tok->backp);\r
- }\r
- }\r
- break;\r
- }\r
- }\r
- else {\r
- tok->u.c = c;\r
- tok->escaped = 0;\r
-\r
-#ifdef USE_VARIABLE_META_CHARS\r
- if ((c != ONIG_INEFFECTIVE_META_CHAR) &&\r
- IS_SYNTAX_OP(syn, ONIG_SYN_OP_VARIABLE_META_CHARACTERS)) {\r
- if (c == MC_ANYCHAR(syn))\r
- goto any_char;\r
- else if (c == MC_ANYTIME(syn))\r
- goto anytime;\r
- else if (c == MC_ZERO_OR_ONE_TIME(syn))\r
- goto zero_or_one_time;\r
- else if (c == MC_ONE_OR_MORE_TIME(syn))\r
- goto one_or_more_time;\r
- else if (c == MC_ANYCHAR_ANYTIME(syn)) {\r
- tok->type = TK_ANYCHAR_ANYTIME;\r
- goto out;\r
- }\r
- }\r
-#endif\r
-\r
- switch (c) {\r
- case '.':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_DOT_ANYCHAR)) break;\r
-#ifdef USE_VARIABLE_META_CHARS\r
- any_char:\r
-#endif\r
- tok->type = TK_ANYCHAR;\r
- break;\r
-\r
- case '*':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_ASTERISK_ZERO_INF)) break;\r
-#ifdef USE_VARIABLE_META_CHARS\r
- anytime:\r
-#endif\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 0;\r
- tok->u.repeat.upper = INFINITE_REPEAT;\r
- goto greedy_check;\r
- break;\r
-\r
- case '+':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_PLUS_ONE_INF)) break;\r
-#ifdef USE_VARIABLE_META_CHARS\r
- one_or_more_time:\r
-#endif\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 1;\r
- tok->u.repeat.upper = INFINITE_REPEAT;\r
- goto greedy_check;\r
- break;\r
-\r
- case '?':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_QMARK_ZERO_ONE)) break;\r
-#ifdef USE_VARIABLE_META_CHARS\r
- zero_or_one_time:\r
-#endif\r
- tok->type = TK_REPEAT;\r
- tok->u.repeat.lower = 0;\r
- tok->u.repeat.upper = 1;\r
- goto greedy_check;\r
- break;\r
-\r
- case '{':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACE_INTERVAL)) break;\r
- r = fetch_interval_quantifier(&p, end, tok, env);\r
- if (r < 0) return r; /* error */\r
- if (r == 0) goto greedy_check2;\r
- else if (r == 2) { /* {n} */\r
- if (IS_SYNTAX_BV(syn, ONIG_SYN_FIXED_INTERVAL_IS_GREEDY_ONLY))\r
- goto possessive_check;\r
-\r
- goto greedy_check2;\r
- }\r
- /* r == 1 : normal char */\r
- break;\r
-\r
- case '|':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_VBAR_ALT)) break;\r
- tok->type = TK_ALT;\r
- break;\r
-\r
- case '(':\r
- if (!PEND && PPEEK_IS('?') &&\r
- IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) {\r
- PINC;\r
- if (! PEND) {\r
- c = PPEEK;\r
- if (c == '#') {\r
- PFETCH(c);\r
- while (1) {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH(c);\r
- if (c == MC_ESC(syn)) {\r
- if (! PEND) PFETCH(c);\r
- }\r
- else {\r
- if (c == ')') break;\r
- }\r
- }\r
- goto start;\r
- }\r
- else if (IS_SYNTAX_OP2(syn, ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL)) {\r
- int gnum;\r
- UChar* name;\r
- UChar* name_end;\r
- enum REF_NUM num_type;\r
-\r
- switch (c) {\r
- case '&':\r
- {\r
- PINC;\r
- name = p;\r
- r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env, &gnum,\r
- &num_type, 0);\r
- if (r < 0) return r;\r
-\r
- tok->type = TK_CALL;\r
- tok->u.call.by_number = 0;\r
- tok->u.call.gnum = 0;\r
- tok->u.call.name = name;\r
- tok->u.call.name_end = name_end;\r
- }\r
- break;\r
-\r
- case 'R':\r
- tok->type = TK_CALL;\r
- tok->u.call.by_number = 1;\r
- tok->u.call.gnum = 0;\r
- tok->u.call.name = p;\r
- PINC;\r
- if (! PPEEK_IS(')')) return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- tok->u.call.name_end = p;\r
- break;\r
-\r
- case '-':\r
- case '+':\r
- goto lparen_qmark_num;\r
- break;\r
- default:\r
- if (! ONIGENC_IS_CODE_DIGIT(enc, c)) goto lparen_qmark_end;\r
-\r
- lparen_qmark_num:\r
- {\r
- name = p;\r
- r = fetch_name((OnigCodePoint )'(', &p, end, &name_end, env,\r
- &gnum, &num_type, 1);\r
- if (r < 0) return r;\r
-\r
- if (num_type == IS_NOT_NUM) {\r
- return ONIGERR_INVALID_GROUP_NAME;\r
- }\r
- else {\r
- if (num_type == IS_REL_NUM) {\r
- gnum = backref_rel_to_abs(gnum, env);\r
- if (gnum < 0) {\r
- onig_scan_env_set_error_string(env,\r
- ONIGERR_UNDEFINED_NAME_REFERENCE, name, name_end);\r
- return ONIGERR_UNDEFINED_GROUP_REFERENCE;\r
- }\r
- }\r
- tok->u.call.by_number = 1;\r
- tok->u.call.gnum = gnum;\r
- }\r
-\r
- tok->type = TK_CALL;\r
- tok->u.call.name = name;\r
- tok->u.call.name_end = name_end;\r
- }\r
- break;\r
- }\r
- }\r
- }\r
- lparen_qmark_end:\r
- PUNFETCH;\r
- }\r
-\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break;\r
- tok->type = TK_SUBEXP_OPEN;\r
- break;\r
-\r
- case ')':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LPAREN_SUBEXP)) break;\r
- tok->type = TK_SUBEXP_CLOSE;\r
- break;\r
-\r
- case '^':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = (IS_SINGLELINE(env->options)\r
- ? ANCR_BEGIN_BUF : ANCR_BEGIN_LINE);\r
- break;\r
-\r
- case '$':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_LINE_ANCHOR)) break;\r
- tok->type = TK_ANCHOR;\r
- tok->u.subtype = (IS_SINGLELINE(env->options)\r
- ? ANCR_SEMI_END_BUF : ANCR_END_LINE);\r
- break;\r
-\r
- case '[':\r
- if (! IS_SYNTAX_OP(syn, ONIG_SYN_OP_BRACKET_CC)) break;\r
- tok->type = TK_CC_OPEN;\r
- break;\r
-\r
- case ']':\r
- if (*src > env->pattern) /* /].../ is allowed. */\r
- CLOSE_BRACKET_WITHOUT_ESC_WARN(env, (UChar* )"]");\r
- break;\r
-\r
- case '#':\r
- if (IS_EXTEND(env->options)) {\r
- while (!PEND) {\r
- PFETCH(c);\r
- if (ONIGENC_IS_CODE_NEWLINE(enc, c))\r
- break;\r
- }\r
- goto start;\r
- break;\r
- }\r
- break;\r
-\r
- case ' ': case '\t': case '\n': case '\r': case '\f':\r
- if (IS_EXTEND(env->options))\r
- goto start;\r
- break;\r
-\r
- default:\r
- /* string */\r
- break;\r
- }\r
- }\r
-\r
-#ifdef USE_VARIABLE_META_CHARS\r
- out:\r
-#endif\r
- *src = p;\r
- return tok->type;\r
-}\r
-\r
-static int\r
-add_ctype_to_cc_by_range(CClassNode* cc, int ctype ARG_UNUSED, int not,\r
- OnigEncoding enc ARG_UNUSED, OnigCodePoint sb_out,\r
- const OnigCodePoint mbr[])\r
-{\r
- int i, r;\r
- OnigCodePoint j;\r
-\r
- int n = ONIGENC_CODE_RANGE_NUM(mbr);\r
-\r
- if (not == 0) {\r
- for (i = 0; i < n; i++) {\r
- for (j = ONIGENC_CODE_RANGE_FROM(mbr, i);\r
- j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) {\r
- if (j >= sb_out) {\r
- if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) {\r
- r = add_code_range_to_buf(&(cc->mbuf), j,\r
- ONIGENC_CODE_RANGE_TO(mbr, i));\r
- if (r != 0) return r;\r
- i++;\r
- }\r
-\r
- goto sb_end;\r
- }\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
- }\r
-\r
- sb_end:\r
- for ( ; i < n; i++) {\r
- r = add_code_range_to_buf(&(cc->mbuf),\r
- ONIGENC_CODE_RANGE_FROM(mbr, i),\r
- ONIGENC_CODE_RANGE_TO(mbr, i));\r
- if (r != 0) return r;\r
- }\r
- }\r
- else {\r
- OnigCodePoint prev = 0;\r
-\r
- for (i = 0; i < n; i++) {\r
- for (j = prev; j < ONIGENC_CODE_RANGE_FROM(mbr, i); j++) {\r
- if (j >= sb_out) {\r
- goto sb_end2;\r
- }\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
- prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1;\r
- }\r
- for (j = prev; j < sb_out; j++) {\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
-\r
- sb_end2:\r
- prev = sb_out;\r
-\r
- for (i = 0; i < n; i++) {\r
- if (prev < ONIGENC_CODE_RANGE_FROM(mbr, i)) {\r
- r = add_code_range_to_buf(&(cc->mbuf), prev,\r
- ONIGENC_CODE_RANGE_FROM(mbr, i) - 1);\r
- if (r != 0) return r;\r
- }\r
- prev = ONIGENC_CODE_RANGE_TO(mbr, i) + 1;\r
- if (prev == 0) goto end;\r
- }\r
-\r
- r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT);\r
- if (r != 0) return r;\r
- }\r
-\r
- end:\r
- return 0;\r
-}\r
-\r
-static int\r
-add_ctype_to_cc_by_range_limit(CClassNode* cc, int ctype ARG_UNUSED, int not,\r
- OnigEncoding enc ARG_UNUSED,\r
- OnigCodePoint sb_out,\r
- const OnigCodePoint mbr[], OnigCodePoint limit)\r
-{\r
- int i, r;\r
- OnigCodePoint j;\r
- OnigCodePoint from;\r
- OnigCodePoint to;\r
-\r
- int n = ONIGENC_CODE_RANGE_NUM(mbr);\r
-\r
- if (not == 0) {\r
- for (i = 0; i < n; i++) {\r
- for (j = ONIGENC_CODE_RANGE_FROM(mbr, i);\r
- j <= ONIGENC_CODE_RANGE_TO(mbr, i); j++) {\r
- if (j > limit) goto end;\r
- if (j >= sb_out) {\r
- if (j > ONIGENC_CODE_RANGE_FROM(mbr, i)) {\r
- to = ONIGENC_CODE_RANGE_TO(mbr, i);\r
- if (to > limit) to = limit;\r
- r = add_code_range_to_buf(&(cc->mbuf), j, to);\r
- if (r != 0) return r;\r
- i++;\r
- }\r
-\r
- goto sb_end;\r
- }\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
- }\r
-\r
- sb_end:\r
- for ( ; i < n; i++) {\r
- from = ONIGENC_CODE_RANGE_FROM(mbr, i);\r
- to = ONIGENC_CODE_RANGE_TO(mbr, i);\r
- if (from > limit) break;\r
- if (to > limit) to = limit;\r
- r = add_code_range_to_buf(&(cc->mbuf), from, to);\r
- if (r != 0) return r;\r
- }\r
- }\r
- else {\r
- OnigCodePoint prev = 0;\r
-\r
- for (i = 0; i < n; i++) {\r
- from = ONIGENC_CODE_RANGE_FROM(mbr, i);\r
- if (from > limit) {\r
- for (j = prev; j < sb_out; j++) {\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
- goto sb_end2;\r
- }\r
- for (j = prev; j < from; j++) {\r
- if (j >= sb_out) goto sb_end2;\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
- prev = ONIGENC_CODE_RANGE_TO(mbr, i);\r
- if (prev > limit) prev = limit;\r
- prev++;\r
- if (prev == 0) goto end;\r
- }\r
- for (j = prev; j < sb_out; j++) {\r
- BITSET_SET_BIT(cc->bs, j);\r
- }\r
-\r
- sb_end2:\r
- prev = sb_out;\r
-\r
- for (i = 0; i < n; i++) {\r
- from = ONIGENC_CODE_RANGE_FROM(mbr, i);\r
- if (from > limit) goto last;\r
-\r
- if (prev < from) {\r
- r = add_code_range_to_buf(&(cc->mbuf), prev, from - 1);\r
- if (r != 0) return r;\r
- }\r
- prev = ONIGENC_CODE_RANGE_TO(mbr, i);\r
- if (prev > limit) prev = limit;\r
- prev++;\r
- if (prev == 0) goto end;\r
- }\r
-\r
- last:\r
- r = add_code_range_to_buf(&(cc->mbuf), prev, MAX_CODE_POINT);\r
- if (r != 0) return r;\r
- }\r
-\r
- end:\r
- return 0;\r
-}\r
-\r
-static int\r
-add_ctype_to_cc(CClassNode* cc, int ctype, int not, ScanEnv* env)\r
-{\r
-#define ASCII_LIMIT 127\r
-\r
- int c, r;\r
- int ascii_mode;\r
- const OnigCodePoint *ranges;\r
- OnigCodePoint limit;\r
- OnigCodePoint sb_out;\r
- OnigEncoding enc = env->enc;\r
-\r
- ascii_mode = IS_ASCII_MODE_CTYPE_OPTION(ctype, env->options);\r
-\r
- r = ONIGENC_GET_CTYPE_CODE_RANGE(enc, ctype, &sb_out, &ranges);\r
- if (r == 0) {\r
- if (ascii_mode == 0)\r
- r = add_ctype_to_cc_by_range(cc, ctype, not, env->enc, sb_out, ranges);\r
- else\r
- r = add_ctype_to_cc_by_range_limit(cc, ctype, not, env->enc, sb_out,\r
- ranges, ASCII_LIMIT);\r
- return r;\r
- }\r
- else if (r != ONIG_NO_SUPPORT_CONFIG) {\r
- return r;\r
- }\r
-\r
- r = 0;\r
- limit = ascii_mode ? ASCII_LIMIT : SINGLE_BYTE_SIZE;\r
-\r
- switch (ctype) {\r
- case ONIGENC_CTYPE_ALPHA:\r
- case ONIGENC_CTYPE_BLANK:\r
- case ONIGENC_CTYPE_CNTRL:\r
- case ONIGENC_CTYPE_DIGIT:\r
- case ONIGENC_CTYPE_LOWER:\r
- case ONIGENC_CTYPE_PUNCT:\r
- case ONIGENC_CTYPE_SPACE:\r
- case ONIGENC_CTYPE_UPPER:\r
- case ONIGENC_CTYPE_XDIGIT:\r
- case ONIGENC_CTYPE_ASCII:\r
- case ONIGENC_CTYPE_ALNUM:\r
- if (not != 0) {\r
- for (c = 0; c < (int )limit; c++) {\r
- if (! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype))\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
- for (c = limit; c < SINGLE_BYTE_SIZE; c++) {\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
-\r
- ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf);\r
- }\r
- else {\r
- for (c = 0; c < (int )limit; c++) {\r
- if (ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype))\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
- }\r
- break;\r
-\r
- case ONIGENC_CTYPE_GRAPH:\r
- case ONIGENC_CTYPE_PRINT:\r
- case ONIGENC_CTYPE_WORD:\r
- if (not != 0) {\r
- for (c = 0; c < (int )limit; c++) {\r
- if (ONIGENC_CODE_TO_MBCLEN(enc, c) > 0 /* check invalid code point */\r
- && ! ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype))\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
- for (c = limit; c < SINGLE_BYTE_SIZE; c++) {\r
- if (ONIGENC_CODE_TO_MBCLEN(enc, c) > 0)\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
- }\r
- else {\r
- for (c = 0; c < (int )limit; c++) {\r
- if (ONIGENC_IS_CODE_CTYPE(enc, (OnigCodePoint )c, ctype))\r
- BITSET_SET_BIT(cc->bs, c);\r
- }\r
- if (ascii_mode == 0)\r
- ADD_ALL_MULTI_BYTE_RANGE(enc, cc->mbuf);\r
- }\r
- break;\r
-\r
- default:\r
- return ONIGERR_PARSER_BUG;\r
- break;\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-parse_posix_bracket(CClassNode* cc, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
-#define POSIX_BRACKET_CHECK_LIMIT_LENGTH 20\r
-#define POSIX_BRACKET_NAME_MIN_LEN 4\r
-\r
- static PosixBracketEntryType PBS[] = {\r
- { (UChar* )"alnum", ONIGENC_CTYPE_ALNUM, 5 },\r
- { (UChar* )"alpha", ONIGENC_CTYPE_ALPHA, 5 },\r
- { (UChar* )"blank", ONIGENC_CTYPE_BLANK, 5 },\r
- { (UChar* )"cntrl", ONIGENC_CTYPE_CNTRL, 5 },\r
- { (UChar* )"digit", ONIGENC_CTYPE_DIGIT, 5 },\r
- { (UChar* )"graph", ONIGENC_CTYPE_GRAPH, 5 },\r
- { (UChar* )"lower", ONIGENC_CTYPE_LOWER, 5 },\r
- { (UChar* )"print", ONIGENC_CTYPE_PRINT, 5 },\r
- { (UChar* )"punct", ONIGENC_CTYPE_PUNCT, 5 },\r
- { (UChar* )"space", ONIGENC_CTYPE_SPACE, 5 },\r
- { (UChar* )"upper", ONIGENC_CTYPE_UPPER, 5 },\r
- { (UChar* )"xdigit", ONIGENC_CTYPE_XDIGIT, 6 },\r
- { (UChar* )"ascii", ONIGENC_CTYPE_ASCII, 5 },\r
- { (UChar* )"word", ONIGENC_CTYPE_WORD, 4 },\r
- { (UChar* )NULL, -1, 0 }\r
- };\r
-\r
- PosixBracketEntryType *pb;\r
- int not, i, r;\r
- OnigCodePoint c;\r
- OnigEncoding enc = env->enc;\r
- UChar *p = *src;\r
-\r
- if (PPEEK_IS('^')) {\r
- PINC_S;\r
- not = 1;\r
- }\r
- else\r
- not = 0;\r
-\r
- if (onigenc_strlen(enc, p, end) < POSIX_BRACKET_NAME_MIN_LEN + 3)\r
- goto not_posix_bracket;\r
-\r
- for (pb = PBS; IS_NOT_NULL(pb->name); pb++) {\r
- if (onigenc_with_ascii_strncmp(enc, p, end, pb->name, pb->len) == 0) {\r
- p = (UChar* )onigenc_step(enc, p, end, pb->len);\r
- if (onigenc_with_ascii_strncmp(enc, p, end, (UChar* )":]", 2) != 0)\r
- return ONIGERR_INVALID_POSIX_BRACKET_TYPE;\r
-\r
- r = add_ctype_to_cc(cc, pb->ctype, not, env);\r
- if (r != 0) return r;\r
-\r
- PINC_S; PINC_S;\r
- *src = p;\r
- return 0;\r
- }\r
- }\r
-\r
- not_posix_bracket:\r
- c = 0;\r
- i = 0;\r
- while (!PEND && ((c = PPEEK) != ':') && c != ']') {\r
- PINC_S;\r
- if (++i > POSIX_BRACKET_CHECK_LIMIT_LENGTH) break;\r
- }\r
- if (c == ':' && ! PEND) {\r
- PINC_S;\r
- if (! PEND) {\r
- PFETCH_S(c);\r
- if (c == ']')\r
- return ONIGERR_INVALID_POSIX_BRACKET_TYPE;\r
- }\r
- }\r
-\r
- return 1; /* 1: is not POSIX bracket, but no error. */\r
-}\r
-\r
-static int\r
-fetch_char_property_to_ctype(UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r;\r
- OnigCodePoint c;\r
- OnigEncoding enc = env->enc;\r
- UChar *prev, *start, *p = *src;\r
-\r
- r = 0;\r
- start = prev = p;\r
-\r
- while (!PEND) {\r
- prev = p;\r
- PFETCH_S(c);\r
- if (c == '}') {\r
- r = ONIGENC_PROPERTY_NAME_TO_CTYPE(enc, start, prev);\r
- if (r < 0) break;\r
-\r
- *src = p;\r
- return r;\r
- }\r
- else if (c == '(' || c == ')' || c == '{' || c == '|') {\r
- r = ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
- break;\r
- }\r
- }\r
-\r
- onig_scan_env_set_error_string(env, r, *src, prev);\r
- return r;\r
-}\r
-\r
-static int\r
-parse_char_property(Node** np, PToken* tok, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r, ctype;\r
- CClassNode* cc;\r
-\r
- ctype = fetch_char_property_to_ctype(src, end, env);\r
- if (ctype < 0) return ctype;\r
-\r
- *np = node_new_cclass();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- cc = CCLASS_(*np);\r
- r = add_ctype_to_cc(cc, ctype, 0, env);\r
- if (r != 0) return r;\r
- if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc);\r
-\r
- return 0;\r
-}\r
-\r
-\r
-enum CCSTATE {\r
- CCS_VALUE,\r
- CCS_RANGE,\r
- CCS_COMPLETE,\r
- CCS_START\r
-};\r
-\r
-enum CCVALTYPE {\r
- CCV_SB,\r
- CCV_CODE_POINT,\r
- CCV_CLASS\r
-};\r
-\r
-static int\r
-next_state_class(CClassNode* cc, OnigCodePoint* vs, enum CCVALTYPE* type,\r
- enum CCSTATE* state, ScanEnv* env)\r
-{\r
- int r;\r
-\r
- if (*state == CCS_RANGE)\r
- return ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE;\r
-\r
- if (*state == CCS_VALUE && *type != CCV_CLASS) {\r
- if (*type == CCV_SB)\r
- BITSET_SET_BIT(cc->bs, (int )(*vs));\r
- else if (*type == CCV_CODE_POINT) {\r
- r = add_code_range(&(cc->mbuf), env, *vs, *vs);\r
- if (r < 0) return r;\r
- }\r
- }\r
-\r
- *state = CCS_VALUE;\r
- *type = CCV_CLASS;\r
- return 0;\r
-}\r
-\r
-static int\r
-next_state_val(CClassNode* cc, OnigCodePoint *from, OnigCodePoint to,\r
- int* from_israw, int to_israw,\r
- enum CCVALTYPE intype, enum CCVALTYPE* type,\r
- enum CCSTATE* state, ScanEnv* env)\r
-{\r
- int r;\r
-\r
- switch (*state) {\r
- case CCS_VALUE:\r
- if (*type == CCV_SB) {\r
- if (*from > 0xff)\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-\r
- BITSET_SET_BIT(cc->bs, (int )(*from));\r
- }\r
- else if (*type == CCV_CODE_POINT) {\r
- r = add_code_range(&(cc->mbuf), env, *from, *from);\r
- if (r < 0) return r;\r
- }\r
- break;\r
-\r
- case CCS_RANGE:\r
- if (intype == *type) {\r
- if (intype == CCV_SB) {\r
- if (*from > 0xff || to > 0xff)\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
-\r
- if (*from > to) {\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))\r
- goto ccs_range_end;\r
- else\r
- return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;\r
- }\r
- bitset_set_range(cc->bs, (int )*from, (int )to);\r
- }\r
- else {\r
- r = add_code_range(&(cc->mbuf), env, *from, to);\r
- if (r < 0) return r;\r
- }\r
- }\r
- else {\r
- if (*from > to) {\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC))\r
- goto ccs_range_end;\r
- else\r
- return ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS;\r
- }\r
- bitset_set_range(cc->bs, (int )*from, (int )(to < 0xff ? to : 0xff));\r
- r = add_code_range(&(cc->mbuf), env, (OnigCodePoint )*from, to);\r
- if (r < 0) return r;\r
- }\r
- ccs_range_end:\r
- *state = CCS_COMPLETE;\r
- break;\r
-\r
- case CCS_COMPLETE:\r
- case CCS_START:\r
- *state = CCS_VALUE;\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- *from_israw = to_israw;\r
- *from = to;\r
- *type = intype;\r
- return 0;\r
-}\r
-\r
-static int\r
-code_exist_check(OnigCodePoint c, UChar* from, UChar* end, int ignore_escaped,\r
- ScanEnv* env)\r
-{\r
- int in_esc;\r
- OnigCodePoint code;\r
- OnigEncoding enc = env->enc;\r
- UChar* p = from;\r
-\r
- in_esc = 0;\r
- while (! PEND) {\r
- if (ignore_escaped && in_esc) {\r
- in_esc = 0;\r
- }\r
- else {\r
- PFETCH_S(code);\r
- if (code == c) return 1;\r
- if (code == MC_ESC(env->syntax)) in_esc = 1;\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-parse_char_class(Node** np, PToken* tok, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r, neg, len, fetched, and_start;\r
- OnigCodePoint v, vs;\r
- UChar *p;\r
- Node* node;\r
- CClassNode *cc, *prev_cc;\r
- CClassNode work_cc;\r
-\r
- enum CCSTATE state;\r
- enum CCVALTYPE val_type, in_type;\r
- int val_israw, in_israw;\r
-\r
- *np = NULL_NODE;\r
- env->parse_depth++;\r
- if (env->parse_depth > ParseDepthLimit)\r
- return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\r
-\r
- prev_cc = (CClassNode* )NULL;\r
- r = fetch_token_in_cc(tok, src, end, env);\r
- if (r == TK_CHAR && tok->u.c == '^' && tok->escaped == 0) {\r
- neg = 1;\r
- r = fetch_token_in_cc(tok, src, end, env);\r
- }\r
- else {\r
- neg = 0;\r
- }\r
-\r
- if (r < 0) return r;\r
- if (r == TK_CC_CLOSE) {\r
- if (! code_exist_check((OnigCodePoint )']',\r
- *src, env->pattern_end, 1, env))\r
- return ONIGERR_EMPTY_CHAR_CLASS;\r
-\r
- CC_ESC_WARN(env, (UChar* )"]");\r
- r = tok->type = TK_CHAR; /* allow []...] */\r
- }\r
-\r
- *np = node = node_new_cclass();\r
- CHECK_NULL_RETURN_MEMERR(node);\r
- cc = CCLASS_(node);\r
-\r
- and_start = 0;\r
- state = CCS_START;\r
- p = *src;\r
- while (r != TK_CC_CLOSE) {\r
- fetched = 0;\r
- switch (r) {\r
- case TK_CHAR:\r
- any_char_in:\r
- len = ONIGENC_CODE_TO_MBCLEN(env->enc, tok->u.c);\r
- if (len > 1) {\r
- in_type = CCV_CODE_POINT;\r
- }\r
- else if (len < 0) {\r
- r = len;\r
- goto err;\r
- }\r
- else {\r
- /* sb_char: */\r
- in_type = CCV_SB;\r
- }\r
- v = (OnigCodePoint )tok->u.c;\r
- in_israw = 0;\r
- goto val_entry2;\r
- break;\r
-\r
- case TK_RAW_BYTE:\r
- /* tok->base != 0 : octal or hexadec. */\r
- if (! ONIGENC_IS_SINGLEBYTE(env->enc) && tok->base != 0) {\r
- int i, j;\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN];\r
- UChar* bufe = buf + ONIGENC_CODE_TO_MBC_MAXLEN;\r
- UChar* psave = p;\r
- int base = tok->base;\r
-\r
- buf[0] = tok->u.c;\r
- for (i = 1; i < ONIGENC_MBC_MAXLEN(env->enc); i++) {\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- if (r < 0) goto err;\r
- if (r != TK_RAW_BYTE || tok->base != base) {\r
- fetched = 1;\r
- break;\r
- }\r
- buf[i] = tok->u.c;\r
- }\r
-\r
- if (i < ONIGENC_MBC_MINLEN(env->enc)) {\r
- r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING;\r
- goto err;\r
- }\r
-\r
- /* clear buf tail */\r
- for (j = i; j < ONIGENC_CODE_TO_MBC_MAXLEN; j++) buf[j] = '\0';\r
-\r
- len = enclen(env->enc, buf);\r
- if (i < len) {\r
- r = ONIGERR_TOO_SHORT_MULTI_BYTE_STRING;\r
- goto err;\r
- }\r
- else if (i > len) { /* fetch back */\r
- p = psave;\r
- for (i = 1; i < len; i++) {\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- }\r
- fetched = 0;\r
- }\r
-\r
- if (i == 1) {\r
- v = (OnigCodePoint )buf[0];\r
- goto raw_single;\r
- }\r
- else {\r
- v = ONIGENC_MBC_TO_CODE(env->enc, buf, bufe);\r
- in_type = CCV_CODE_POINT;\r
- }\r
- }\r
- else {\r
- v = (OnigCodePoint )tok->u.c;\r
- raw_single:\r
- in_type = CCV_SB;\r
- }\r
- in_israw = 1;\r
- goto val_entry2;\r
- break;\r
-\r
- case TK_CODE_POINT:\r
- v = tok->u.code;\r
- in_israw = 1;\r
- val_entry:\r
- len = ONIGENC_CODE_TO_MBCLEN(env->enc, v);\r
- if (len < 0) {\r
- if (state != CCS_RANGE ||\r
- ! IS_SYNTAX_BV(env->syntax,\r
- ONIG_SYN_ALLOW_INVALID_CODE_END_OF_RANGE_IN_CC) ||\r
- v < 0x100 || ONIGENC_MBC_MAXLEN(env->enc) == 1) {\r
- r = len;\r
- goto err;\r
- }\r
- }\r
- in_type = (len == 1 ? CCV_SB : CCV_CODE_POINT);\r
- val_entry2:\r
- r = next_state_val(cc, &vs, v, &val_israw, in_israw, in_type, &val_type,\r
- &state, env);\r
- if (r != 0) goto err;\r
- break;\r
-\r
- case TK_POSIX_BRACKET_OPEN:\r
- r = parse_posix_bracket(cc, &p, end, env);\r
- if (r < 0) goto err;\r
- if (r == 1) { /* is not POSIX bracket */\r
- CC_ESC_WARN(env, (UChar* )"[");\r
- p = tok->backp;\r
- v = (OnigCodePoint )tok->u.c;\r
- in_israw = 0;\r
- goto val_entry;\r
- }\r
- goto next_class;\r
- break;\r
-\r
- case TK_CHAR_TYPE:\r
- r = add_ctype_to_cc(cc, tok->u.prop.ctype, tok->u.prop.not, env);\r
- if (r != 0) goto err;\r
-\r
- next_class:\r
- r = next_state_class(cc, &vs, &val_type, &state, env);\r
- if (r != 0) goto err;\r
- break;\r
-\r
- case TK_CHAR_PROPERTY:\r
- {\r
- int ctype = fetch_char_property_to_ctype(&p, end, env);\r
- if (ctype < 0) {\r
- r = ctype;\r
- goto err;\r
- }\r
- r = add_ctype_to_cc(cc, ctype, tok->u.prop.not, env);\r
- if (r != 0) goto err;\r
- goto next_class;\r
- }\r
- break;\r
-\r
- case TK_CC_RANGE:\r
- if (state == CCS_VALUE) {\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- if (r < 0) goto err;\r
- fetched = 1;\r
- if (r == TK_CC_CLOSE) { /* allow [x-] */\r
- range_end_val:\r
- v = (OnigCodePoint )'-';\r
- in_israw = 0;\r
- goto val_entry;\r
- }\r
- else if (r == TK_CC_AND) {\r
- CC_ESC_WARN(env, (UChar* )"-");\r
- goto range_end_val;\r
- }\r
-\r
- if (val_type == CCV_CLASS) {\r
- r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS;\r
- goto err;\r
- }\r
-\r
- state = CCS_RANGE;\r
- }\r
- else if (state == CCS_START) {\r
- /* [-xa] is allowed */\r
- v = (OnigCodePoint )tok->u.c;\r
- in_israw = 0;\r
-\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- if (r < 0) goto err;\r
- fetched = 1;\r
- /* [--x] or [a&&-x] is warned. */\r
- if (r == TK_CC_RANGE || and_start != 0)\r
- CC_ESC_WARN(env, (UChar* )"-");\r
-\r
- goto val_entry;\r
- }\r
- else if (state == CCS_RANGE) {\r
- CC_ESC_WARN(env, (UChar* )"-");\r
- goto any_char_in; /* [!--x] is allowed */\r
- }\r
- else { /* CCS_COMPLETE */\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- if (r < 0) goto err;\r
- fetched = 1;\r
- if (r == TK_CC_CLOSE) goto range_end_val; /* allow [a-b-] */\r
- else if (r == TK_CC_AND) {\r
- CC_ESC_WARN(env, (UChar* )"-");\r
- goto range_end_val;\r
- }\r
-\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC)) {\r
- CC_ESC_WARN(env, (UChar* )"-");\r
- goto range_end_val; /* [0-9-a] is allowed as [0-9\-a] */\r
- }\r
- r = ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS;\r
- goto err;\r
- }\r
- break;\r
-\r
- case TK_CC_CC_OPEN: /* [ */\r
- {\r
- Node *anode;\r
- CClassNode* acc;\r
-\r
- r = parse_char_class(&anode, tok, &p, end, env);\r
- if (r != 0) {\r
- onig_node_free(anode);\r
- goto cc_open_err;\r
- }\r
- acc = CCLASS_(anode);\r
- r = or_cclass(cc, acc, env->enc);\r
- onig_node_free(anode);\r
-\r
- cc_open_err:\r
- if (r != 0) goto err;\r
- }\r
- break;\r
-\r
- case TK_CC_AND: /* && */\r
- {\r
- if (state == CCS_VALUE) {\r
- r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,\r
- &val_type, &state, env);\r
- if (r != 0) goto err;\r
- }\r
- /* initialize local variables */\r
- and_start = 1;\r
- state = CCS_START;\r
-\r
- if (IS_NOT_NULL(prev_cc)) {\r
- r = and_cclass(prev_cc, cc, env->enc);\r
- if (r != 0) goto err;\r
- bbuf_free(cc->mbuf);\r
- }\r
- else {\r
- prev_cc = cc;\r
- cc = &work_cc;\r
- }\r
- initialize_cclass(cc);\r
- }\r
- break;\r
-\r
- case TK_EOT:\r
- r = ONIGERR_PREMATURE_END_OF_CHAR_CLASS;\r
- goto err;\r
- break;\r
- default:\r
- r = ONIGERR_PARSER_BUG;\r
- goto err;\r
- break;\r
- }\r
-\r
- if (fetched)\r
- r = tok->type;\r
- else {\r
- r = fetch_token_in_cc(tok, &p, end, env);\r
- if (r < 0) goto err;\r
- }\r
- }\r
-\r
- if (state == CCS_VALUE) {\r
- r = next_state_val(cc, &vs, 0, &val_israw, 0, val_type,\r
- &val_type, &state, env);\r
- if (r != 0) goto err;\r
- }\r
-\r
- if (IS_NOT_NULL(prev_cc)) {\r
- r = and_cclass(prev_cc, cc, env->enc);\r
- if (r != 0) goto err;\r
- bbuf_free(cc->mbuf);\r
- cc = prev_cc;\r
- }\r
-\r
- if (neg != 0)\r
- NCCLASS_SET_NOT(cc);\r
- else\r
- NCCLASS_CLEAR_NOT(cc);\r
- if (IS_NCCLASS_NOT(cc) &&\r
- IS_SYNTAX_BV(env->syntax, ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC)) {\r
- int is_empty = (IS_NULL(cc->mbuf) ? 1 : 0);\r
- if (is_empty != 0)\r
- BITSET_IS_EMPTY(cc->bs, is_empty);\r
-\r
- if (is_empty == 0) {\r
-#define NEWLINE_CODE 0x0a\r
-\r
- if (ONIGENC_IS_CODE_NEWLINE(env->enc, NEWLINE_CODE)) {\r
- if (ONIGENC_CODE_TO_MBCLEN(env->enc, NEWLINE_CODE) == 1)\r
- BITSET_SET_BIT(cc->bs, NEWLINE_CODE);\r
- else\r
- add_code_range(&(cc->mbuf), env, NEWLINE_CODE, NEWLINE_CODE);\r
- }\r
- }\r
- }\r
- *src = p;\r
- env->parse_depth--;\r
- return 0;\r
-\r
- err:\r
- if (cc != CCLASS_(*np))\r
- bbuf_free(cc->mbuf);\r
- return r;\r
-}\r
-\r
-static int parse_subexp(Node** top, PToken* tok, int term,\r
- UChar** src, UChar* end, ScanEnv* env, int group_head);\r
-\r
-#ifdef USE_CALLOUT\r
-\r
-/* (?{...}[tag][+-]) (?{{...}}[tag][+-]) */\r
-static int\r
-parse_callout_of_contents(Node** np, int cterm, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- int in;\r
- int num;\r
- OnigCodePoint c;\r
- UChar* code_start;\r
- UChar* code_end;\r
- UChar* contents;\r
- UChar* tag_start;\r
- UChar* tag_end;\r
- int brace_nest;\r
- CalloutListEntry* e;\r
- RegexExt* ext;\r
- OnigEncoding enc = env->enc;\r
- UChar* p = *src;\r
-\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- brace_nest = 0;\r
- while (PPEEK_IS('{')) {\r
- brace_nest++;\r
- PINC_S;\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
- }\r
-\r
- in = ONIG_CALLOUT_IN_PROGRESS;\r
- code_start = p;\r
- while (1) {\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- code_end = p;\r
- PFETCH_S(c);\r
- if (c == '}') {\r
- i = brace_nest;\r
- while (i > 0) {\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
- PFETCH_S(c);\r
- if (c == '}') i--;\r
- else break;\r
- }\r
- if (i == 0) break;\r
- }\r
- }\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- PFETCH_S(c);\r
- if (c == '[') {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- tag_end = tag_start = p;\r
- while (! PEND) {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- tag_end = p;\r
- PFETCH_S(c);\r
- if (c == ']') break;\r
- }\r
- if (! is_allowed_callout_tag_name(enc, tag_start, tag_end))\r
- return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
- else {\r
- tag_start = tag_end = 0;\r
- }\r
-\r
- if (c == 'X') {\r
- in |= ONIG_CALLOUT_IN_RETRACTION;\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
- else if (c == '<') {\r
- in = ONIG_CALLOUT_IN_RETRACTION;\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
- else if (c == '>') { /* no needs (default) */\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
-\r
- if (c != cterm)\r
- return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- r = reg_callout_list_entry(env, &num);\r
- if (r != 0) return r;\r
-\r
- ext = onig_get_regex_ext(env->reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
- if (IS_NULL(ext->pattern)) {\r
- r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- if (tag_start != tag_end) {\r
- r = callout_tag_entry(env, env->reg, tag_start, tag_end, num);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- contents = onigenc_strdup(enc, code_start, code_end);\r
- CHECK_NULL_RETURN_MEMERR(contents);\r
-\r
- r = node_new_callout(np, ONIG_CALLOUT_OF_CONTENTS, num, ONIG_NON_NAME_ID, env);\r
- if (r != 0) {\r
- xfree(contents);\r
- return r;\r
- }\r
-\r
- e = onig_reg_callout_list_at(env->reg, num);\r
- if (IS_NULL(e)) {\r
- xfree(contents);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- e->of = ONIG_CALLOUT_OF_CONTENTS;\r
- e->in = in;\r
- e->name_id = ONIG_NON_NAME_ID;\r
- e->u.content.start = contents;\r
- e->u.content.end = contents + (code_end - code_start);\r
-\r
- *src = p;\r
- return 0;\r
-}\r
-\r
-static long\r
-parse_long(OnigEncoding enc, UChar* s, UChar* end, int sign_on, long max, long* rl)\r
-{\r
- long v;\r
- long d;\r
- int flag;\r
- UChar* p;\r
- OnigCodePoint c;\r
-\r
- if (s >= end) return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- flag = 1;\r
- v = 0;\r
- p = s;\r
- while (p < end) {\r
- c = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- p += ONIGENC_MBC_ENC_LEN(enc, p);\r
- if (c >= '0' && c <= '9') {\r
- d = (long )(c - '0');\r
- if (v > (max - d) / 10)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- v = v * 10 + d;\r
- }\r
- else if (sign_on != 0 && (c == '-' || c == '+')) {\r
- if (c == '-') flag = -1;\r
- }\r
- else\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- sign_on = 0;\r
- }\r
-\r
- *rl = flag * v;\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static int\r
-parse_callout_args(int skip_mode, int cterm, UChar** src, UChar* end,\r
- unsigned int types[], OnigValue vals[], ScanEnv* env)\r
-{\r
-#define MAX_CALLOUT_ARG_BYTE_LENGTH 128\r
-\r
- int r;\r
- int n;\r
- int esc;\r
- int cn;\r
- UChar* s;\r
- UChar* e;\r
- UChar* eesc;\r
- OnigCodePoint c;\r
- UChar* bufend;\r
- UChar buf[MAX_CALLOUT_ARG_BYTE_LENGTH];\r
- OnigEncoding enc = env->enc;\r
- UChar* p = *src;\r
-\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- n = 0;\r
- while (n < ONIG_CALLOUT_MAX_ARGS_NUM) {\r
- c = 0;\r
- cn = 0;\r
- esc = 0;\r
- eesc = 0;\r
- bufend = buf;\r
- s = e = p;\r
- while (1) {\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- e = p;\r
- PFETCH_S(c);\r
- if (esc != 0) {\r
- esc = 0;\r
- if (c == '\\' || c == cterm || c == ',') {\r
- /* */\r
- }\r
- else {\r
- e = eesc;\r
- cn++;\r
- }\r
- goto add_char;\r
- }\r
- else {\r
- if (c == '\\') {\r
- esc = 1;\r
- eesc = e;\r
- }\r
- else if (c == cterm || c == ',')\r
- break;\r
- else {\r
- size_t clen;\r
-\r
- add_char:\r
- if (skip_mode == 0) {\r
- clen = p - e;\r
- if (bufend + clen > buf + MAX_CALLOUT_ARG_BYTE_LENGTH)\r
- return ONIGERR_INVALID_CALLOUT_ARG; /* too long argument */\r
-\r
- xmemcpy(bufend, e, clen);\r
- bufend += clen;\r
- }\r
- cn++;\r
- }\r
- }\r
- }\r
-\r
- if (cn != 0) {\r
- if (skip_mode == 0) {\r
- if ((types[n] & ONIG_TYPE_LONG) != 0) {\r
- int fixed = 0;\r
- if (cn > 0) {\r
- long rl;\r
- r = parse_long(enc, buf, bufend, 1, LONG_MAX, &rl);\r
- if (r == ONIG_NORMAL) {\r
- vals[n].l = rl;\r
- fixed = 1;\r
- types[n] = ONIG_TYPE_LONG;\r
- }\r
- }\r
-\r
- if (fixed == 0) {\r
- types[n] = (types[n] & ~ONIG_TYPE_LONG);\r
- if (types[n] == ONIG_TYPE_VOID)\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
- }\r
- }\r
-\r
- switch (types[n]) {\r
- case ONIG_TYPE_LONG:\r
- break;\r
-\r
- case ONIG_TYPE_CHAR:\r
- if (cn != 1) return ONIGERR_INVALID_CALLOUT_ARG;\r
- vals[n].c = ONIGENC_MBC_TO_CODE(enc, buf, bufend);\r
- break;\r
-\r
- case ONIG_TYPE_STRING:\r
- {\r
- UChar* rs = onigenc_strdup(enc, buf, bufend);\r
- CHECK_NULL_RETURN_MEMERR(rs);\r
- vals[n].s.start = rs;\r
- vals[n].s.end = rs + (e - s);\r
- }\r
- break;\r
-\r
- case ONIG_TYPE_TAG:\r
- if (eesc != 0 || ! is_allowed_callout_tag_name(enc, s, e))\r
- return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- vals[n].s.start = s;\r
- vals[n].s.end = e;\r
- break;\r
-\r
- case ONIG_TYPE_VOID:\r
- case ONIG_TYPE_POINTER:\r
- return ONIGERR_PARSER_BUG;\r
- break;\r
- }\r
- }\r
-\r
- n++;\r
- }\r
-\r
- if (c == cterm) break;\r
- }\r
-\r
- if (c != cterm) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- *src = p;\r
- return n;\r
-}\r
-\r
-/* (*name[TAG]) (*name[TAG]{a,b,..}) */\r
-static int\r
-parse_callout_of_name(Node** np, int cterm, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r;\r
- int i;\r
- int in;\r
- int num;\r
- int name_id;\r
- int arg_num;\r
- int max_arg_num;\r
- int opt_arg_num;\r
- int is_not_single;\r
- OnigCodePoint c;\r
- UChar* name_start;\r
- UChar* name_end;\r
- UChar* tag_start;\r
- UChar* tag_end;\r
- Node* node;\r
- CalloutListEntry* e;\r
- RegexExt* ext;\r
- unsigned int types[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- OnigValue vals[ONIG_CALLOUT_MAX_ARGS_NUM];\r
- OnigEncoding enc = env->enc;\r
- UChar* p = *src;\r
-\r
- /* PFETCH_READY; */\r
- if (PEND) return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- node = 0;\r
- name_start = p;\r
- while (1) {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- name_end = p;\r
- PFETCH_S(c);\r
- if (c == cterm || c == '[' || c == '{') break;\r
- }\r
-\r
- if (! is_allowed_callout_name(enc, name_start, name_end))\r
- return ONIGERR_INVALID_CALLOUT_NAME;\r
-\r
- if (c == '[') {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- tag_end = tag_start = p;\r
- while (! PEND) {\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- tag_end = p;\r
- PFETCH_S(c);\r
- if (c == ']') break;\r
- }\r
- if (! is_allowed_callout_tag_name(enc, tag_start, tag_end))\r
- return ONIGERR_INVALID_CALLOUT_TAG_NAME;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
- else {\r
- tag_start = tag_end = 0;\r
- }\r
-\r
- if (c == '{') {\r
- UChar* save;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- /* read for single check only */\r
- save = p;\r
- arg_num = parse_callout_args(1, '}', &p, end, 0, 0, env);\r
- if (arg_num < 0) return arg_num;\r
-\r
- is_not_single = PPEEK_IS(cterm) ? 0 : 1;\r
- p = save;\r
- r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end,\r
- &name_id);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- max_arg_num = get_callout_arg_num_by_name_id(name_id);\r
- for (i = 0; i < max_arg_num; i++) {\r
- types[i] = get_callout_arg_type_by_name_id(name_id, i);\r
- }\r
-\r
- arg_num = parse_callout_args(0, '}', &p, end, types, vals, env);\r
- if (arg_num < 0) return arg_num;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH_S(c);\r
- }\r
- else {\r
- arg_num = 0;\r
-\r
- is_not_single = 0;\r
- r = get_callout_name_id_by_name(enc, is_not_single, name_start, name_end,\r
- &name_id);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- max_arg_num = get_callout_arg_num_by_name_id(name_id);\r
- for (i = 0; i < max_arg_num; i++) {\r
- types[i] = get_callout_arg_type_by_name_id(name_id, i);\r
- }\r
- }\r
-\r
- in = onig_get_callout_in_by_name_id(name_id);\r
- opt_arg_num = get_callout_opt_arg_num_by_name_id(name_id);\r
- if (arg_num > max_arg_num || arg_num < (max_arg_num - opt_arg_num))\r
- return ONIGERR_INVALID_CALLOUT_ARG;\r
-\r
- if (c != cterm)\r
- return ONIGERR_INVALID_CALLOUT_PATTERN;\r
-\r
- r = reg_callout_list_entry(env, &num);\r
- if (r != 0) return r;\r
-\r
- ext = onig_get_regex_ext(env->reg);\r
- CHECK_NULL_RETURN_MEMERR(ext);\r
- if (IS_NULL(ext->pattern)) {\r
- r = onig_ext_set_pattern(env->reg, env->pattern, env->pattern_end);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- if (tag_start != tag_end) {\r
- r = callout_tag_entry(env, env->reg, tag_start, tag_end, num);\r
- if (r != ONIG_NORMAL) return r;\r
- }\r
-\r
- r = node_new_callout(&node, ONIG_CALLOUT_OF_NAME, num, name_id, env);\r
- if (r != ONIG_NORMAL) return r;\r
-\r
- e = onig_reg_callout_list_at(env->reg, num);\r
- CHECK_NULL_RETURN_MEMERR(e);\r
-\r
- e->of = ONIG_CALLOUT_OF_NAME;\r
- e->in = in;\r
- e->name_id = name_id;\r
- e->type = onig_get_callout_type_by_name_id(name_id);\r
- e->start_func = onig_get_callout_start_func_by_name_id(name_id);\r
- e->end_func = onig_get_callout_end_func_by_name_id(name_id);\r
- e->u.arg.num = max_arg_num;\r
- e->u.arg.passed_num = arg_num;\r
- for (i = 0; i < max_arg_num; i++) {\r
- e->u.arg.types[i] = types[i];\r
- if (i < arg_num)\r
- e->u.arg.vals[i] = vals[i];\r
- else\r
- e->u.arg.vals[i] = get_callout_opt_default_by_name_id(name_id, i);\r
- }\r
-\r
- *np = node;\r
- *src = p;\r
- return 0;\r
-}\r
-#endif\r
-\r
-static int\r
-parse_bag(Node** np, PToken* tok, int term, UChar** src, UChar* end,\r
- ScanEnv* env)\r
-{\r
- int r, num;\r
- Node *target;\r
- OnigOptionType option;\r
- OnigCodePoint c;\r
- int list_capture;\r
- OnigEncoding enc = env->enc;\r
-\r
- UChar* p = *src;\r
- PFETCH_READY;\r
-\r
- *np = NULL;\r
- if (PEND) return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS;\r
-\r
- option = env->options;\r
- c = PPEEK;\r
- if (c == '?' && IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_GROUP_EFFECT)) {\r
- PINC;\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- PFETCH(c);\r
- switch (c) {\r
- case ':': /* (?:...) grouping only */\r
- group:\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(np, tok, term, &p, end, env, 0);\r
- if (r < 0) return r;\r
- *src = p;\r
- return 1; /* group */\r
- break;\r
-\r
- case '=':\r
- *np = onig_node_new_anchor(ANCR_PREC_READ, 0);\r
- break;\r
- case '!': /* preceding read */\r
- *np = onig_node_new_anchor(ANCR_PREC_READ_NOT, 0);\r
- break;\r
- case '>': /* (?>...) stop backtrack */\r
- *np = node_new_bag(BAG_STOP_BACKTRACK);\r
- break;\r
-\r
- case '\'':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) {\r
- goto named_group1;\r
- }\r
- else\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- break;\r
-\r
- case '<': /* look behind (?<=...), (?<!...) */\r
- if (PEND) return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS;\r
- PFETCH(c);\r
- if (c == '=')\r
- *np = onig_node_new_anchor(ANCR_LOOK_BEHIND, 0);\r
- else if (c == '!')\r
- *np = onig_node_new_anchor(ANCR_LOOK_BEHIND_NOT, 0);\r
- else {\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) {\r
- UChar *name;\r
- UChar *name_end;\r
- enum REF_NUM num_type;\r
-\r
- PUNFETCH;\r
- c = '<';\r
-\r
- named_group1:\r
- list_capture = 0;\r
-\r
- named_group2:\r
- name = p;\r
- r = fetch_name((OnigCodePoint )c, &p, end, &name_end, env, &num,\r
- &num_type, 0);\r
- if (r < 0) return r;\r
-\r
- num = scan_env_add_mem_entry(env);\r
- if (num < 0) return num;\r
- if (list_capture != 0 && num >= (int )MEM_STATUS_BITS_NUM)\r
- return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY;\r
-\r
- r = name_add(env->reg, name, name_end, num, env);\r
- if (r != 0) return r;\r
- *np = node_new_memory(1);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- BAG_(*np)->m.regnum = num;\r
- if (list_capture != 0)\r
- MEM_STATUS_ON_SIMPLE(env->capture_history, num);\r
- env->num_named++;\r
- }\r
- else {\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
- }\r
- break;\r
-\r
- case '~':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP)) {\r
- Node* absent;\r
- Node* expr;\r
- int head_bar;\r
- int is_range_cutter;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- if (PPEEK_IS('|')) { /* (?~|generator|absent) */\r
- PINC;\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- head_bar = 1;\r
- if (PPEEK_IS(')')) { /* (?~|) : range clear */\r
- PINC;\r
- r = make_range_clear(np, env);\r
- if (r != 0) return r;\r
- goto end;\r
- }\r
- }\r
- else\r
- head_bar = 0;\r
-\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(&absent, tok, term, &p, end, env, 1);\r
- if (r < 0) {\r
- onig_node_free(absent);\r
- return r;\r
- }\r
-\r
- expr = NULL_NODE;\r
- is_range_cutter = 0;\r
- if (head_bar != 0) {\r
- Node* top = absent;\r
- if (NODE_TYPE(top) != NODE_ALT || IS_NULL(NODE_CDR(top))) {\r
- expr = NULL_NODE;\r
- is_range_cutter = 1;\r
- /* return ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN; */\r
- }\r
- else {\r
- absent = NODE_CAR(top);\r
- expr = NODE_CDR(top);\r
- NODE_CAR(top) = NULL_NODE;\r
- NODE_CDR(top) = NULL_NODE;\r
- onig_node_free(top);\r
- if (IS_NULL(NODE_CDR(expr))) {\r
- top = expr;\r
- expr = NODE_CAR(top);\r
- NODE_CAR(top) = NULL_NODE;\r
- onig_node_free(top);\r
- }\r
- }\r
- }\r
-\r
- r = make_absent_tree(np, absent, expr, is_range_cutter, env);\r
- if (r != 0) {\r
- return r;\r
- }\r
- goto end;\r
- }\r
- else {\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
- break;\r
-\r
-#ifdef USE_CALLOUT\r
- case '{':\r
- if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS))\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
-\r
- r = parse_callout_of_contents(np, ')', &p, end, env);\r
- if (r != 0) return r;\r
-\r
- goto end;\r
- break;\r
-#endif\r
-\r
- case '(':\r
- /* (?()...) */\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE)) {\r
- UChar *prev;\r
- Node* condition;\r
- int condition_is_checker;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH(c);\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
-\r
- if (IS_CODE_DIGIT_ASCII(enc, c)\r
- || c == '-' || c == '+' || c == '<' || c == '\'') {\r
- UChar* name_end;\r
- int back_num;\r
- int exist_level;\r
- int level;\r
- enum REF_NUM num_type;\r
- int is_enclosed;\r
-\r
- is_enclosed = (c == '<' || c == '\'') ? 1 : 0;\r
- if (! is_enclosed)\r
- PUNFETCH;\r
- prev = p;\r
- exist_level = 0;\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- name_end = NULL_UCHARP; /* no need. escape gcc warning. */\r
- r = fetch_name_with_level(\r
- (OnigCodePoint )(is_enclosed != 0 ? c : '('),\r
- &p, end, &name_end,\r
- env, &back_num, &level, &num_type);\r
- if (r == 1) exist_level = 1;\r
-#else\r
- r = fetch_name((OnigCodePoint )(is_enclosed != 0 ? c : '('),\r
- &p, end, &name_end, env, &back_num, &num_type, 1);\r
-#endif\r
- if (r < 0) {\r
- if (is_enclosed == 0) {\r
- goto any_condition;\r
- }\r
- else\r
- return r;\r
- }\r
-\r
- condition_is_checker = 1;\r
- if (num_type != IS_NOT_NUM) {\r
- if (num_type == IS_REL_NUM) {\r
- back_num = backref_rel_to_abs(back_num, env);\r
- }\r
- if (back_num <= 0)\r
- return ONIGERR_INVALID_BACKREF;\r
-\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) {\r
- if (back_num > env->num_mem ||\r
- IS_NULL(SCANENV_MEMENV(env)[back_num].node))\r
- return ONIGERR_INVALID_BACKREF;\r
- }\r
-\r
- condition = node_new_backref_checker(1, &back_num, 0,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- exist_level, level,\r
-#endif\r
- env);\r
- }\r
- else {\r
- int num;\r
- int* backs;\r
-\r
- num = name_to_group_numbers(env, prev, name_end, &backs);\r
- if (num <= 0) {\r
- return ONIGERR_UNDEFINED_NAME_REFERENCE;\r
- }\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_STRICT_CHECK_BACKREF)) {\r
- int i;\r
- for (i = 0; i < num; i++) {\r
- if (backs[i] > env->num_mem ||\r
- IS_NULL(SCANENV_MEMENV(env)[backs[i]].node))\r
- return ONIGERR_INVALID_BACKREF;\r
- }\r
- }\r
-\r
- condition = node_new_backref_checker(num, backs, 1,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- exist_level, level,\r
-#endif\r
- env);\r
- }\r
-\r
- if (is_enclosed != 0) {\r
- if (PEND) goto err_if_else;\r
- PFETCH(c);\r
- if (c != ')') goto err_if_else;\r
- }\r
- }\r
-#ifdef USE_CALLOUT\r
- else if (c == '?') {\r
- if (IS_SYNTAX_OP2(env->syntax,\r
- ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS)) {\r
- if (! PEND && PPEEK_IS('{')) {\r
- /* condition part is callouts of contents: (?(?{...})THEN|ELSE) */\r
- condition_is_checker = 0;\r
- PFETCH(c);\r
- r = parse_callout_of_contents(&condition, ')', &p, end, env);\r
- if (r != 0) return r;\r
- goto end_condition;\r
- }\r
- }\r
- goto any_condition;\r
- }\r
- else if (c == '*' &&\r
- IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) {\r
- condition_is_checker = 0;\r
- r = parse_callout_of_name(&condition, ')', &p, end, env);\r
- if (r != 0) return r;\r
- goto end_condition;\r
- }\r
-#endif\r
- else {\r
- any_condition:\r
- PUNFETCH;\r
- condition_is_checker = 0;\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(&condition, tok, term, &p, end, env, 0);\r
- if (r < 0) {\r
- onig_node_free(condition);\r
- return r;\r
- }\r
- }\r
-\r
-#ifdef USE_CALLOUT\r
- end_condition:\r
-#endif\r
- CHECK_NULL_RETURN_MEMERR(condition);\r
-\r
- if (PEND) {\r
- err_if_else:\r
- onig_node_free(condition);\r
- return ONIGERR_END_PATTERN_IN_GROUP;\r
- }\r
-\r
- if (PPEEK_IS(')')) { /* case: empty body: make backref checker */\r
- if (condition_is_checker == 0) {\r
- onig_node_free(condition);\r
- return ONIGERR_INVALID_IF_ELSE_SYNTAX;\r
- }\r
- PFETCH(c);\r
- *np = condition;\r
- }\r
- else { /* if-else */\r
- int then_is_empty;\r
- Node *Then, *Else;\r
-\r
- Then = 0;\r
- if (PPEEK_IS('|')) {\r
- PFETCH(c);\r
- then_is_empty = 1;\r
- }\r
- else\r
- then_is_empty = 0;\r
-\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) {\r
- onig_node_free(condition);\r
- return r;\r
- }\r
- r = parse_subexp(&target, tok, term, &p, end, env, 1);\r
- if (r < 0) {\r
- onig_node_free(condition);\r
- onig_node_free(target);\r
- return r;\r
- }\r
-\r
- if (then_is_empty != 0) {\r
- Else = target;\r
- }\r
- else {\r
- if (NODE_TYPE(target) == NODE_ALT) {\r
- Then = NODE_CAR(target);\r
- if (NODE_CDR(NODE_CDR(target)) == NULL_NODE) {\r
- Else = NODE_CAR(NODE_CDR(target));\r
- cons_node_free_alone(NODE_CDR(target));\r
- }\r
- else {\r
- Else = NODE_CDR(target);\r
- }\r
- cons_node_free_alone(target);\r
- }\r
- else {\r
- Then = target;\r
- Else = 0;\r
- }\r
- }\r
-\r
- *np = node_new_bag_if_else(condition, Then, Else);\r
- if (IS_NULL(*np)) {\r
- onig_node_free(condition);\r
- onig_node_free(Then);\r
- onig_node_free(Else);\r
- return ONIGERR_MEMORY;\r
- }\r
- }\r
- goto end;\r
- }\r
- else {\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
- break;\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
- case '@':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ATMARK_CAPTURE_HISTORY)) {\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP)) {\r
- PFETCH(c);\r
- if (c == '<' || c == '\'') {\r
- list_capture = 1;\r
- goto named_group2; /* (?@<name>...) */\r
- }\r
- PUNFETCH;\r
- }\r
-\r
- *np = node_new_memory(0);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- num = scan_env_add_mem_entry(env);\r
- if (num < 0) {\r
- return num;\r
- }\r
- else if (num >= (int )MEM_STATUS_BITS_NUM) {\r
- return ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY;\r
- }\r
- BAG_(*np)->m.regnum = num;\r
- MEM_STATUS_ON_SIMPLE(env->capture_history, num);\r
- }\r
- else {\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
- break;\r
-#endif\r
-\r
-#ifdef USE_POSIXLINE_OPTION\r
- case 'p':\r
-#endif\r
- case '-': case 'i': case 'm': case 's': case 'x':\r
- case 'W': case 'D': case 'S': case 'P':\r
- case 'y':\r
- {\r
- int neg = 0;\r
-\r
- while (1) {\r
- switch (c) {\r
- case ':':\r
- case ')':\r
- break;\r
-\r
- case '-': neg = 1; break;\r
- case 'x': OPTION_NEGATE(option, ONIG_OPTION_EXTEND, neg); break;\r
- case 'i': OPTION_NEGATE(option, ONIG_OPTION_IGNORECASE, neg); break;\r
- case 's':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) {\r
- OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg);\r
- }\r
- else\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- break;\r
-\r
- case 'm':\r
- if (IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_PERL)) {\r
- OPTION_NEGATE(option, ONIG_OPTION_SINGLELINE, (neg == 0 ? 1 : 0));\r
- }\r
- else if (IS_SYNTAX_OP2(env->syntax,\r
- ONIG_SYN_OP2_OPTION_ONIGURUMA|ONIG_SYN_OP2_OPTION_RUBY)) {\r
- OPTION_NEGATE(option, ONIG_OPTION_MULTILINE, neg);\r
- }\r
- else\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- break;\r
-#ifdef USE_POSIXLINE_OPTION\r
- case 'p':\r
- OPTION_NEGATE(option, ONIG_OPTION_MULTILINE|ONIG_OPTION_SINGLELINE, neg);\r
- break;\r
-#endif\r
- case 'W': OPTION_NEGATE(option, ONIG_OPTION_WORD_IS_ASCII, neg); break;\r
- case 'D': OPTION_NEGATE(option, ONIG_OPTION_DIGIT_IS_ASCII, neg); break;\r
- case 'S': OPTION_NEGATE(option, ONIG_OPTION_SPACE_IS_ASCII, neg); break;\r
- case 'P': OPTION_NEGATE(option, ONIG_OPTION_POSIX_IS_ASCII, neg); break;\r
-\r
- case 'y': /* y{g}, y{w} */\r
- {\r
- if (! IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_OPTION_ONIGURUMA))\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
-\r
- if (neg != 0) return ONIGERR_UNDEFINED_GROUP_OPTION;\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- if (! PPEEK_IS('{')) return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- PFETCH(c);\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH(c);\r
- switch (c) {\r
- case 'g':\r
- if (! ONIGENC_IS_UNICODE_ENCODING(enc))\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
-\r
- OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, 0);\r
- OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, 1);\r
- break;\r
-#ifdef USE_UNICODE_WORD_BREAK\r
- case 'w':\r
- if (! ONIGENC_IS_UNICODE_ENCODING(enc))\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
-\r
- OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_WORD, 0);\r
- OPTION_NEGATE(option, ONIG_OPTION_TEXT_SEGMENT_EXTENDED_GRAPHEME_CLUSTER, 1);\r
- break;\r
-#endif\r
- default:\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- break;\r
- }\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH(c);\r
- if (c != '}')\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- break;\r
- } /* case 'y' */\r
-\r
- default:\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
-\r
- if (c == ')') {\r
- *np = node_new_option(option);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- *src = p;\r
- return 2; /* option only */\r
- }\r
- else if (c == ':') {\r
- OnigOptionType prev = env->options;\r
-\r
- env->options = option;\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(&target, tok, term, &p, end, env, 0);\r
- env->options = prev;\r
- if (r < 0) {\r
- onig_node_free(target);\r
- return r;\r
- }\r
- *np = node_new_option(option);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- NODE_BODY(*np) = target;\r
- *src = p;\r
- return 0;\r
- }\r
-\r
- if (PEND) return ONIGERR_END_PATTERN_IN_GROUP;\r
- PFETCH(c);\r
- } /* while (1) */\r
- }\r
- break;\r
-\r
- default:\r
- return ONIGERR_UNDEFINED_GROUP_OPTION;\r
- }\r
- }\r
-#ifdef USE_CALLOUT\r
- else if (c == '*' &&\r
- IS_SYNTAX_OP2(env->syntax, ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME)) {\r
- PINC;\r
- r = parse_callout_of_name(np, ')', &p, end, env);\r
- if (r != 0) return r;\r
-\r
- goto end;\r
- }\r
-#endif\r
- else {\r
- if (ONIG_IS_OPTION_ON(env->options, ONIG_OPTION_DONT_CAPTURE_GROUP))\r
- goto group;\r
-\r
- *np = node_new_memory(0);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- num = scan_env_add_mem_entry(env);\r
- if (num < 0) return num;\r
- BAG_(*np)->m.regnum = num;\r
- }\r
-\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- r = fetch_token(tok, &p, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(&target, tok, term, &p, end, env, 0);\r
- if (r < 0) {\r
- onig_node_free(target);\r
- return r;\r
- }\r
-\r
- NODE_BODY(*np) = target;\r
-\r
- if (NODE_TYPE(*np) == NODE_BAG) {\r
- if (BAG_(*np)->type == BAG_MEMORY) {\r
- /* Don't move this to previous of parse_subexp() */\r
- r = scan_env_set_mem_node(env, BAG_(*np)->m.regnum, *np);\r
- if (r != 0) return r;\r
- }\r
- }\r
-\r
- end:\r
- *src = p;\r
- return 0;\r
-}\r
-\r
-static const char* PopularQStr[] = {\r
- "?", "*", "+", "??", "*?", "+?"\r
-};\r
-\r
-static const char* ReduceQStr[] = {\r
- "", "", "*", "*?", "??", "+ and ??", "+? and ?"\r
-};\r
-\r
-static int\r
-set_quantifier(Node* qnode, Node* target, int group, ScanEnv* env)\r
-{\r
- QuantNode* qn;\r
-\r
- qn = QUANT_(qnode);\r
- if (qn->lower == 1 && qn->upper == 1)\r
- return 1;\r
-\r
- switch (NODE_TYPE(target)) {\r
- case NODE_STRING:\r
- if (group == 0) {\r
- if (str_node_can_be_split(target, env->enc)) {\r
- Node* n = str_node_split_last_char(target, env->enc);\r
- if (IS_NOT_NULL(n)) {\r
- NODE_BODY(qnode) = n;\r
- return 2;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case NODE_QUANT:\r
- { /* check redundant double repeat. */\r
- /* verbose warn (?:.?)? etc... but not warn (.?)? etc... */\r
- QuantNode* qnt = QUANT_(target);\r
- int nestq_num = quantifier_type_num(qn);\r
- int targetq_num = quantifier_type_num(qnt);\r
-\r
-#ifdef USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR\r
- if (targetq_num >= 0 && nestq_num >= 0 &&\r
- IS_SYNTAX_BV(env->syntax, ONIG_SYN_WARN_REDUNDANT_NESTED_REPEAT)) {\r
- UChar buf[WARN_BUFSIZE];\r
-\r
- switch(ReduceTypeTable[targetq_num][nestq_num]) {\r
- case RQ_ASIS:\r
- break;\r
-\r
- case RQ_DEL:\r
- if (onig_verb_warn != onig_null_warn) {\r
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,\r
- env->pattern, env->pattern_end,\r
- (UChar* )"redundant nested repeat operator");\r
- (*onig_verb_warn)((char* )buf);\r
- }\r
- goto warn_exit;\r
- break;\r
-\r
- default:\r
- if (onig_verb_warn != onig_null_warn) {\r
- onig_snprintf_with_pattern(buf, WARN_BUFSIZE, env->enc,\r
- env->pattern, env->pattern_end,\r
- (UChar* )"nested repeat operator %s and %s was replaced with '%s'",\r
- PopularQStr[targetq_num], PopularQStr[nestq_num],\r
- ReduceQStr[ReduceTypeTable[targetq_num][nestq_num]]);\r
- (*onig_verb_warn)((char* )buf);\r
- }\r
- goto warn_exit;\r
- break;\r
- }\r
- }\r
-\r
- warn_exit:\r
-#endif\r
- if (targetq_num >= 0 && nestq_num < 0) {\r
- if (targetq_num == 1 || targetq_num == 2) { /* * or + */\r
- /* (?:a*){n,m}, (?:a+){n,m} => (?:a*){n,n}, (?:a+){n,n} */\r
- if (! IS_INFINITE_REPEAT(qn->upper) && qn->upper > 1 && qn->greedy) {\r
- qn->upper = (qn->lower == 0 ? 1 : qn->lower);\r
- }\r
- }\r
- }\r
- else {\r
- NODE_BODY(qnode) = target;\r
- onig_reduce_nested_quantifier(qnode, target);\r
- goto q_exit;\r
- }\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- NODE_BODY(qnode) = target;\r
- q_exit:\r
- return 0;\r
-}\r
-\r
-\r
-#ifndef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS\r
-static int\r
-clear_not_flag_cclass(CClassNode* cc, OnigEncoding enc)\r
-{\r
- BBuf *tbuf;\r
- int r;\r
-\r
- if (IS_NCCLASS_NOT(cc)) {\r
- bitset_invert(cc->bs);\r
-\r
- if (! ONIGENC_IS_SINGLEBYTE(enc)) {\r
- r = not_code_range_buf(enc, cc->mbuf, &tbuf);\r
- if (r != 0) return r;\r
-\r
- bbuf_free(cc->mbuf);\r
- cc->mbuf = tbuf;\r
- }\r
-\r
- NCCLASS_CLEAR_NOT(cc);\r
- }\r
-\r
- return 0;\r
-}\r
-#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */\r
-\r
-typedef struct {\r
- ScanEnv* env;\r
- CClassNode* cc;\r
- Node* alt_root;\r
- Node** ptail;\r
-} IApplyCaseFoldArg;\r
-\r
-static int\r
-i_apply_case_fold(OnigCodePoint from, OnigCodePoint to[], int to_len, void* arg)\r
-{\r
- IApplyCaseFoldArg* iarg;\r
- ScanEnv* env;\r
- CClassNode* cc;\r
- BitSetRef bs;\r
-\r
- iarg = (IApplyCaseFoldArg* )arg;\r
- env = iarg->env;\r
- cc = iarg->cc;\r
- bs = cc->bs;\r
-\r
- if (to_len == 1) {\r
- int is_in = onig_is_code_in_cc(env->enc, from, cc);\r
-#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS\r
- if ((is_in != 0 && !IS_NCCLASS_NOT(cc)) ||\r
- (is_in == 0 && IS_NCCLASS_NOT(cc))) {\r
- if (ONIGENC_MBC_MINLEN(env->enc) > 1 || *to >= SINGLE_BYTE_SIZE) {\r
- add_code_range(&(cc->mbuf), env, *to, *to);\r
- }\r
- else {\r
- BITSET_SET_BIT(bs, *to);\r
- }\r
- }\r
-#else\r
- if (is_in != 0) {\r
- if (ONIGENC_MBC_MINLEN(env->enc) > 1 || *to >= SINGLE_BYTE_SIZE) {\r
- if (IS_NCCLASS_NOT(cc)) clear_not_flag_cclass(cc, env->enc);\r
- add_code_range(&(cc->mbuf), env, *to, *to);\r
- }\r
- else {\r
- if (IS_NCCLASS_NOT(cc)) {\r
- BITSET_CLEAR_BIT(bs, *to);\r
- }\r
- else\r
- BITSET_SET_BIT(bs, *to);\r
- }\r
- }\r
-#endif /* CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS */\r
- }\r
- else {\r
- int r, i, len;\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN];\r
- Node *snode = NULL_NODE;\r
-\r
- if (onig_is_code_in_cc(env->enc, from, cc)\r
-#ifdef CASE_FOLD_IS_APPLIED_INSIDE_NEGATIVE_CCLASS\r
- && !IS_NCCLASS_NOT(cc)\r
-#endif\r
- ) {\r
- for (i = 0; i < to_len; i++) {\r
- len = ONIGENC_CODE_TO_MBC(env->enc, to[i], buf);\r
- if (i == 0) {\r
- snode = onig_node_new_str(buf, buf + len);\r
- CHECK_NULL_RETURN_MEMERR(snode);\r
-\r
- /* char-class expanded multi-char only\r
- compare with string folded at match time. */\r
- NODE_STRING_SET_AMBIG(snode);\r
- }\r
- else {\r
- r = onig_node_str_cat(snode, buf, buf + len);\r
- if (r < 0) {\r
- onig_node_free(snode);\r
- return r;\r
- }\r
- }\r
- }\r
-\r
- *(iarg->ptail) = onig_node_new_alt(snode, NULL_NODE);\r
- CHECK_NULL_RETURN_MEMERR(*(iarg->ptail));\r
- iarg->ptail = &(NODE_CDR((*(iarg->ptail))));\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-parse_exp(Node** np, PToken* tok, int term, UChar** src, UChar* end,\r
- ScanEnv* env, int group_head)\r
-{\r
- int r, len, group;\r
- Node* qn;\r
- Node** tp;\r
- unsigned int parse_depth;\r
-\r
- group = 0;\r
- *np = NULL;\r
- if (tok->type == (enum TokenSyms )term)\r
- goto end_of_token;\r
-\r
- parse_depth = env->parse_depth;\r
-\r
- switch (tok->type) {\r
- case TK_ALT:\r
- case TK_EOT:\r
- end_of_token:\r
- *np = node_new_empty();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- return tok->type;\r
- break;\r
-\r
- case TK_SUBEXP_OPEN:\r
- r = parse_bag(np, tok, TK_SUBEXP_CLOSE, src, end, env);\r
- if (r < 0) return r;\r
- if (r == 1) { /* group */\r
- if (group_head == 0)\r
- group = 1;\r
- else {\r
- Node* target = *np;\r
- *np = node_new_group(target);\r
- if (IS_NULL(*np)) {\r
- onig_node_free(target);\r
- return ONIGERR_MEMORY;\r
- }\r
- group = 2;\r
- }\r
- }\r
- else if (r == 2) { /* option only */\r
- Node* target;\r
- OnigOptionType prev = env->options;\r
-\r
- env->options = BAG_(*np)->o.options;\r
- r = fetch_token(tok, src, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(&target, tok, term, src, end, env, 0);\r
- env->options = prev;\r
- if (r < 0) {\r
- onig_node_free(target);\r
- return r;\r
- }\r
- NODE_BODY(*np) = target;\r
- return tok->type;\r
- }\r
- break;\r
-\r
- case TK_SUBEXP_CLOSE:\r
- if (! IS_SYNTAX_BV(env->syntax, ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP))\r
- return ONIGERR_UNMATCHED_CLOSE_PARENTHESIS;\r
-\r
- if (tok->escaped) goto tk_raw_byte;\r
- else goto tk_byte;\r
- break;\r
-\r
- case TK_STRING:\r
- tk_byte:\r
- {\r
- *np = node_new_str(tok->backp, *src);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
-\r
- while (1) {\r
- r = fetch_token(tok, src, end, env);\r
- if (r < 0) return r;\r
- if (r != TK_STRING) break;\r
-\r
- r = onig_node_str_cat(*np, tok->backp, *src);\r
- if (r < 0) return r;\r
- }\r
-\r
- string_end:\r
- tp = np;\r
- goto repeat;\r
- }\r
- break;\r
-\r
- case TK_RAW_BYTE:\r
- tk_raw_byte:\r
- {\r
- *np = node_new_str_raw_char((UChar )tok->u.c);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- len = 1;\r
- while (1) {\r
- if (len >= ONIGENC_MBC_MINLEN(env->enc)) {\r
- if (len == enclen(env->enc, STR_(*np)->s)) {\r
- r = fetch_token(tok, src, end, env);\r
- goto tk_raw_byte_end;\r
- }\r
- }\r
-\r
- r = fetch_token(tok, src, end, env);\r
- if (r < 0) return r;\r
- if (r != TK_RAW_BYTE)\r
- return ONIGERR_TOO_SHORT_MULTI_BYTE_STRING;\r
-\r
- r = node_str_cat_char(*np, (UChar )tok->u.c);\r
- if (r < 0) return r;\r
-\r
- len++;\r
- }\r
-\r
- tk_raw_byte_end:\r
- if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, STR_(*np)->s, STR_(*np)->end))\r
- return ONIGERR_INVALID_WIDE_CHAR_VALUE;\r
-\r
- NODE_STRING_CLEAR_RAW(*np);\r
- goto string_end;\r
- }\r
- break;\r
-\r
- case TK_CODE_POINT:\r
- {\r
- UChar buf[ONIGENC_CODE_TO_MBC_MAXLEN];\r
- len = ONIGENC_CODE_TO_MBC(env->enc, tok->u.code, buf);\r
- if (len < 0) return len;\r
-#ifdef NUMBERED_CHAR_IS_NOT_CASE_AMBIG\r
- *np = node_new_str_raw(buf, buf + len);\r
-#else\r
- *np = node_new_str(buf, buf + len);\r
-#endif\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- }\r
- break;\r
-\r
- case TK_QUOTE_OPEN:\r
- {\r
- OnigCodePoint end_op[2];\r
- UChar *qstart, *qend, *nextp;\r
-\r
- end_op[0] = (OnigCodePoint )MC_ESC(env->syntax);\r
- end_op[1] = (OnigCodePoint )'E';\r
- qstart = *src;\r
- qend = find_str_position(end_op, 2, qstart, end, &nextp, env->enc);\r
- if (IS_NULL(qend)) {\r
- nextp = qend = end;\r
- }\r
- *np = node_new_str(qstart, qend);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- *src = nextp;\r
- }\r
- break;\r
-\r
- case TK_CHAR_TYPE:\r
- {\r
- switch (tok->u.prop.ctype) {\r
- case ONIGENC_CTYPE_WORD:\r
- *np = node_new_ctype(tok->u.prop.ctype, tok->u.prop.not, env->options);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- break;\r
-\r
- case ONIGENC_CTYPE_SPACE:\r
- case ONIGENC_CTYPE_DIGIT:\r
- case ONIGENC_CTYPE_XDIGIT:\r
- {\r
- CClassNode* cc;\r
-\r
- *np = node_new_cclass();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- cc = CCLASS_(*np);\r
- add_ctype_to_cc(cc, tok->u.prop.ctype, 0, env);\r
- if (tok->u.prop.not != 0) NCCLASS_SET_NOT(cc);\r
- }\r
- break;\r
-\r
- default:\r
- return ONIGERR_PARSER_BUG;\r
- break;\r
- }\r
- }\r
- break;\r
-\r
- case TK_CHAR_PROPERTY:\r
- r = parse_char_property(np, tok, src, end, env);\r
- if (r != 0) return r;\r
- break;\r
-\r
- case TK_CC_OPEN:\r
- {\r
- CClassNode* cc;\r
-\r
- r = parse_char_class(np, tok, src, end, env);\r
- if (r != 0) return r;\r
-\r
- cc = CCLASS_(*np);\r
- if (IS_IGNORECASE(env->options)) {\r
- IApplyCaseFoldArg iarg;\r
-\r
- iarg.env = env;\r
- iarg.cc = cc;\r
- iarg.alt_root = NULL_NODE;\r
- iarg.ptail = &(iarg.alt_root);\r
-\r
- r = ONIGENC_APPLY_ALL_CASE_FOLD(env->enc, env->case_fold_flag,\r
- i_apply_case_fold, &iarg);\r
- if (r != 0) {\r
- onig_node_free(iarg.alt_root);\r
- return r;\r
- }\r
- if (IS_NOT_NULL(iarg.alt_root)) {\r
- Node* work = onig_node_new_alt(*np, iarg.alt_root);\r
- if (IS_NULL(work)) {\r
- onig_node_free(iarg.alt_root);\r
- return ONIGERR_MEMORY;\r
- }\r
- *np = work;\r
- }\r
- }\r
- }\r
- break;\r
-\r
- case TK_ANYCHAR:\r
- *np = node_new_anychar();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- break;\r
-\r
- case TK_ANYCHAR_ANYTIME:\r
- *np = node_new_anychar();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- qn = node_new_quantifier(0, INFINITE_REPEAT, 0);\r
- CHECK_NULL_RETURN_MEMERR(qn);\r
- NODE_BODY(qn) = *np;\r
- *np = qn;\r
- break;\r
-\r
- case TK_BACKREF:\r
- len = tok->u.backref.num;\r
- *np = node_new_backref(len,\r
- (len > 1 ? tok->u.backref.refs : &(tok->u.backref.ref1)),\r
- tok->u.backref.by_name,\r
-#ifdef USE_BACKREF_WITH_LEVEL\r
- tok->u.backref.exist_level,\r
- tok->u.backref.level,\r
-#endif\r
- env);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- break;\r
-\r
-#ifdef USE_CALL\r
- case TK_CALL:\r
- {\r
- int gnum = tok->u.call.gnum;\r
-\r
- *np = node_new_call(tok->u.call.name, tok->u.call.name_end,\r
- gnum, tok->u.call.by_number);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- env->num_call++;\r
- if (tok->u.call.by_number != 0 && gnum == 0) {\r
- env->has_call_zero = 1;\r
- }\r
- }\r
- break;\r
-#endif\r
-\r
- case TK_ANCHOR:\r
- {\r
- int ascii_mode =\r
- IS_WORD_ASCII(env->options) && IS_WORD_ANCHOR_TYPE(tok->u.anchor) ? 1 : 0;\r
- *np = onig_node_new_anchor(tok->u.anchor, ascii_mode);\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- }\r
- break;\r
-\r
- case TK_REPEAT:\r
- case TK_INTERVAL:\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS)) {\r
- if (IS_SYNTAX_BV(env->syntax, ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS))\r
- return ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED;\r
- else {\r
- *np = node_new_empty();\r
- CHECK_NULL_RETURN_MEMERR(*np);\r
- }\r
- }\r
- else {\r
- goto tk_byte;\r
- }\r
- break;\r
-\r
- case TK_KEEP:\r
- r = node_new_keep(np, env);\r
- if (r < 0) return r;\r
- break;\r
-\r
- case TK_GENERAL_NEWLINE:\r
- r = node_new_general_newline(np, env);\r
- if (r < 0) return r;\r
- break;\r
-\r
- case TK_NO_NEWLINE:\r
- r = node_new_no_newline(np, env);\r
- if (r < 0) return r;\r
- break;\r
-\r
- case TK_TRUE_ANYCHAR:\r
- r = node_new_true_anychar(np, env);\r
- if (r < 0) return r;\r
- break;\r
-\r
- case TK_TEXT_SEGMENT:\r
- r = make_text_segment(np, env);\r
- if (r < 0) return r;\r
- break;\r
-\r
- default:\r
- return ONIGERR_PARSER_BUG;\r
- break;\r
- }\r
-\r
- {\r
- tp = np;\r
-\r
- re_entry:\r
- r = fetch_token(tok, src, end, env);\r
- if (r < 0) return r;\r
-\r
- repeat:\r
- if (r == TK_REPEAT || r == TK_INTERVAL) {\r
- Node* target;\r
-\r
- if (is_invalid_quantifier_target(*tp))\r
- return ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID;\r
-\r
- parse_depth++;\r
- if (parse_depth > ParseDepthLimit)\r
- return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\r
-\r
- qn = node_new_quantifier(tok->u.repeat.lower, tok->u.repeat.upper,\r
- r == TK_INTERVAL);\r
- CHECK_NULL_RETURN_MEMERR(qn);\r
- QUANT_(qn)->greedy = tok->u.repeat.greedy;\r
- if (group == 2) {\r
- target = node_drop_group(*tp);\r
- *tp = NULL_NODE;\r
- }\r
- else {\r
- target = *tp;\r
- }\r
- r = set_quantifier(qn, target, group, env);\r
- if (r < 0) {\r
- onig_node_free(qn);\r
- return r;\r
- }\r
-\r
- if (tok->u.repeat.possessive != 0) {\r
- Node* en;\r
- en = node_new_bag(BAG_STOP_BACKTRACK);\r
- if (IS_NULL(en)) {\r
- onig_node_free(qn);\r
- return ONIGERR_MEMORY;\r
- }\r
- NODE_BODY(en) = qn;\r
- qn = en;\r
- }\r
-\r
- if (r == 0) {\r
- *tp = qn;\r
- }\r
- else if (r == 1) { /* x{1,1} ==> x */\r
- onig_node_free(qn);\r
- *tp = target;\r
- }\r
- else if (r == 2) { /* split case: /abc+/ */\r
- Node *tmp;\r
-\r
- *tp = node_new_list(*tp, NULL);\r
- if (IS_NULL(*tp)) {\r
- onig_node_free(qn);\r
- return ONIGERR_MEMORY;\r
- }\r
- tmp = NODE_CDR(*tp) = node_new_list(qn, NULL);\r
- if (IS_NULL(tmp)) {\r
- onig_node_free(qn);\r
- return ONIGERR_MEMORY;\r
- }\r
- tp = &(NODE_CAR(tmp));\r
- }\r
- group = 0;\r
- goto re_entry;\r
- }\r
- }\r
-\r
- return r;\r
-}\r
-\r
-static int\r
-parse_branch(Node** top, PToken* tok, int term, UChar** src, UChar* end,\r
- ScanEnv* env, int group_head)\r
-{\r
- int r;\r
- Node *node, **headp;\r
-\r
- *top = NULL;\r
- r = parse_exp(&node, tok, term, src, end, env, group_head);\r
- if (r < 0) {\r
- onig_node_free(node);\r
- return r;\r
- }\r
-\r
- if (r == TK_EOT || r == term || r == TK_ALT) {\r
- *top = node;\r
- }\r
- else {\r
- *top = node_new_list(node, NULL);\r
- if (IS_NULL(*top)) {\r
- onig_node_free(node);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- headp = &(NODE_CDR(*top));\r
- while (r != TK_EOT && r != term && r != TK_ALT) {\r
- r = parse_exp(&node, tok, term, src, end, env, 0);\r
- if (r < 0) {\r
- onig_node_free(node);\r
- return r;\r
- }\r
-\r
- if (NODE_TYPE(node) == NODE_LIST) {\r
- *headp = node;\r
- while (IS_NOT_NULL(NODE_CDR(node))) node = NODE_CDR(node);\r
- headp = &(NODE_CDR(node));\r
- }\r
- else {\r
- *headp = node_new_list(node, NULL);\r
- headp = &(NODE_CDR(*headp));\r
- }\r
- }\r
- }\r
-\r
- return r;\r
-}\r
-\r
-/* term_tok: TK_EOT or TK_SUBEXP_CLOSE */\r
-static int\r
-parse_subexp(Node** top, PToken* tok, int term, UChar** src, UChar* end,\r
- ScanEnv* env, int group_head)\r
-{\r
- int r;\r
- Node *node, **headp;\r
-\r
- *top = NULL;\r
- env->parse_depth++;\r
- if (env->parse_depth > ParseDepthLimit)\r
- return ONIGERR_PARSE_DEPTH_LIMIT_OVER;\r
-\r
- r = parse_branch(&node, tok, term, src, end, env, group_head);\r
- if (r < 0) {\r
- onig_node_free(node);\r
- return r;\r
- }\r
-\r
- if (r == term) {\r
- *top = node;\r
- }\r
- else if (r == TK_ALT) {\r
- *top = onig_node_new_alt(node, NULL);\r
- if (IS_NULL(*top)) {\r
- onig_node_free(node);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- headp = &(NODE_CDR(*top));\r
- while (r == TK_ALT) {\r
- r = fetch_token(tok, src, end, env);\r
- if (r < 0) return r;\r
- r = parse_branch(&node, tok, term, src, end, env, 0);\r
- if (r < 0) {\r
- onig_node_free(node);\r
- return r;\r
- }\r
- *headp = onig_node_new_alt(node, NULL);\r
- if (IS_NULL(*headp)) {\r
- onig_node_free(node);\r
- onig_node_free(*top);\r
- return ONIGERR_MEMORY;\r
- }\r
-\r
- headp = &(NODE_CDR(*headp));\r
- }\r
-\r
- if (tok->type != (enum TokenSyms )term)\r
- goto err;\r
- }\r
- else {\r
- onig_node_free(node);\r
- err:\r
- if (term == TK_SUBEXP_CLOSE)\r
- return ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS;\r
- else\r
- return ONIGERR_PARSER_BUG;\r
- }\r
-\r
- env->parse_depth--;\r
- return r;\r
-}\r
-\r
-static int\r
-parse_regexp(Node** top, UChar** src, UChar* end, ScanEnv* env)\r
-{\r
- int r;\r
- PToken tok;\r
-\r
- r = fetch_token(&tok, src, end, env);\r
- if (r < 0) return r;\r
- r = parse_subexp(top, &tok, TK_EOT, src, end, env, 0);\r
- if (r < 0) return r;\r
-\r
- return 0;\r
-}\r
-\r
-#ifdef USE_CALL\r
-static int\r
-make_call_zero_body(Node* node, ScanEnv* env, Node** rnode)\r
-{\r
- int r;\r
-\r
- Node* x = node_new_memory(0 /* 0: is not named */);\r
- CHECK_NULL_RETURN_MEMERR(x);\r
-\r
- NODE_BODY(x) = node;\r
- BAG_(x)->m.regnum = 0;\r
- r = scan_env_set_mem_node(env, 0, x);\r
- if (r != 0) {\r
- onig_node_free(x);\r
- return r;\r
- }\r
-\r
- *rnode = x;\r
- return 0;\r
-}\r
-#endif\r
-\r
-extern int\r
-onig_parse_tree(Node** root, const UChar* pattern, const UChar* end,\r
- regex_t* reg, ScanEnv* env)\r
-{\r
- int r;\r
- UChar* p;\r
-#ifdef USE_CALLOUT\r
- RegexExt* ext;\r
-#endif\r
-\r
- names_clear(reg);\r
-\r
- scan_env_clear(env);\r
- env->options = reg->options;\r
- env->case_fold_flag = reg->case_fold_flag;\r
- env->enc = reg->enc;\r
- env->syntax = reg->syntax;\r
- env->pattern = (UChar* )pattern;\r
- env->pattern_end = (UChar* )end;\r
- env->reg = reg;\r
-\r
- *root = NULL;\r
-\r
- if (! ONIGENC_IS_VALID_MBC_STRING(env->enc, pattern, end))\r
- return ONIGERR_INVALID_WIDE_CHAR_VALUE;\r
-\r
- p = (UChar* )pattern;\r
- r = parse_regexp(root, &p, (UChar* )end, env);\r
-\r
-#ifdef USE_CALL\r
- if (r != 0) return r;\r
-\r
- if (env->has_call_zero != 0) {\r
- Node* zero_node;\r
- r = make_call_zero_body(*root, env, &zero_node);\r
- if (r != 0) return r;\r
-\r
- *root = zero_node;\r
- }\r
-#endif\r
-\r
- reg->num_mem = env->num_mem;\r
-\r
-#ifdef USE_CALLOUT\r
- ext = reg->extp;\r
- if (IS_NOT_NULL(ext) && ext->callout_num > 0) {\r
- r = setup_ext_callout_list_values(reg);\r
- }\r
-#endif\r
-\r
- return r;\r
-}\r
-\r
-extern void\r
-onig_scan_env_set_error_string(ScanEnv* env, int ecode ARG_UNUSED,\r
- UChar* arg, UChar* arg_end)\r
-{\r
- env->error = arg;\r
- env->error_end = arg_end;\r
-}\r
+++ /dev/null
-#ifndef REGPARSE_H\r
-#define REGPARSE_H\r
-/**********************************************************************\r
- regparse.h - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-#define NODE_STRING_MARGIN 16\r
-#define NODE_STRING_BUF_SIZE 24 /* sizeof(CClassNode) - sizeof(int)*4 */\r
-#define NODE_BACKREFS_SIZE 6\r
-\r
-/* node type */\r
-typedef enum {\r
- NODE_STRING = 0,\r
- NODE_CCLASS = 1,\r
- NODE_CTYPE = 2,\r
- NODE_BACKREF = 3,\r
- NODE_QUANT = 4,\r
- NODE_BAG = 5,\r
- NODE_ANCHOR = 6,\r
- NODE_LIST = 7,\r
- NODE_ALT = 8,\r
- NODE_CALL = 9,\r
- NODE_GIMMICK = 10\r
-} NodeType;\r
-\r
-enum BagType {\r
- BAG_MEMORY = 0,\r
- BAG_OPTION = 1,\r
- BAG_STOP_BACKTRACK = 2,\r
- BAG_IF_ELSE = 3,\r
-};\r
-\r
-enum GimmickType {\r
- GIMMICK_FAIL = 0,\r
- GIMMICK_SAVE = 1,\r
- GIMMICK_UPDATE_VAR = 2,\r
-#ifdef USE_CALLOUT\r
- GIMMICK_CALLOUT = 3,\r
-#endif\r
-};\r
-\r
-enum BodyEmptyType {\r
- BODY_IS_NOT_EMPTY = 0,\r
- BODY_IS_EMPTY_POSSIBILITY = 1,\r
- BODY_IS_EMPTY_POSSIBILITY_MEM = 2,\r
- BODY_IS_EMPTY_POSSIBILITY_REC = 3\r
-};\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- UChar* s;\r
- UChar* end;\r
- unsigned int flag;\r
- int capacity; /* (allocated size - 1) or 0: use buf[] */\r
- UChar buf[NODE_STRING_BUF_SIZE];\r
-} StrNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- unsigned int flags;\r
- BitSet bs;\r
- BBuf* mbuf; /* multi-byte info or NULL */\r
-} CClassNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
- struct _Node* body;\r
-\r
- int lower;\r
- int upper;\r
- int greedy;\r
- enum BodyEmptyType emptiness;\r
- struct _Node* head_exact;\r
- struct _Node* next_head_exact;\r
- int is_refered; /* include called node. don't eliminate even if {0} */\r
-} QuantNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
- struct _Node* body;\r
-\r
- enum BagType type;\r
- union {\r
- struct {\r
- int regnum;\r
- AbsAddrType called_addr;\r
- int entry_count;\r
- int called_state;\r
- } m;\r
- struct {\r
- OnigOptionType options;\r
- } o;\r
- struct {\r
- /* body is condition */\r
- struct _Node* Then;\r
- struct _Node* Else;\r
- } te;\r
- };\r
- /* for multiple call reference */\r
- OnigLen min_len; /* min length (byte) */\r
- OnigLen max_len; /* max length (byte) */\r
- int char_len; /* character length */\r
- int opt_count; /* referenced count in optimize_nodes() */\r
-} BagNode;\r
-\r
-#ifdef USE_CALL\r
-\r
-typedef struct {\r
- int offset;\r
- struct _Node* target;\r
-} UnsetAddr;\r
-\r
-typedef struct {\r
- int num;\r
- int alloc;\r
- UnsetAddr* us;\r
-} UnsetAddrList;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
- struct _Node* body; /* to BagNode : BAG_MEMORY */\r
-\r
- int by_number;\r
- int group_num;\r
- UChar* name;\r
- UChar* name_end;\r
- int entry_count;\r
-} CallNode;\r
-\r
-#endif\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- int back_num;\r
- int back_static[NODE_BACKREFS_SIZE];\r
- int* back_dynamic;\r
- int nest_level;\r
-} BackRefNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
- struct _Node* body;\r
-\r
- int type;\r
- int char_len;\r
- int ascii_mode;\r
-} AnchorNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- struct _Node* car;\r
- struct _Node* cdr;\r
-} ConsAltNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- int ctype;\r
- int not;\r
- OnigOptionType options;\r
- int ascii_mode;\r
-} CtypeNode;\r
-\r
-typedef struct {\r
- NodeType node_type;\r
- int status;\r
-\r
- enum GimmickType type;\r
- int detail_type;\r
- int num;\r
- int id;\r
-} GimmickNode;\r
-\r
-typedef struct _Node {\r
- union {\r
- struct {\r
- NodeType node_type;\r
- int status;\r
- struct _Node* body;\r
- } base;\r
-\r
- StrNode str;\r
- CClassNode cclass;\r
- QuantNode quant;\r
- BagNode bag;\r
- BackRefNode backref;\r
- AnchorNode anchor;\r
- ConsAltNode cons;\r
- CtypeNode ctype;\r
-#ifdef USE_CALL\r
- CallNode call;\r
-#endif\r
- GimmickNode gimmick;\r
- } u;\r
-} Node;\r
-\r
-#define NULL_NODE ((Node* )0)\r
-\r
-\r
-/* node type bit */\r
-#define NODE_TYPE2BIT(type) (1<<(type))\r
-\r
-#define NODE_BIT_STRING NODE_TYPE2BIT(NODE_STRING)\r
-#define NODE_BIT_CCLASS NODE_TYPE2BIT(NODE_CCLASS)\r
-#define NODE_BIT_CTYPE NODE_TYPE2BIT(NODE_CTYPE)\r
-#define NODE_BIT_BACKREF NODE_TYPE2BIT(NODE_BACKREF)\r
-#define NODE_BIT_QUANT NODE_TYPE2BIT(NODE_QUANT)\r
-#define NODE_BIT_BAG NODE_TYPE2BIT(NODE_BAG)\r
-#define NODE_BIT_ANCHOR NODE_TYPE2BIT(NODE_ANCHOR)\r
-#define NODE_BIT_LIST NODE_TYPE2BIT(NODE_LIST)\r
-#define NODE_BIT_ALT NODE_TYPE2BIT(NODE_ALT)\r
-#define NODE_BIT_CALL NODE_TYPE2BIT(NODE_CALL)\r
-#define NODE_BIT_GIMMICK NODE_TYPE2BIT(NODE_GIMMICK)\r
-\r
-#define NODE_TYPE(node) ((node)->u.base.node_type)\r
-#define NODE_SET_TYPE(node, ntype) (node)->u.base.node_type = (ntype)\r
-\r
-#define STR_(node) (&((node)->u.str))\r
-#define CCLASS_(node) (&((node)->u.cclass))\r
-#define CTYPE_(node) (&((node)->u.ctype))\r
-#define BACKREF_(node) (&((node)->u.backref))\r
-#define QUANT_(node) (&((node)->u.quant))\r
-#define BAG_(node) (&((node)->u.bag))\r
-#define ANCHOR_(node) (&((node)->u.anchor))\r
-#define CONS_(node) (&((node)->u.cons))\r
-#define CALL_(node) (&((node)->u.call))\r
-#define GIMMICK_(node) (&((node)->u.gimmick))\r
-\r
-#define NODE_CAR(node) (CONS_(node)->car)\r
-#define NODE_CDR(node) (CONS_(node)->cdr)\r
-\r
-#define CTYPE_ANYCHAR -1\r
-#define NODE_IS_ANYCHAR(node) \\r
- (NODE_TYPE(node) == NODE_CTYPE && CTYPE_(node)->ctype == CTYPE_ANYCHAR)\r
-\r
-#define CTYPE_OPTION(node, reg) \\r
- (NODE_IS_FIXED_OPTION(node) ? CTYPE_(node)->options : reg->options)\r
-\r
-\r
-#define ANCR_ANYCHAR_INF_MASK (ANCR_ANYCHAR_INF | ANCR_ANYCHAR_INF_ML)\r
-#define ANCR_END_BUF_MASK (ANCR_END_BUF | ANCR_SEMI_END_BUF)\r
-\r
-#define NODE_STRING_RAW (1<<0) /* by backslashed number */\r
-#define NODE_STRING_AMBIG (1<<1)\r
-#define NODE_STRING_GOOD_AMBIG (1<<2)\r
-#define NODE_STRING_DONT_GET_OPT_INFO (1<<3)\r
-\r
-#define NODE_STRING_LEN(node) (int )((node)->u.str.end - (node)->u.str.s)\r
-#define NODE_STRING_SET_RAW(node) (node)->u.str.flag |= NODE_STRING_RAW\r
-#define NODE_STRING_CLEAR_RAW(node) (node)->u.str.flag &= ~NODE_STRING_RAW\r
-#define NODE_STRING_SET_AMBIG(node) (node)->u.str.flag |= NODE_STRING_AMBIG\r
-#define NODE_STRING_SET_GOOD_AMBIG(node) (node)->u.str.flag |= NODE_STRING_GOOD_AMBIG\r
-#define NODE_STRING_SET_DONT_GET_OPT_INFO(node) \\r
- (node)->u.str.flag |= NODE_STRING_DONT_GET_OPT_INFO\r
-#define NODE_STRING_IS_RAW(node) \\r
- (((node)->u.str.flag & NODE_STRING_RAW) != 0)\r
-#define NODE_STRING_IS_AMBIG(node) \\r
- (((node)->u.str.flag & NODE_STRING_AMBIG) != 0)\r
-#define NODE_STRING_IS_GOOD_AMBIG(node) \\r
- (((node)->u.str.flag & NODE_STRING_GOOD_AMBIG) != 0)\r
-#define NODE_STRING_IS_DONT_GET_OPT_INFO(node) \\r
- (((node)->u.str.flag & NODE_STRING_DONT_GET_OPT_INFO) != 0)\r
-\r
-#define BACKREFS_P(br) \\r
- (IS_NOT_NULL((br)->back_dynamic) ? (br)->back_dynamic : (br)->back_static)\r
-\r
-/* node status bits */\r
-#define NODE_ST_MIN_FIXED (1<<0)\r
-#define NODE_ST_MAX_FIXED (1<<1)\r
-#define NODE_ST_CLEN_FIXED (1<<2)\r
-#define NODE_ST_MARK1 (1<<3)\r
-#define NODE_ST_MARK2 (1<<4)\r
-#define NODE_ST_STRICT_REAL_REPEAT (1<<5)\r
-#define NODE_ST_RECURSION (1<<6)\r
-#define NODE_ST_CALLED (1<<7)\r
-#define NODE_ST_ADDR_FIXED (1<<8)\r
-#define NODE_ST_NAMED_GROUP (1<<9)\r
-#define NODE_ST_IN_REAL_REPEAT (1<<10) /* STK_REPEAT is nested in stack. */\r
-#define NODE_ST_IN_ZERO_REPEAT (1<<11) /* (....){0} */\r
-#define NODE_ST_IN_MULTI_ENTRY (1<<12)\r
-#define NODE_ST_NEST_LEVEL (1<<13)\r
-#define NODE_ST_BY_NUMBER (1<<14) /* {n,m} */\r
-#define NODE_ST_BY_NAME (1<<15) /* backref by name */\r
-#define NODE_ST_BACKREF (1<<16)\r
-#define NODE_ST_CHECKER (1<<17)\r
-#define NODE_ST_FIXED_OPTION (1<<18)\r
-#define NODE_ST_PROHIBIT_RECURSION (1<<19)\r
-#define NODE_ST_SUPER (1<<20)\r
-\r
-\r
-#define NODE_STATUS(node) (((Node* )node)->u.base.status)\r
-#define NODE_STATUS_ADD(node,f) (NODE_STATUS(node) |= (NODE_ST_ ## f))\r
-#define NODE_STATUS_REMOVE(node,f) (NODE_STATUS(node) &= ~(NODE_ST_ ## f))\r
-\r
-#define NODE_IS_BY_NUMBER(node) ((NODE_STATUS(node) & NODE_ST_BY_NUMBER) != 0)\r
-#define NODE_IS_IN_REAL_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_REAL_REPEAT) != 0)\r
-#define NODE_IS_CALLED(node) ((NODE_STATUS(node) & NODE_ST_CALLED) != 0)\r
-#define NODE_IS_IN_MULTI_ENTRY(node) ((NODE_STATUS(node) & NODE_ST_IN_MULTI_ENTRY) != 0)\r
-#define NODE_IS_RECURSION(node) ((NODE_STATUS(node) & NODE_ST_RECURSION) != 0)\r
-#define NODE_IS_IN_ZERO_REPEAT(node) ((NODE_STATUS(node) & NODE_ST_IN_ZERO_REPEAT) != 0)\r
-#define NODE_IS_NAMED_GROUP(node) ((NODE_STATUS(node) & NODE_ST_NAMED_GROUP) != 0)\r
-#define NODE_IS_ADDR_FIXED(node) ((NODE_STATUS(node) & NODE_ST_ADDR_FIXED) != 0)\r
-#define NODE_IS_CLEN_FIXED(node) ((NODE_STATUS(node) & NODE_ST_CLEN_FIXED) != 0)\r
-#define NODE_IS_MIN_FIXED(node) ((NODE_STATUS(node) & NODE_ST_MIN_FIXED) != 0)\r
-#define NODE_IS_MAX_FIXED(node) ((NODE_STATUS(node) & NODE_ST_MAX_FIXED) != 0)\r
-#define NODE_IS_MARK1(node) ((NODE_STATUS(node) & NODE_ST_MARK1) != 0)\r
-#define NODE_IS_MARK2(node) ((NODE_STATUS(node) & NODE_ST_MARK2) != 0)\r
-#define NODE_IS_NEST_LEVEL(node) ((NODE_STATUS(node) & NODE_ST_NEST_LEVEL) != 0)\r
-#define NODE_IS_BY_NAME(node) ((NODE_STATUS(node) & NODE_ST_BY_NAME) != 0)\r
-#define NODE_IS_BACKREF(node) ((NODE_STATUS(node) & NODE_ST_BACKREF) != 0)\r
-#define NODE_IS_CHECKER(node) ((NODE_STATUS(node) & NODE_ST_CHECKER) != 0)\r
-#define NODE_IS_FIXED_OPTION(node) ((NODE_STATUS(node) & NODE_ST_FIXED_OPTION) != 0)\r
-#define NODE_IS_SUPER(node) ((NODE_STATUS(node) & NODE_ST_SUPER) != 0)\r
-#define NODE_IS_PROHIBIT_RECURSION(node) \\r
- ((NODE_STATUS(node) & NODE_ST_PROHIBIT_RECURSION) != 0)\r
-#define NODE_IS_STRICT_REAL_REPEAT(node) \\r
- ((NODE_STATUS(node) & NODE_ST_STRICT_REAL_REPEAT) != 0)\r
-\r
-#define NODE_BODY(node) ((node)->u.base.body)\r
-#define NODE_QUANT_BODY(node) ((node)->body)\r
-#define NODE_BAG_BODY(node) ((node)->body)\r
-#define NODE_CALL_BODY(node) ((node)->body)\r
-#define NODE_ANCHOR_BODY(node) ((node)->body)\r
-\r
-#define SCANENV_MEMENV_SIZE 8\r
-#define SCANENV_MEMENV(senv) \\r
- (IS_NOT_NULL((senv)->mem_env_dynamic) ? \\r
- (senv)->mem_env_dynamic : (senv)->mem_env_static)\r
-\r
-typedef struct {\r
- Node* node;\r
-#if 0\r
- int in;\r
- int recursion;\r
-#endif\r
-} MemEnv;\r
-\r
-typedef struct {\r
- enum SaveType type;\r
-} SaveItem;\r
-\r
-typedef struct {\r
- OnigOptionType options;\r
- OnigCaseFoldType case_fold_flag;\r
- OnigEncoding enc;\r
- OnigSyntaxType* syntax;\r
- MemStatusType capture_history;\r
- MemStatusType bt_mem_start;\r
- MemStatusType bt_mem_end;\r
- MemStatusType backrefed_mem;\r
- UChar* pattern;\r
- UChar* pattern_end;\r
- UChar* error;\r
- UChar* error_end;\r
- regex_t* reg; /* for reg->names only */\r
- int num_call;\r
-#ifdef USE_CALL\r
- UnsetAddrList* unset_addr_list;\r
- int has_call_zero;\r
-#endif\r
- int num_mem;\r
- int num_named;\r
- int mem_alloc;\r
- MemEnv mem_env_static[SCANENV_MEMENV_SIZE];\r
- MemEnv* mem_env_dynamic;\r
- unsigned int parse_depth;\r
-\r
- int keep_num;\r
- int save_num;\r
- int save_alloc_num;\r
- SaveItem* saves;\r
-} ScanEnv;\r
-\r
-\r
-#define IS_SYNTAX_OP(syn, opm) (((syn)->op & (opm)) != 0)\r
-#define IS_SYNTAX_OP2(syn, opm) (((syn)->op2 & (opm)) != 0)\r
-#define IS_SYNTAX_BV(syn, bvm) (((syn)->behavior & (bvm)) != 0)\r
-\r
-typedef struct {\r
- int new_val;\r
-} GroupNumRemap;\r
-\r
-extern int onig_renumber_name_table P_((regex_t* reg, GroupNumRemap* map));\r
-\r
-extern int onig_strncmp P_((const UChar* s1, const UChar* s2, int n));\r
-extern void onig_strcpy P_((UChar* dest, const UChar* src, const UChar* end));\r
-extern void onig_scan_env_set_error_string P_((ScanEnv* env, int ecode, UChar* arg, UChar* arg_end));\r
-extern int onig_scan_unsigned_number P_((UChar** src, const UChar* end, OnigEncoding enc));\r
-extern void onig_reduce_nested_quantifier P_((Node* pnode, Node* cnode));\r
-extern void onig_node_conv_to_str_node P_((Node* node, int raw));\r
-extern int onig_node_str_cat P_((Node* node, const UChar* s, const UChar* end));\r
-extern int onig_node_str_set P_((Node* node, const UChar* s, const UChar* end));\r
-extern void onig_node_free P_((Node* node));\r
-extern Node* onig_node_new_bag P_((enum BagType type));\r
-extern Node* onig_node_new_anchor P_((int type, int ascii_mode));\r
-extern Node* onig_node_new_str P_((const UChar* s, const UChar* end));\r
-extern Node* onig_node_new_list P_((Node* left, Node* right));\r
-extern Node* onig_node_list_add P_((Node* list, Node* x));\r
-extern Node* onig_node_new_alt P_((Node* left, Node* right));\r
-extern void onig_node_str_clear P_((Node* node));\r
-extern int onig_names_free P_((regex_t* reg));\r
-extern int onig_parse_tree P_((Node** root, const UChar* pattern, const UChar* end, regex_t* reg, ScanEnv* env));\r
-extern int onig_free_shared_cclass_table P_((void));\r
-extern int onig_is_code_in_cc P_((OnigEncoding enc, OnigCodePoint code, CClassNode* cc));\r
-extern OnigLen onig_get_tiny_min_len(Node* node, unsigned int inhibit_node_types, int* invalid_node);\r
-\r
-#ifdef USE_CALLOUT\r
-extern int onig_global_callout_names_free(void);\r
-#endif\r
-\r
-#ifdef ONIG_DEBUG\r
-extern int onig_print_names(FILE*, regex_t*);\r
-#endif\r
-\r
-#endif /* REGPARSE_H */\r
+++ /dev/null
-/**********************************************************************\r
- regposerr.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-/* Can't include regint.h etc.. for conflict of regex_t.\r
- Define ONIGURUMA_EXPORT here for onigposix.h.\r
- */\r
-#ifndef ONIGURUMA_EXPORT\r
-#define ONIGURUMA_EXPORT\r
-#endif\r
-\r
-//#include "config.h"\r
-#include "onigposix.h"\r
-\r
-//#include <string.h>\r
-\r
-#if defined(__GNUC__)\r
-# define ARG_UNUSED __attribute__ ((unused))\r
-#else\r
-# define ARG_UNUSED\r
-#endif\r
-\r
-#if defined(_WIN32) && !defined(__GNUC__)\r
-#define xsnprintf sprintf_s\r
-#define xstrncpy(dest,src,size) strncpy_s(dest,size,src,_TRUNCATE)\r
-#else\r
-#define xsnprintf snprintf\r
-#define xstrncpy strncpy\r
-#endif\r
-\r
-static char* ESTRING[] = {\r
- NULL,\r
- "failed to match", /* REG_NOMATCH */\r
- "Invalid regular expression", /* REG_BADPAT */\r
- "invalid collating element referenced", /* REG_ECOLLATE */\r
- "invalid character class type referenced", /* REG_ECTYPE */\r
- "bad backslash-escape sequence", /* REG_EESCAPE */\r
- "invalid back reference number", /* REG_ESUBREG */\r
- "imbalanced [ and ]", /* REG_EBRACK */\r
- "imbalanced ( and )", /* REG_EPAREN */\r
- "imbalanced { and }", /* REG_EBRACE */\r
- "invalid repeat range {n,m}", /* REG_BADBR */\r
- "invalid range", /* REG_ERANGE */\r
- "Out of memory", /* REG_ESPACE */\r
- "? * + not preceded by valid regular expression", /* REG_BADRPT */\r
-\r
- /* Extended errors */\r
- "internal error", /* REG_EONIG_INTERNAL */\r
- "invalid wide char value", /* REG_EONIG_BADWC */\r
- "invalid argument" /* REG_EONIG_BADARG */\r
-};\r
-\r
-//#include <stdio.h>\r
-\r
-\r
-extern size_t\r
-regerror(int posix_ecode, const regex_t* reg ARG_UNUSED, char* buf,\r
- size_t size)\r
-{\r
- char* s;\r
- char tbuf[35];\r
- size_t len;\r
-\r
- if (posix_ecode > 0\r
- && posix_ecode < (int )(sizeof(ESTRING) / sizeof(ESTRING[0]))) {\r
- s = ESTRING[posix_ecode];\r
- }\r
- else if (posix_ecode == 0) {\r
- s = "";\r
- }\r
- else {\r
- sprintf_s(tbuf, sizeof(tbuf), "undefined error code (%d)", posix_ecode);\r
- s = tbuf;\r
- }\r
-\r
- len = strlen_s(s, MAX_STRING_SIZE) + 1; /* use strlen() because s is ascii encoding. */\r
-\r
- if (buf != NULL && size > 0) {\r
- strncpy_s(buf, size, s, size - 1);\r
- buf[size - 1] = '\0';\r
- }\r
- return len;\r
-}\r
+++ /dev/null
-/**********************************************************************\r
- regposix.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#define regex_t onig_regex_t\r
-#include "regint.h"\r
-#undef regex_t\r
-\r
-#include "onigposix.h"\r
-\r
-#define ONIG_C(reg) ((onig_regex_t* )((reg)->onig))\r
-#define PONIG_C(reg) ((onig_regex_t** )(&(reg)->onig))\r
-\r
-/* #define ENC_STRING_LEN(enc,s,len) len = strlen(s) */\r
-#define ENC_STRING_LEN(enc,s,len) do { \\r
- if (ONIGENC_MBC_MINLEN(enc) == 1) { \\r
- UChar* tmps = (UChar* )(s); \\r
- while (*tmps != 0) tmps++; \\r
- len = (int )(tmps - (UChar* )(s));\\r
- } \\r
- else { \\r
- len = onigenc_str_bytelen_null(enc, (UChar* )s); \\r
- } \\r
-} while(0)\r
-\r
-typedef struct {\r
- int onig_err;\r
- int posix_err;\r
-} O2PERR;\r
-\r
-static int\r
-onig2posix_error_code(int code)\r
-{\r
- static const O2PERR o2p[] = {\r
- { ONIG_MISMATCH, REG_NOMATCH },\r
- { ONIG_NO_SUPPORT_CONFIG, REG_EONIG_INTERNAL },\r
- { ONIG_ABORT, REG_EONIG_INTERNAL },\r
- { ONIGERR_MEMORY, REG_ESPACE },\r
- { ONIGERR_MATCH_STACK_LIMIT_OVER, REG_EONIG_INTERNAL },\r
- { ONIGERR_RETRY_LIMIT_IN_MATCH_OVER, REG_EONIG_INTERNAL },\r
- { ONIGERR_TYPE_BUG, REG_EONIG_INTERNAL },\r
- { ONIGERR_PARSER_BUG, REG_EONIG_INTERNAL },\r
- { ONIGERR_STACK_BUG, REG_EONIG_INTERNAL },\r
- { ONIGERR_UNDEFINED_BYTECODE, REG_EONIG_INTERNAL },\r
- { ONIGERR_UNEXPECTED_BYTECODE, REG_EONIG_INTERNAL },\r
- { ONIGERR_DEFAULT_ENCODING_IS_NOT_SETTED, REG_EONIG_BADARG },\r
- { ONIGERR_SPECIFIED_ENCODING_CANT_CONVERT_TO_WIDE_CHAR, REG_EONIG_BADARG },\r
- { ONIGERR_FAIL_TO_INITIALIZE, REG_EONIG_INTERNAL },\r
- { ONIGERR_INVALID_ARGUMENT, REG_EONIG_BADARG },\r
- { ONIGERR_END_PATTERN_AT_LEFT_BRACE, REG_EBRACE },\r
- { ONIGERR_END_PATTERN_AT_LEFT_BRACKET, REG_EBRACK },\r
- { ONIGERR_EMPTY_CHAR_CLASS, REG_ECTYPE },\r
- { ONIGERR_PREMATURE_END_OF_CHAR_CLASS, REG_ECTYPE },\r
- { ONIGERR_END_PATTERN_AT_ESCAPE, REG_EESCAPE },\r
- { ONIGERR_END_PATTERN_AT_META, REG_EESCAPE },\r
- { ONIGERR_END_PATTERN_AT_CONTROL, REG_EESCAPE },\r
- { ONIGERR_META_CODE_SYNTAX, REG_BADPAT },\r
- { ONIGERR_CONTROL_CODE_SYNTAX, REG_BADPAT },\r
- { ONIGERR_CHAR_CLASS_VALUE_AT_END_OF_RANGE, REG_ECTYPE },\r
- { ONIGERR_CHAR_CLASS_VALUE_AT_START_OF_RANGE, REG_ECTYPE },\r
- { ONIGERR_UNMATCHED_RANGE_SPECIFIER_IN_CHAR_CLASS, REG_ECTYPE },\r
- { ONIGERR_TARGET_OF_REPEAT_OPERATOR_NOT_SPECIFIED, REG_BADRPT },\r
- { ONIGERR_TARGET_OF_REPEAT_OPERATOR_INVALID, REG_BADRPT },\r
- { ONIGERR_NESTED_REPEAT_OPERATOR, REG_BADRPT },\r
- { ONIGERR_UNMATCHED_CLOSE_PARENTHESIS, REG_EPAREN },\r
- { ONIGERR_END_PATTERN_WITH_UNMATCHED_PARENTHESIS, REG_EPAREN },\r
- { ONIGERR_END_PATTERN_IN_GROUP, REG_BADPAT },\r
- { ONIGERR_UNDEFINED_GROUP_OPTION, REG_BADPAT },\r
- { ONIGERR_INVALID_POSIX_BRACKET_TYPE, REG_BADPAT },\r
- { ONIGERR_INVALID_LOOK_BEHIND_PATTERN, REG_BADPAT },\r
- { ONIGERR_INVALID_REPEAT_RANGE_PATTERN, REG_BADPAT },\r
- { ONIGERR_TOO_BIG_NUMBER, REG_BADPAT },\r
- { ONIGERR_TOO_BIG_NUMBER_FOR_REPEAT_RANGE, REG_BADBR },\r
- { ONIGERR_UPPER_SMALLER_THAN_LOWER_IN_REPEAT_RANGE, REG_BADBR },\r
- { ONIGERR_EMPTY_RANGE_IN_CHAR_CLASS, REG_ECTYPE },\r
- { ONIGERR_MISMATCH_CODE_LENGTH_IN_CLASS_RANGE, REG_ECTYPE },\r
- { ONIGERR_TOO_MANY_MULTI_BYTE_RANGES, REG_ECTYPE },\r
- { ONIGERR_TOO_SHORT_MULTI_BYTE_STRING, REG_BADPAT },\r
- { ONIGERR_TOO_BIG_BACKREF_NUMBER, REG_ESUBREG },\r
- { ONIGERR_INVALID_BACKREF, REG_ESUBREG },\r
- { ONIGERR_NUMBERED_BACKREF_OR_CALL_NOT_ALLOWED, REG_BADPAT },\r
- { ONIGERR_TOO_BIG_WIDE_CHAR_VALUE, REG_EONIG_BADWC },\r
- { ONIGERR_TOO_LONG_WIDE_CHAR_VALUE, REG_EONIG_BADWC },\r
- { ONIGERR_INVALID_CODE_POINT_VALUE, REG_EONIG_BADWC },\r
- { ONIGERR_EMPTY_GROUP_NAME, REG_BADPAT },\r
- { ONIGERR_INVALID_GROUP_NAME, REG_BADPAT },\r
- { ONIGERR_INVALID_CHAR_IN_GROUP_NAME, REG_BADPAT },\r
- { ONIGERR_UNDEFINED_NAME_REFERENCE, REG_BADPAT },\r
- { ONIGERR_UNDEFINED_GROUP_REFERENCE, REG_BADPAT },\r
- { ONIGERR_MULTIPLEX_DEFINED_NAME, REG_BADPAT },\r
- { ONIGERR_MULTIPLEX_DEFINITION_NAME_CALL, REG_BADPAT },\r
- { ONIGERR_NEVER_ENDING_RECURSION, REG_BADPAT },\r
- { ONIGERR_GROUP_NUMBER_OVER_FOR_CAPTURE_HISTORY, REG_BADPAT },\r
- { ONIGERR_INVALID_CHAR_PROPERTY_NAME, REG_BADPAT },\r
- { ONIGERR_INVALID_IF_ELSE_SYNTAX, REG_BADPAT },\r
- { ONIGERR_INVALID_ABSENT_GROUP_PATTERN, REG_BADPAT },\r
- { ONIGERR_INVALID_ABSENT_GROUP_GENERATOR_PATTERN, REG_BADPAT },\r
- { ONIGERR_INVALID_CALLOUT_PATTERN, REG_BADPAT },\r
- { ONIGERR_INVALID_CALLOUT_NAME, REG_BADPAT },\r
- { ONIGERR_UNDEFINED_CALLOUT_NAME, REG_BADPAT },\r
- { ONIGERR_INVALID_CALLOUT_BODY, REG_BADPAT },\r
- { ONIGERR_INVALID_CALLOUT_TAG_NAME, REG_BADPAT },\r
- { ONIGERR_INVALID_CALLOUT_ARG, REG_BADPAT },\r
- { ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION, REG_EONIG_BADARG },\r
- { ONIGERR_LIBRARY_IS_NOT_INITIALIZED, REG_EONIG_INTERNAL }\r
- };\r
-\r
- int i;\r
-\r
- if (code >= 0) return 0;\r
-\r
- for (i = 0; i < (int )(sizeof(o2p) / sizeof(o2p[0])); i++) {\r
- if (code == o2p[i].onig_err)\r
- return o2p[i].posix_err;\r
- }\r
-\r
- return REG_EONIG_INTERNAL; /* but, unknown error code */\r
-}\r
-\r
-extern int\r
-regcomp(regex_t* reg, const char* pattern, int posix_options)\r
-{\r
- int r, len;\r
- OnigSyntaxType* syntax = OnigDefaultSyntax;\r
- OnigOptionType options;\r
-\r
- reg->onig = (void* )0;\r
-\r
- if ((posix_options & REG_EXTENDED) == 0)\r
- syntax = ONIG_SYNTAX_POSIX_BASIC;\r
-\r
- options = syntax->options;\r
- if ((posix_options & REG_ICASE) != 0)\r
- ONIG_OPTION_ON(options, ONIG_OPTION_IGNORECASE);\r
- if ((posix_options & REG_NEWLINE) != 0) {\r
- ONIG_OPTION_ON( options, ONIG_OPTION_NEGATE_SINGLELINE);\r
- ONIG_OPTION_OFF(options, ONIG_OPTION_SINGLELINE);\r
- }\r
-\r
- reg->comp_options = posix_options;\r
-\r
- ENC_STRING_LEN(OnigEncDefaultCharEncoding, pattern, len);\r
- r = onig_new(PONIG_C(reg), (UChar* )pattern, (UChar* )(pattern + len),\r
- options, OnigEncDefaultCharEncoding, syntax,\r
- (OnigErrorInfo* )NULL);\r
- if (r != ONIG_NORMAL) {\r
- return onig2posix_error_code(r);\r
- }\r
-\r
- reg->re_nsub = ONIG_C(reg)->num_mem;\r
- return 0;\r
-}\r
-\r
-extern int\r
-regexec(regex_t* reg, const char* str, size_t nmatch,\r
- regmatch_t pmatch[], int posix_options)\r
-{\r
- int r, i, len;\r
- UChar* end;\r
- regmatch_t* pm;\r
- OnigOptionType options;\r
-\r
- options = ONIG_OPTION_POSIX_REGION;\r
- if ((posix_options & REG_NOTBOL) != 0) options |= ONIG_OPTION_NOTBOL;\r
- if ((posix_options & REG_NOTEOL) != 0) options |= ONIG_OPTION_NOTEOL;\r
-\r
- if (nmatch == 0 || (reg->comp_options & REG_NOSUB) != 0) {\r
- pm = (regmatch_t* )NULL;\r
- nmatch = 0;\r
- }\r
- else if ((int )nmatch < ONIG_C(reg)->num_mem + 1) {\r
- pm = (regmatch_t* )xmalloc(sizeof(regmatch_t)\r
- * (ONIG_C(reg)->num_mem + 1));\r
- if (pm == NULL)\r
- return REG_ESPACE;\r
- }\r
- else {\r
- pm = pmatch;\r
- }\r
-\r
- ENC_STRING_LEN(ONIG_C(reg)->enc, str, len);\r
- end = (UChar* )(str + len);\r
- r = onig_search(ONIG_C(reg), (UChar* )str, end, (UChar* )str, end,\r
- (OnigRegion* )pm, options);\r
-\r
- if (r >= 0) {\r
- r = 0; /* Match */\r
- if (pm != pmatch && pm != NULL) {\r
- xmemcpy(pmatch, pm, sizeof(regmatch_t) * nmatch);\r
- }\r
- }\r
- else if (r == ONIG_MISMATCH) {\r
- r = REG_NOMATCH;\r
- for (i = 0; i < (int )nmatch; i++)\r
- pmatch[i].rm_so = pmatch[i].rm_eo = ONIG_REGION_NOTPOS;\r
- }\r
- else {\r
- r = onig2posix_error_code(r);\r
- }\r
-\r
- if (pm != pmatch && pm != NULL)\r
- xfree(pm);\r
-\r
-#if 0\r
- if (reg->re_nsub > nmatch - 1)\r
- reg->re_nsub = (nmatch <= 1 ? 0 : nmatch - 1);\r
-#endif\r
-\r
- return r;\r
-}\r
-\r
-extern void\r
-regfree(regex_t* reg)\r
-{\r
- onig_free(ONIG_C(reg));\r
- reg->onig = (void* )0;\r
-}\r
-\r
-\r
-extern void\r
-reg_set_encoding(int mb_code)\r
-{\r
- OnigEncoding enc;\r
-\r
- switch (mb_code) {\r
- case REG_POSIX_ENCODING_ASCII:\r
- enc = ONIG_ENCODING_ASCII;\r
- break;\r
- case REG_POSIX_ENCODING_UTF16_LE:\r
- enc = ONIG_ENCODING_UTF16_LE;\r
- break;\r
- }\r
-\r
- onig_initialize(&enc, 1);\r
-\r
- onigenc_set_default_encoding(enc);\r
-}\r
-\r
-extern int\r
-reg_name_to_group_numbers(regex_t* reg,\r
- const unsigned char* name, const unsigned char* name_end, int** nums)\r
-{\r
- return onig_name_to_group_numbers(ONIG_C(reg), name, name_end, nums);\r
-}\r
-\r
-typedef struct {\r
- int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*);\r
- regex_t* reg;\r
- void* arg;\r
-} i_wrap;\r
-\r
-static int\r
-i_wrapper(const UChar* name, const UChar* name_end, int ng, int* gs,\r
- onig_regex_t* reg ARG_UNUSED, void* arg)\r
-{\r
- i_wrap* warg = (i_wrap* )arg;\r
-\r
- return (*warg->func)(name, name_end, ng, gs, warg->reg, warg->arg);\r
-}\r
-\r
-extern int\r
-reg_foreach_name(regex_t* reg,\r
- int (*func)(const unsigned char*, const unsigned char*,int,int*,regex_t*,void*),\r
- void* arg)\r
-{\r
- i_wrap warg;\r
-\r
- warg.func = func;\r
- warg.reg = reg;\r
- warg.arg = arg;\r
-\r
- return onig_foreach_name(ONIG_C(reg), i_wrapper, &warg);\r
-}\r
-\r
-extern int\r
-reg_number_of_names(regex_t* reg)\r
-{\r
- return onig_number_of_names(ONIG_C(reg));\r
-}\r
+++ /dev/null
-/**********************************************************************\r
- regsyntax.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-OnigSyntaxType OnigSyntaxASIS = {\r
- 0\r
- , ONIG_SYN_OP2_INEFFECTIVE_ESCAPE\r
- , 0\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxPosixBasic = {\r
- ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_ESC_LPAREN_SUBEXP |\r
- ONIG_SYN_OP_ESC_BRACE_INTERVAL )\r
- , 0\r
- , 0\r
- , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE )\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxPosixExtended = {\r
- ( SYN_POSIX_COMMON_OP | ONIG_SYN_OP_LPAREN_SUBEXP |\r
- ONIG_SYN_OP_BRACE_INTERVAL |\r
- ONIG_SYN_OP_PLUS_ONE_INF | ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_VBAR_ALT )\r
- , 0\r
- , ( ONIG_SYN_CONTEXT_INDEP_ANCHORS |\r
- ONIG_SYN_CONTEXT_INDEP_REPEAT_OPS | ONIG_SYN_CONTEXT_INVALID_REPEAT_OPS |\r
- ONIG_SYN_ALLOW_UNMATCHED_CLOSE_SUBEXP |\r
- ONIG_SYN_ALLOW_DOUBLE_RANGE_OP_IN_CC )\r
- , ( ONIG_OPTION_SINGLELINE | ONIG_OPTION_MULTILINE )\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxEmacs = {\r
- ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC |\r
- ONIG_SYN_OP_ESC_BRACE_INTERVAL |\r
- ONIG_SYN_OP_ESC_LPAREN_SUBEXP | ONIG_SYN_OP_ESC_VBAR_ALT |\r
- ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_PLUS_ONE_INF |\r
- ONIG_SYN_OP_QMARK_ZERO_ONE | ONIG_SYN_OP_DECIMAL_BACKREF |\r
- ONIG_SYN_OP_LINE_ANCHOR | ONIG_SYN_OP_ESC_CONTROL_CHARS )\r
- , ONIG_SYN_OP2_ESC_GNU_BUF_ANCHOR\r
- , ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxGrep = {\r
- ( ONIG_SYN_OP_DOT_ANYCHAR | ONIG_SYN_OP_BRACKET_CC | ONIG_SYN_OP_POSIX_BRACKET |\r
- ONIG_SYN_OP_ESC_BRACE_INTERVAL | ONIG_SYN_OP_ESC_LPAREN_SUBEXP |\r
- ONIG_SYN_OP_ESC_VBAR_ALT |\r
- ONIG_SYN_OP_ASTERISK_ZERO_INF | ONIG_SYN_OP_ESC_PLUS_ONE_INF |\r
- ONIG_SYN_OP_ESC_QMARK_ZERO_ONE | ONIG_SYN_OP_LINE_ANCHOR |\r
- ONIG_SYN_OP_ESC_W_WORD | ONIG_SYN_OP_ESC_B_WORD_BOUND |\r
- ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END | ONIG_SYN_OP_DECIMAL_BACKREF )\r
- , 0\r
- , ( ONIG_SYN_ALLOW_EMPTY_RANGE_IN_CC | ONIG_SYN_NOT_NEWLINE_IN_NEGATIVE_CC )\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxGnuRegex = {\r
- SYN_GNU_REGEX_OP\r
- , 0\r
- , SYN_GNU_REGEX_BV\r
- , ONIG_OPTION_NONE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxJava = {\r
- (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS | ONIG_SYN_OP_ESC_C_CONTROL |\r
- ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 )\r
- & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )\r
- , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE | ONIG_SYN_OP2_QMARK_GROUP_EFFECT |\r
- ONIG_SYN_OP2_OPTION_PERL | ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT |\r
- ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL | ONIG_SYN_OP2_CCLASS_SET_OP |\r
- ONIG_SYN_OP2_ESC_V_VTAB | ONIG_SYN_OP2_ESC_U_HEX4 |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY )\r
- , ( SYN_GNU_REGEX_BV | ONIG_SYN_DIFFERENT_LEN_ALT_LOOK_BEHIND )\r
- , ONIG_OPTION_SINGLELINE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-OnigSyntaxType OnigSyntaxPerl = {\r
- (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |\r
- ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |\r
- ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS |\r
- ONIG_SYN_OP_ESC_C_CONTROL )\r
- & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )\r
- , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE |\r
- ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |\r
- ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL |\r
- ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |\r
- ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |\r
- ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS |\r
- ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME |\r
- ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |\r
- ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |\r
- ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |\r
- ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT )\r
- , SYN_GNU_REGEX_BV\r
- , ONIG_OPTION_SINGLELINE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-/* Perl + named group */\r
-OnigSyntaxType OnigSyntaxPerl_NG = {\r
- (( SYN_GNU_REGEX_OP | ONIG_SYN_OP_QMARK_NON_GREEDY |\r
- ONIG_SYN_OP_ESC_OCTAL3 | ONIG_SYN_OP_ESC_X_HEX2 |\r
- ONIG_SYN_OP_ESC_X_BRACE_HEX8 | ONIG_SYN_OP_ESC_O_BRACE_OCTAL |\r
- ONIG_SYN_OP_ESC_CONTROL_CHARS |\r
- ONIG_SYN_OP_ESC_C_CONTROL )\r
- & ~ONIG_SYN_OP_ESC_LTGT_WORD_BEGIN_END )\r
- , ( ONIG_SYN_OP2_ESC_CAPITAL_Q_QUOTE |\r
- ONIG_SYN_OP2_QMARK_GROUP_EFFECT | ONIG_SYN_OP2_OPTION_PERL |\r
- ONIG_SYN_OP2_PLUS_POSSESSIVE_REPEAT | ONIG_SYN_OP2_PLUS_POSSESSIVE_INTERVAL |\r
- ONIG_SYN_OP2_QMARK_LPAREN_IF_ELSE |\r
- ONIG_SYN_OP2_QMARK_TILDE_ABSENT_GROUP |\r
- ONIG_SYN_OP2_QMARK_BRACE_CALLOUT_CONTENTS |\r
- ONIG_SYN_OP2_ASTERISK_CALLOUT_NAME |\r
- ONIG_SYN_OP2_ESC_X_Y_TEXT_SEGMENT |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CHAR_PROPERTY |\r
- ONIG_SYN_OP2_ESC_P_BRACE_CIRCUMFLEX_NOT |\r
- ONIG_SYN_OP2_QMARK_LT_NAMED_GROUP |\r
- ONIG_SYN_OP2_ESC_K_NAMED_BACKREF |\r
- ONIG_SYN_OP2_ESC_G_SUBEXP_CALL |\r
- ONIG_SYN_OP2_ESC_CAPITAL_K_KEEP |\r
- ONIG_SYN_OP2_ESC_CAPITAL_R_GENERAL_NEWLINE |\r
- ONIG_SYN_OP2_ESC_CAPITAL_N_O_SUPER_DOT |\r
- ONIG_SYN_OP2_QMARK_PERL_SUBEXP_CALL )\r
- , ( SYN_GNU_REGEX_BV |\r
- ONIG_SYN_CAPTURE_ONLY_NAMED_GROUP |\r
- ONIG_SYN_ALLOW_MULTIPLEX_DEFINITION_NAME )\r
- , ONIG_OPTION_SINGLELINE\r
- ,\r
- {\r
- (OnigCodePoint )'\\' /* esc */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar '.' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anytime '*' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* zero or one time '?' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* one or more time '+' */\r
- , (OnigCodePoint )ONIG_INEFFECTIVE_META_CHAR /* anychar anytime */\r
- }\r
-};\r
-\r
-\r
-\r
-extern int\r
-onig_set_default_syntax(OnigSyntaxType* syntax)\r
-{\r
- if (IS_NULL(syntax))\r
- syntax = ONIG_SYNTAX_ONIGURUMA;\r
-\r
- OnigDefaultSyntax = syntax;\r
- return 0;\r
-}\r
-\r
-extern void\r
-onig_copy_syntax(OnigSyntaxType* to, OnigSyntaxType* from)\r
-{\r
- *to = *from;\r
-}\r
-\r
-extern void\r
-onig_set_syntax_op(OnigSyntaxType* syntax, unsigned int op)\r
-{\r
- syntax->op = op;\r
-}\r
-\r
-extern void\r
-onig_set_syntax_op2(OnigSyntaxType* syntax, unsigned int op2)\r
-{\r
- syntax->op2 = op2;\r
-}\r
-\r
-extern void\r
-onig_set_syntax_behavior(OnigSyntaxType* syntax, unsigned int behavior)\r
-{\r
- syntax->behavior = behavior;\r
-}\r
-\r
-extern void\r
-onig_set_syntax_options(OnigSyntaxType* syntax, OnigOptionType options)\r
-{\r
- syntax->options = options;\r
-}\r
-\r
-extern unsigned int\r
-onig_get_syntax_op(OnigSyntaxType* syntax)\r
-{\r
- return syntax->op;\r
-}\r
-\r
-extern unsigned int\r
-onig_get_syntax_op2(OnigSyntaxType* syntax)\r
-{\r
- return syntax->op2;\r
-}\r
-\r
-extern unsigned int\r
-onig_get_syntax_behavior(OnigSyntaxType* syntax)\r
-{\r
- return syntax->behavior;\r
-}\r
-\r
-extern OnigOptionType\r
-onig_get_syntax_options(OnigSyntaxType* syntax)\r
-{\r
- return syntax->options;\r
-}\r
-\r
-#ifdef USE_VARIABLE_META_CHARS\r
-extern int onig_set_meta_char(OnigSyntaxType* enc,\r
- unsigned int what, OnigCodePoint code)\r
-{\r
- switch (what) {\r
- case ONIG_META_CHAR_ESCAPE:\r
- enc->meta_char_table.esc = code;\r
- break;\r
- case ONIG_META_CHAR_ANYCHAR:\r
- enc->meta_char_table.anychar = code;\r
- break;\r
- case ONIG_META_CHAR_ANYTIME:\r
- enc->meta_char_table.anytime = code;\r
- break;\r
- case ONIG_META_CHAR_ZERO_OR_ONE_TIME:\r
- enc->meta_char_table.zero_or_one_time = code;\r
- break;\r
- case ONIG_META_CHAR_ONE_OR_MORE_TIME:\r
- enc->meta_char_table.one_or_more_time = code;\r
- break;\r
- case ONIG_META_CHAR_ANYCHAR_ANYTIME:\r
- enc->meta_char_table.anychar_anytime = code;\r
- break;\r
- default:\r
- return ONIGERR_INVALID_ARGUMENT;\r
- break;\r
- }\r
- return 0;\r
-}\r
-#endif /* USE_VARIABLE_META_CHARS */\r
+++ /dev/null
-/**********************************************************************\r
- regtrav.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2004 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-#ifdef USE_CAPTURE_HISTORY\r
-\r
-static int\r
-capture_tree_traverse(OnigCaptureTreeNode* node, int at,\r
- int(*callback_func)(int,int,int,int,int,void*),\r
- int level, void* arg)\r
-{\r
- int r, i;\r
-\r
- if (node == (OnigCaptureTreeNode* )0)\r
- return 0;\r
-\r
- if ((at & ONIG_TRAVERSE_CALLBACK_AT_FIRST) != 0) {\r
- r = (*callback_func)(node->group, node->beg, node->end,\r
- level, ONIG_TRAVERSE_CALLBACK_AT_FIRST, arg);\r
- if (r != 0) return r;\r
- }\r
-\r
- for (i = 0; i < node->num_childs; i++) {\r
- r = capture_tree_traverse(node->childs[i], at,\r
- callback_func, level + 1, arg);\r
- if (r != 0) return r;\r
- }\r
-\r
- if ((at & ONIG_TRAVERSE_CALLBACK_AT_LAST) != 0) {\r
- r = (*callback_func)(node->group, node->beg, node->end,\r
- level, ONIG_TRAVERSE_CALLBACK_AT_LAST, arg);\r
- if (r != 0) return r;\r
- }\r
-\r
- return 0;\r
-}\r
-#endif /* USE_CAPTURE_HISTORY */\r
-\r
-extern int\r
-onig_capture_tree_traverse(OnigRegion* region, int at,\r
- int(*callback_func)(int,int,int,int,int,void*), void* arg)\r
-{\r
-#ifdef USE_CAPTURE_HISTORY\r
- return capture_tree_traverse(region->history_root, at,\r
- callback_func, 0, arg);\r
-#else\r
- return ONIG_NO_SUPPORT_CONFIG;\r
-#endif\r
-}\r
+++ /dev/null
-/**********************************************************************\r
- regversion.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "oniguruma.h"\r
-#include "regint.h"\r
-//#include <stdio.h>\r
-\r
-extern const char*\r
-onig_version(void)\r
-{\r
- static char s[12];\r
-\r
- sprintf_s(s, sizeof(s), "%d.%d.%d",\r
- ONIGURUMA_VERSION_MAJOR,\r
- ONIGURUMA_VERSION_MINOR,\r
- ONIGURUMA_VERSION_TEENY);\r
- return s;\r
-}\r
-\r
-extern const char*\r
-onig_copyright(void)\r
-{\r
- static char s[58];\r
-\r
- sprintf_s(s, sizeof(s),\r
- "Oniguruma %d.%d.%d : Copyright (C) 2002-2018 K.Kosako",\r
- ONIGURUMA_VERSION_MAJOR,\r
- ONIGURUMA_VERSION_MINOR,\r
- ONIGURUMA_VERSION_TEENY);\r
- return s;\r
-}\r
+++ /dev/null
-/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */\r
-\r
-/* static char sccsid[] = "@(#) st.c 5.1 89/12/14 Crucible"; */\r
-\r
-//#include <stdio.h>\r
-//#include <stdlib.h>\r
-//#include <string.h>\r
-#include "OnigurumaUefiPort.h"\r
-\r
-#ifdef _WIN32\r
-#include <malloc.h>\r
-#endif\r
-\r
-#include "regint.h"\r
-#include "st.h"\r
-\r
-typedef struct st_table_entry st_table_entry;\r
-\r
-struct st_table_entry {\r
- unsigned int hash;\r
- st_data_t key;\r
- st_data_t record;\r
- st_table_entry *next;\r
-};\r
-\r
-#define ST_DEFAULT_MAX_DENSITY 5\r
-#define ST_DEFAULT_INIT_TABLE_SIZE 11\r
-\r
- /*\r
- * DEFAULT_MAX_DENSITY is the default for the largest we allow the\r
- * average number of items per bin before increasing the number of\r
- * bins\r
- *\r
- * DEFAULT_INIT_TABLE_SIZE is the default for the number of bins\r
- * allocated initially\r
- *\r
- */\r
-\r
-static int numcmp(long, long);\r
-static int numhash(long);\r
-static struct st_hash_type type_numhash = {\r
- numcmp,\r
- numhash,\r
-};\r
-\r
-/* extern int strcmp(const char *, const char *); */\r
-static int strhash(const char *);\r
-static struct st_hash_type type_strhash = {\r
- strcmp,\r
- strhash,\r
-};\r
-\r
-static void rehash(st_table *);\r
-\r
-#define alloc(type) (type*)xmalloc((unsigned)sizeof(type))\r
-#define Calloc(n,s) (char*)xcalloc((n),(s))\r
-\r
-#define EQUAL(table,x,y) ((x)==(y) || (*table->type->compare)((x),(y)) == 0)\r
-\r
-#define do_hash(key,table) (unsigned int)(*(table)->type->hash)((key))\r
-#define do_hash_bin(key,table) (do_hash(key, table)%(table)->num_bins)\r
-\r
-/*\r
- * MINSIZE is the minimum size of a dictionary.\r
- */\r
-\r
-#define MINSIZE 8\r
-\r
-/*\r
-Table of prime numbers 2^n+a, 2<=n<=30.\r
-*/\r
-static const long primes[] = {\r
- 8 + 3,\r
- 16 + 3,\r
- 32 + 5,\r
- 64 + 3,\r
- 128 + 3,\r
- 256 + 27,\r
- 512 + 9,\r
- 1024 + 9,\r
- 2048 + 5,\r
- 4096 + 3,\r
- 8192 + 27,\r
- 16384 + 43,\r
- 32768 + 3,\r
- 65536 + 45,\r
- 131072 + 29,\r
- 262144 + 3,\r
- 524288 + 21,\r
- 1048576 + 7,\r
- 2097152 + 17,\r
- 4194304 + 15,\r
- 8388608 + 9,\r
- 16777216 + 43,\r
- 33554432 + 35,\r
- 67108864 + 15,\r
- 134217728 + 29,\r
- 268435456 + 3,\r
- 536870912 + 11,\r
- 1073741824 + 85,\r
- 0\r
-};\r
-\r
-static int\r
-new_size(size)\r
- int size;\r
-{\r
- int i;\r
-\r
-#if 0\r
- for (i=3; i<31; i++) {\r
- if ((1<<i) > size) return 1<<i;\r
- }\r
- return -1;\r
-#else\r
- int newsize;\r
-\r
- for (i = 0, newsize = MINSIZE;\r
- i < (int )(sizeof(primes)/sizeof(primes[0]));\r
- i++, newsize <<= 1) {\r
- if (newsize > size) return primes[i];\r
- }\r
- /* Ran out of polynomials */\r
- return -1; /* should raise exception */\r
-#endif\r
-}\r
-\r
-#ifdef HASH_LOG\r
-static int collision = 0;\r
-static int init_st = 0;\r
-\r
-static void\r
-stat_col(void)\r
-{\r
- FILE *f = fopen("/tmp/col", "w");\r
- if (f == 0) return ;\r
-\r
- (void) fprintf(f, "collision: %d\n", collision);\r
- (void) fclose(f);\r
-}\r
-#endif\r
-\r
-st_table*\r
-st_init_table_with_size(type, size)\r
- struct st_hash_type *type;\r
- int size;\r
-{\r
- st_table *tbl;\r
-\r
-#ifdef HASH_LOG\r
- if (init_st == 0) {\r
- init_st = 1;\r
- atexit(stat_col);\r
- }\r
-#endif\r
-\r
- size = new_size(size); /* round up to prime number */\r
-\r
- tbl = alloc(st_table);\r
- if (tbl == 0) return 0;\r
-\r
- tbl->type = type;\r
- tbl->num_entries = 0;\r
- tbl->num_bins = size;\r
- tbl->bins = (st_table_entry **)Calloc(size, sizeof(st_table_entry*));\r
- if (tbl->bins == 0) {\r
- free(tbl);\r
- return 0;\r
- }\r
-\r
- return tbl;\r
-}\r
-\r
-st_table*\r
-st_init_table(type)\r
- struct st_hash_type *type;\r
-{\r
- return st_init_table_with_size(type, 0);\r
-}\r
-\r
-st_table*\r
-st_init_numtable(void)\r
-{\r
- return st_init_table(&type_numhash);\r
-}\r
-\r
-st_table*\r
-st_init_numtable_with_size(size)\r
- int size;\r
-{\r
- return st_init_table_with_size(&type_numhash, size);\r
-}\r
-\r
-st_table*\r
-st_init_strtable(void)\r
-{\r
- return st_init_table(&type_strhash);\r
-}\r
-\r
-st_table*\r
-st_init_strtable_with_size(size)\r
- int size;\r
-{\r
- return st_init_table_with_size(&type_strhash, size);\r
-}\r
-\r
-void\r
-st_free_table(table)\r
- st_table *table;\r
-{\r
- register st_table_entry *ptr, *next;\r
- int i;\r
-\r
- for(i = 0; i < table->num_bins; i++) {\r
- ptr = table->bins[i];\r
- while (ptr != 0) {\r
- next = ptr->next;\r
- free(ptr);\r
- ptr = next;\r
- }\r
- }\r
- free(table->bins);\r
- free(table);\r
-}\r
-\r
-#define PTR_NOT_EQUAL(table, ptr, hash_val, key) \\r
-((ptr) != 0 && (ptr->hash != (hash_val) || !EQUAL((table), (key), (ptr)->key)))\r
-\r
-#ifdef HASH_LOG\r
-#define COLLISION collision++\r
-#else\r
-#define COLLISION\r
-#endif\r
-\r
-#define FIND_ENTRY(table, ptr, hash_val, bin_pos) do {\\r
- bin_pos = hash_val%(table)->num_bins;\\r
- ptr = (table)->bins[bin_pos];\\r
- if (PTR_NOT_EQUAL(table, ptr, hash_val, key)) {\\r
- COLLISION;\\r
- while (PTR_NOT_EQUAL(table, ptr->next, hash_val, key)) {\\r
- ptr = ptr->next;\\r
- }\\r
- ptr = ptr->next;\\r
- }\\r
-} while (0)\r
-\r
-int\r
-st_lookup(table, key, value)\r
- st_table *table;\r
- register st_data_t key;\r
- st_data_t *value;\r
-{\r
- unsigned int hash_val, bin_pos;\r
- register st_table_entry *ptr;\r
-\r
- hash_val = do_hash(key, table);\r
- FIND_ENTRY(table, ptr, hash_val, bin_pos);\r
-\r
- if (ptr == 0) {\r
- return 0;\r
- }\r
- else {\r
- if (value != 0) *value = ptr->record;\r
- return 1;\r
- }\r
-}\r
-\r
-#define ADD_DIRECT(table, key, value, hash_val, bin_pos, ret) \\r
-do {\\r
- st_table_entry *entry;\\r
- if (table->num_entries/(table->num_bins) > ST_DEFAULT_MAX_DENSITY) {\\r
- rehash(table);\\r
- bin_pos = hash_val % table->num_bins;\\r
- }\\r
- entry = alloc(st_table_entry);\\r
- if (IS_NULL(entry)) return ret;\\r
- entry->hash = hash_val;\\r
- entry->key = key;\\r
- entry->record = value;\\r
- entry->next = table->bins[bin_pos];\\r
- table->bins[bin_pos] = entry;\\r
- table->num_entries++;\\r
-} while (0)\r
-\r
-int\r
-st_insert(table, key, value)\r
- register st_table *table;\r
- register st_data_t key;\r
- st_data_t value;\r
-{\r
- unsigned int hash_val, bin_pos;\r
- register st_table_entry *ptr;\r
-\r
- hash_val = do_hash(key, table);\r
- FIND_ENTRY(table, ptr, hash_val, bin_pos);\r
-\r
- if (ptr == 0) {\r
- ADD_DIRECT(table, key, value, hash_val, bin_pos, ONIGERR_MEMORY);\r
- return 0;\r
- }\r
- else {\r
- ptr->record = value;\r
- return 1;\r
- }\r
-}\r
-\r
-void\r
-st_add_direct(table, key, value)\r
- st_table *table;\r
- st_data_t key;\r
- st_data_t value;\r
-{\r
- unsigned int hash_val, bin_pos;\r
-\r
- hash_val = do_hash(key, table);\r
- bin_pos = hash_val % table->num_bins;\r
- ADD_DIRECT(table, key, value, hash_val, bin_pos,);\r
-}\r
-\r
-static void\r
-rehash(table)\r
- register st_table *table;\r
-{\r
- register st_table_entry *ptr, *next, **new_bins;\r
- int i, old_num_bins = table->num_bins, new_num_bins;\r
- unsigned int hash_val;\r
-\r
- new_num_bins = new_size(old_num_bins+1);\r
- new_bins = (st_table_entry**)Calloc(new_num_bins, sizeof(st_table_entry*));\r
- if (new_bins == 0) {\r
- return ;\r
- }\r
-\r
- for(i = 0; i < old_num_bins; i++) {\r
- ptr = table->bins[i];\r
- while (ptr != 0) {\r
- next = ptr->next;\r
- hash_val = ptr->hash % new_num_bins;\r
- ptr->next = new_bins[hash_val];\r
- new_bins[hash_val] = ptr;\r
- ptr = next;\r
- }\r
- }\r
- free(table->bins);\r
- table->num_bins = new_num_bins;\r
- table->bins = new_bins;\r
-}\r
-\r
-st_table*\r
-st_copy(old_table)\r
- st_table *old_table;\r
-{\r
- st_table *new_table;\r
- st_table_entry *ptr, *entry;\r
- int i, num_bins = old_table->num_bins;\r
-\r
- new_table = alloc(st_table);\r
- if (new_table == 0) {\r
- return 0;\r
- }\r
-\r
- *new_table = *old_table;\r
- new_table->bins = (st_table_entry**)\r
- Calloc((unsigned)num_bins, sizeof(st_table_entry*));\r
-\r
- if (new_table->bins == 0) {\r
- free(new_table);\r
- return 0;\r
- }\r
-\r
- for(i = 0; i < num_bins; i++) {\r
- new_table->bins[i] = 0;\r
- ptr = old_table->bins[i];\r
- while (ptr != 0) {\r
- entry = alloc(st_table_entry);\r
- if (entry == 0) {\r
- free(new_table->bins);\r
- free(new_table);\r
- return 0;\r
- }\r
- *entry = *ptr;\r
- entry->next = new_table->bins[i];\r
- new_table->bins[i] = entry;\r
- ptr = ptr->next;\r
- }\r
- }\r
- return new_table;\r
-}\r
-\r
-int\r
-st_delete(table, key, value)\r
- register st_table *table;\r
- register st_data_t *key;\r
- st_data_t *value;\r
-{\r
- unsigned int hash_val;\r
- st_table_entry *tmp;\r
- register st_table_entry *ptr;\r
-\r
- hash_val = do_hash_bin(*key, table);\r
- ptr = table->bins[hash_val];\r
-\r
- if (ptr == 0) {\r
- if (value != 0) *value = 0;\r
- return 0;\r
- }\r
-\r
- if (EQUAL(table, *key, ptr->key)) {\r
- table->bins[hash_val] = ptr->next;\r
- table->num_entries--;\r
- if (value != 0) *value = ptr->record;\r
- *key = ptr->key;\r
- free(ptr);\r
- return 1;\r
- }\r
-\r
- for(; ptr->next != 0; ptr = ptr->next) {\r
- if (EQUAL(table, ptr->next->key, *key)) {\r
- tmp = ptr->next;\r
- ptr->next = ptr->next->next;\r
- table->num_entries--;\r
- if (value != 0) *value = tmp->record;\r
- *key = tmp->key;\r
- free(tmp);\r
- return 1;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-int\r
-st_delete_safe(table, key, value, never)\r
- register st_table *table;\r
- register st_data_t *key;\r
- st_data_t *value;\r
- st_data_t never;\r
-{\r
- unsigned int hash_val;\r
- register st_table_entry *ptr;\r
-\r
- hash_val = do_hash_bin(*key, table);\r
- ptr = table->bins[hash_val];\r
-\r
- if (ptr == 0) {\r
- if (value != 0) *value = 0;\r
- return 0;\r
- }\r
-\r
- for(; ptr != 0; ptr = ptr->next) {\r
- if ((ptr->key != never) && EQUAL(table, ptr->key, *key)) {\r
- table->num_entries--;\r
- *key = ptr->key;\r
- if (value != 0) *value = ptr->record;\r
- ptr->key = ptr->record = never;\r
- return 1;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-#if defined(__GNUC__)\r
-delete_never(st_data_t key __attribute__ ((unused)), st_data_t value,\r
- st_data_t never)\r
-#else\r
-delete_never(key, value, never)\r
- st_data_t key, value, never;\r
-#endif\r
-{\r
- if (value == never) return ST_DELETE;\r
- return ST_CONTINUE;\r
-}\r
-\r
-void\r
-st_cleanup_safe(table, never)\r
- st_table *table;\r
- st_data_t never;\r
-{\r
- int num_entries = table->num_entries;\r
-\r
- st_foreach(table, delete_never, never);\r
- table->num_entries = num_entries;\r
-}\r
-\r
-int\r
-st_foreach(table, func, arg)\r
- st_table *table;\r
- int (*func)();\r
- st_data_t arg;\r
-{\r
- st_table_entry *ptr, *last, *tmp;\r
- enum st_retval retval;\r
- int i;\r
-\r
- for(i = 0; i < table->num_bins; i++) {\r
- last = 0;\r
- for(ptr = table->bins[i]; ptr != 0;) {\r
- retval = (*func)(ptr->key, ptr->record, arg);\r
- switch (retval) {\r
- case ST_CHECK: /* check if hash is modified during iteration */\r
- tmp = 0;\r
- if (i < table->num_bins) {\r
- for (tmp = table->bins[i]; tmp; tmp=tmp->next) {\r
- if (tmp == ptr) break;\r
- }\r
- }\r
- if (!tmp) {\r
- /* call func with error notice */\r
- return 1;\r
- }\r
- /* fall through */\r
- case ST_CONTINUE:\r
- last = ptr;\r
- ptr = ptr->next;\r
- break;\r
- case ST_STOP:\r
- return 0;\r
- case ST_DELETE:\r
- tmp = ptr;\r
- if (last == 0) {\r
- table->bins[i] = ptr->next;\r
- }\r
- else {\r
- last->next = ptr->next;\r
- }\r
- ptr = ptr->next;\r
- free(tmp);\r
- table->num_entries--;\r
- }\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-static int\r
-strhash(string)\r
- register const char *string;\r
-{\r
- register int c;\r
-\r
-#ifdef HASH_ELFHASH\r
- register unsigned int h = 0, g;\r
-\r
- while ((c = *string++) != '\0') {\r
- h = ( h << 4 ) + c;\r
- if ( g = h & 0xF0000000 )\r
- h ^= g >> 24;\r
- h &= ~g;\r
- }\r
- return h;\r
-#elif HASH_PERL\r
- register int val = 0;\r
-\r
- while ((c = *string++) != '\0') {\r
- val += c;\r
- val += (val << 10);\r
- val ^= (val >> 6);\r
- }\r
- val += (val << 3);\r
- val ^= (val >> 11);\r
-\r
- return val + (val << 15);\r
-#else\r
- register int val = 0;\r
-\r
- while ((c = *string++) != '\0') {\r
- val = val*997 + c;\r
- }\r
-\r
- return val + (val>>5);\r
-#endif\r
-}\r
-\r
-static int\r
-numcmp(x, y)\r
- long x, y;\r
-{\r
- return x != y;\r
-}\r
-\r
-static int\r
-numhash(n)\r
- long n;\r
-{\r
- return n;\r
-}\r
+++ /dev/null
-/* This is a public domain general purpose hash table package written by Peter Moore @ UCB. */\r
-\r
-/* @(#) st.h 5.1 89/12/14 */\r
-\r
-#ifndef ST_INCLUDED\r
-\r
-#define ST_INCLUDED\r
-\r
-#ifdef _WIN32\r
-# include <windows.h>\r
-typedef ULONG_PTR st_data_t;\r
-#else\r
-// typedef unsigned long st_data_t;\r
-#endif\r
-#define ST_DATA_T_DEFINED\r
-typedef UINTN st_data_t;\r
-\r
-typedef struct st_table st_table;\r
-\r
-struct st_hash_type {\r
- int (*compare)();\r
- int (*hash)();\r
-};\r
-\r
-struct st_table {\r
- struct st_hash_type *type;\r
- int num_bins;\r
- int num_entries;\r
- struct st_table_entry **bins;\r
-};\r
-\r
-#define st_is_member(table,key) st_lookup(table,key,(st_data_t *)0)\r
-\r
-enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};\r
-\r
-#ifndef _\r
-# define _(args) args\r
-#endif\r
-#ifndef ANYARGS\r
-# ifdef __cplusplus\r
-# define ANYARGS ...\r
-# else\r
-# define ANYARGS\r
-# endif\r
-#endif\r
-\r
-st_table *st_init_table _((struct st_hash_type *));\r
-st_table *st_init_table_with_size _((struct st_hash_type *, int));\r
-st_table *st_init_numtable _((void));\r
-st_table *st_init_numtable_with_size _((int));\r
-st_table *st_init_strtable _((void));\r
-st_table *st_init_strtable_with_size _((int));\r
-int st_delete _((st_table *, st_data_t *, st_data_t *));\r
-int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));\r
-int st_insert _((st_table *, st_data_t, st_data_t));\r
-int st_lookup _((st_table *, st_data_t, st_data_t *));\r
-int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));\r
-void st_add_direct _((st_table *, st_data_t, st_data_t));\r
-void st_free_table _((st_table *));\r
-void st_cleanup_safe _((st_table *, st_data_t));\r
-st_table *st_copy _((st_table *));\r
-\r
-#define ST_NUMCMP ((int (*)()) 0)\r
-#define ST_NUMHASH ((int (*)()) -2)\r
-\r
-#define st_numcmp ST_NUMCMP\r
-#define st_numhash ST_NUMHASH\r
-\r
-#endif /* ST_INCLUDED */\r
+++ /dev/null
-/**********************************************************************\r
- unicode.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#include "regint.h"\r
-\r
-struct PoolPropertyNameCtype {\r
- short int name;\r
- short int ctype;\r
-};\r
-\r
-#define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \\r
- ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)\r
-\r
-static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = {\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4008, 0x428c, 0x4289, 0x4288, 0x4288, 0x4288, 0x4008, 0x4008,\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008, 0x4008,\r
- 0x4284, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0, 0x78b0,\r
- 0x78b0, 0x78b0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x41a0,\r
- 0x41a0, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x7ca2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2, 0x74a2,\r
- 0x74a2, 0x74a2, 0x74a2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x51a0,\r
- 0x41a0, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x78e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2, 0x70e2,\r
- 0x70e2, 0x70e2, 0x70e2, 0x41a0, 0x41a0, 0x41a0, 0x41a0, 0x4008,\r
- 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0288, 0x0008, 0x0008,\r
- 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,\r
- 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,\r
- 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,\r
- 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,\r
- 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,\r
- 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,\r
- 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,\r
- 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,\r
- 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,\r
- 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,\r
- 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,\r
- 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,\r
- 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,\r
- 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,\r
- 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2\r
-};\r
-\r
-#include "st.h"\r
-\r
-#include "unicode_fold_data.c"\r
-\r
-extern int\r
-onigenc_unicode_mbc_case_fold(OnigEncoding enc,\r
- OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end,\r
- UChar* fold)\r
-{\r
- const struct ByUnfoldKey* buk;\r
-\r
- OnigCodePoint code;\r
- int i, len, rlen;\r
- const UChar *p = *pp;\r
-\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- len = enclen(enc, p);\r
- *pp += len;\r
-\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {\r
- if (code == 0x0130) {\r
- return ONIGENC_CODE_TO_MBC(enc, 0x0069, fold);\r
- }\r
-#if 0\r
- if (code == 0x0049) {\r
- return ONIGENC_CODE_TO_MBC(enc, 0x0131, fold);\r
- }\r
-#endif\r
- }\r
-#endif\r
-\r
- buk = onigenc_unicode_unfold_key(code);\r
- if (buk != 0) {\r
- if (buk->fold_len == 1) {\r
- return ONIGENC_CODE_TO_MBC(enc, *FOLDS1_FOLD(buk->index), fold);\r
- }\r
- else {\r
- OnigCodePoint* addr;\r
-\r
- FOLDS_FOLD_ADDR_BUK(buk, addr);\r
- rlen = 0;\r
- for (i = 0; i < buk->fold_len; i++) {\r
- OnigCodePoint c = addr[i];\r
- len = ONIGENC_CODE_TO_MBC(enc, c, fold);\r
- fold += len;\r
- rlen += len;\r
- }\r
- return rlen;\r
- }\r
- }\r
-\r
- for (i = 0; i < len; i++) {\r
- *fold++ = *p++;\r
- }\r
- return len;\r
-}\r
-\r
-static int\r
-apply_case_fold1(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- int i, j, k, n, r;\r
-\r
- for (i = from; i < to; ) {\r
- OnigCodePoint fold = *FOLDS1_FOLD(i);\r
- n = FOLDS1_UNFOLDS_NUM(i);\r
- for (j = 0; j < n; j++) {\r
- OnigCodePoint unfold = FOLDS1_UNFOLDS(i)[j];\r
-\r
- r = (*f)(fold, &unfold, 1, arg);\r
- if (r != 0) return r;\r
- r = (*f)(unfold, &fold, 1, arg);\r
- if (r != 0) return r;\r
-\r
- for (k = 0; k < j; k++) {\r
- OnigCodePoint unfold2 = FOLDS1_UNFOLDS(i)[k];\r
- r = (*f)(unfold, &unfold2, 1, arg);\r
- if (r != 0) return r;\r
- r = (*f)(unfold2, &unfold, 1, arg);\r
- if (r != 0) return r;\r
- }\r
- }\r
-\r
- i = FOLDS1_NEXT_INDEX(i);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-apply_case_fold2(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- int i, j, k, n, r;\r
-\r
- for (i = from; i < to; ) {\r
- OnigCodePoint* fold = FOLDS2_FOLD(i);\r
- n = FOLDS2_UNFOLDS_NUM(i);\r
- for (j = 0; j < n; j++) {\r
- OnigCodePoint unfold = FOLDS2_UNFOLDS(i)[j];\r
-\r
- r = (*f)(unfold, fold, 2, arg);\r
- if (r != 0) return r;\r
-\r
- for (k = 0; k < j; k++) {\r
- OnigCodePoint unfold2 = FOLDS2_UNFOLDS(i)[k];\r
- r = (*f)(unfold, &unfold2, 1, arg);\r
- if (r != 0) return r;\r
- r = (*f)(unfold2, &unfold, 1, arg);\r
- if (r != 0) return r;\r
- }\r
- }\r
-\r
- i = FOLDS2_NEXT_INDEX(i);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-static int\r
-apply_case_fold3(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- int i, j, k, n, r;\r
-\r
- for (i = from; i < to; ) {\r
- OnigCodePoint* fold = FOLDS3_FOLD(i);\r
- n = FOLDS3_UNFOLDS_NUM(i);\r
- for (j = 0; j < n; j++) {\r
- OnigCodePoint unfold = FOLDS3_UNFOLDS(i)[j];\r
-\r
- r = (*f)(unfold, fold, 3, arg);\r
- if (r != 0) return r;\r
-\r
- for (k = 0; k < j; k++) {\r
- OnigCodePoint unfold2 = FOLDS3_UNFOLDS(i)[k];\r
- r = (*f)(unfold, &unfold2, 1, arg);\r
- if (r != 0) return r;\r
- r = (*f)(unfold2, &unfold, 1, arg);\r
- if (r != 0) return r;\r
- }\r
- }\r
-\r
- i = FOLDS3_NEXT_INDEX(i);\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag,\r
- OnigApplyAllCaseFoldFunc f, void* arg)\r
-{\r
- int r;\r
-\r
- r = apply_case_fold1(0, FOLDS1_NORMAL_END_INDEX, f, arg);\r
- if (r != 0) return r;\r
-\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {\r
- code = 0x0131;\r
- r = (*f)(0x0049, &code, 1, arg);\r
- if (r != 0) return r;\r
- code = 0x0049;\r
- r = (*f)(0x0131, &code, 1, arg);\r
- if (r != 0) return r;\r
-\r
- code = 0x0130;\r
- r = (*f)(0x0069, &code, 1, arg);\r
- if (r != 0) return r;\r
- code = 0x0069;\r
- r = (*f)(0x0130, &code, 1, arg);\r
- if (r != 0) return r;\r
- }\r
- else {\r
-#endif\r
- r = apply_case_fold1(FOLDS1_NORMAL_END_INDEX, FOLDS1_END_INDEX, f, arg);\r
- if (r != 0) return r;\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- }\r
-#endif\r
-\r
- if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0)\r
- return 0;\r
-\r
- r = apply_case_fold2(0, FOLDS2_NORMAL_END_INDEX, f, arg);\r
- if (r != 0) return r;\r
-\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) == 0) {\r
-#endif\r
- r = apply_case_fold2(FOLDS2_NORMAL_END_INDEX, FOLDS2_END_INDEX, f, arg);\r
- if (r != 0) return r;\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- }\r
-#endif\r
-\r
- r = apply_case_fold3(0, FOLDS3_NORMAL_END_INDEX, f, arg);\r
- if (r != 0) return r;\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,\r
- OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end,\r
- OnigCaseFoldCodeItem items[])\r
-{\r
- int n, m, i, j, k, len;\r
- OnigCodePoint code, codes[3];\r
- const struct ByUnfoldKey* buk;\r
-\r
- n = 0;\r
-\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- len = enclen(enc, p);\r
-\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {\r
- if (code == 0x0049) {\r
- items[0].byte_len = len;\r
- items[0].code_len = 1;\r
- items[0].code[0] = 0x0131;\r
- return 1;\r
- }\r
- else if (code == 0x0130) {\r
- items[0].byte_len = len;\r
- items[0].code_len = 1;\r
- items[0].code[0] = 0x0069;\r
- return 1;\r
- }\r
- else if (code == 0x0131) {\r
- items[0].byte_len = len;\r
- items[0].code_len = 1;\r
- items[0].code[0] = 0x0049;\r
- return 1;\r
- }\r
- else if (code == 0x0069) {\r
- items[0].byte_len = len;\r
- items[0].code_len = 1;\r
- items[0].code[0] = 0x0130;\r
- return 1;\r
- }\r
- }\r
-#endif\r
-\r
- buk = onigenc_unicode_unfold_key(code);\r
- if (buk != 0) {\r
- if (buk->fold_len == 1) {\r
- int un;\r
- items[0].byte_len = len;\r
- items[0].code_len = 1;\r
- items[0].code[0] = *FOLDS1_FOLD(buk->index);\r
- n++;\r
-\r
- un = FOLDS1_UNFOLDS_NUM(buk->index);\r
- for (i = 0; i < un; i++) {\r
- OnigCodePoint unfold = FOLDS1_UNFOLDS(buk->index)[i];\r
- if (unfold != code) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = unfold;\r
- n++;\r
- }\r
- }\r
- code = items[0].code[0]; /* for multi-code to unfold search. */\r
- }\r
- else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {\r
- OnigCodePoint cs[3][4];\r
- int fn, ncs[3];\r
-\r
- if (buk->fold_len == 2) {\r
- m = FOLDS2_UNFOLDS_NUM(buk->index);\r
- for (i = 0; i < m; i++) {\r
- OnigCodePoint unfold = FOLDS2_UNFOLDS(buk->index)[i];\r
- if (unfold == code) continue;\r
-\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = unfold;\r
- n++;\r
- }\r
-\r
- for (fn = 0; fn < 2; fn++) {\r
- int index;\r
- cs[fn][0] = FOLDS2_FOLD(buk->index)[fn];\r
- index = onigenc_unicode_fold1_key(&cs[fn][0]);\r
- if (index >= 0) {\r
- int m = FOLDS1_UNFOLDS_NUM(index);\r
- for (i = 0; i < m; i++) {\r
- cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i];\r
- }\r
- ncs[fn] = m + 1;\r
- }\r
- else\r
- ncs[fn] = 1;\r
- }\r
-\r
- for (i = 0; i < ncs[0]; i++) {\r
- for (j = 0; j < ncs[1]; j++) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 2;\r
- items[n].code[0] = cs[0][i];\r
- items[n].code[1] = cs[1][j];\r
- n++;\r
- }\r
- }\r
- }\r
- else { /* fold_len == 3 */\r
- m = FOLDS3_UNFOLDS_NUM(buk->index);\r
- for (i = 0; i < m; i++) {\r
- OnigCodePoint unfold = FOLDS3_UNFOLDS(buk->index)[i];\r
- if (unfold == code) continue;\r
-\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = unfold;\r
- n++;\r
- }\r
-\r
- for (fn = 0; fn < 3; fn++) {\r
- int index;\r
- cs[fn][0] = FOLDS3_FOLD(buk->index)[fn];\r
- index = onigenc_unicode_fold1_key(&cs[fn][0]);\r
- if (index >= 0) {\r
- int m = FOLDS1_UNFOLDS_NUM(index);\r
- for (i = 0; i < m; i++) {\r
- cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i];\r
- }\r
- ncs[fn] = m + 1;\r
- }\r
- else\r
- ncs[fn] = 1;\r
- }\r
-\r
- for (i = 0; i < ncs[0]; i++) {\r
- for (j = 0; j < ncs[1]; j++) {\r
- for (k = 0; k < ncs[2]; k++) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 3;\r
- items[n].code[0] = cs[0][i];\r
- items[n].code[1] = cs[1][j];\r
- items[n].code[2] = cs[2][k];\r
- n++;\r
- }\r
- }\r
- }\r
- }\r
-\r
- /* multi char folded code is not head of another folded multi char */\r
- return n;\r
- }\r
- }\r
- else {\r
- int index = onigenc_unicode_fold1_key(&code);\r
- if (index >= 0) {\r
- int m = FOLDS1_UNFOLDS_NUM(index);\r
- for (i = 0; i < m; i++) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = FOLDS1_UNFOLDS(index)[i];\r
- n++;\r
- }\r
- }\r
- }\r
-\r
- if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0)\r
- return n;\r
-\r
- p += len;\r
- if (p < end) {\r
- int clen;\r
- int index;\r
-\r
- codes[0] = code;\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
-\r
- buk = onigenc_unicode_unfold_key(code);\r
- if (buk != 0 && buk->fold_len == 1) {\r
- codes[1] = *FOLDS1_FOLD(buk->index);\r
- }\r
- else\r
- codes[1] = code;\r
-\r
- clen = enclen(enc, p);\r
- len += clen;\r
-\r
- index = onigenc_unicode_fold2_key(codes);\r
- if (index >= 0) {\r
- m = FOLDS2_UNFOLDS_NUM(index);\r
- for (i = 0; i < m; i++) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = FOLDS2_UNFOLDS(index)[i];\r
- n++;\r
- }\r
- }\r
-\r
- p += clen;\r
- if (p < end) {\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- buk = onigenc_unicode_unfold_key(code);\r
- if (buk != 0 && buk->fold_len == 1) {\r
- codes[2] = *FOLDS1_FOLD(buk->index);\r
- }\r
- else\r
- codes[2] = code;\r
-\r
- clen = enclen(enc, p);\r
- len += clen;\r
-\r
- index = onigenc_unicode_fold3_key(codes);\r
- if (index >= 0) {\r
- m = FOLDS3_UNFOLDS_NUM(index);\r
- for (i = 0; i < m; i++) {\r
- items[n].byte_len = len;\r
- items[n].code_len = 1;\r
- items[n].code[0] = FOLDS3_UNFOLDS(index)[i];\r
- n++;\r
- }\r
- }\r
- }\r
- }\r
-\r
- return n;\r
-}\r
-\r
-#ifdef USE_UNICODE_PROPERTIES\r
-#include "unicode_property_data.c"\r
-#else\r
-#include "unicode_property_data_posix.c"\r
-#endif\r
-\r
-\r
-#ifdef USE_UNICODE_WORD_BREAK\r
-\r
-enum WB_TYPE {\r
- WB_Any = 0,\r
- WB_ALetter,\r
- WB_CR,\r
- WB_Double_Quote,\r
- WB_Extend,\r
- WB_ExtendNumLet,\r
- WB_Format,\r
- WB_Hebrew_Letter,\r
- WB_Katakana,\r
- WB_LF,\r
- WB_MidLetter,\r
- WB_MidNum,\r
- WB_MidNumLet,\r
- WB_Newline,\r
- WB_Numeric,\r
- WB_Regional_Indicator,\r
- WB_Single_Quote,\r
- WB_WSegSpace,\r
- WB_ZWJ,\r
-};\r
-\r
-typedef struct {\r
- OnigCodePoint start;\r
- OnigCodePoint end;\r
- enum WB_TYPE type;\r
-} WB_RANGE_TYPE;\r
-\r
-#include "unicode_wb_data.c"\r
-\r
-static enum WB_TYPE\r
-wb_get_type(OnigCodePoint code)\r
-{\r
- OnigCodePoint low, high, x;\r
- enum WB_TYPE type;\r
-\r
- for (low = 0, high = (OnigCodePoint )WB_RANGE_NUM; low < high; ) {\r
- x = (low + high) >> 1;\r
- if (code > WB_RANGES[x].end)\r
- low = x + 1;\r
- else\r
- high = x;\r
- }\r
-\r
- type = (low < (OnigCodePoint )WB_RANGE_NUM &&\r
- code >= WB_RANGES[low].start) ?\r
- WB_RANGES[low].type : WB_Any;\r
-\r
- return type;\r
-}\r
-\r
-#define IS_WB_IGNORE_TAIL(t) ((t) == WB_Extend || (t) == WB_Format || (t) == WB_ZWJ)\r
-#define IS_WB_AHLetter(t) ((t) == WB_ALetter || (t) == WB_Hebrew_Letter)\r
-#define IS_WB_MidNumLetQ(t) ((t) == WB_MidNumLet || (t) == WB_Single_Quote)\r
-\r
-static int\r
-wb_get_next_main_code(OnigEncoding enc, UChar* p, const UChar* end,\r
- OnigCodePoint* rcode, enum WB_TYPE* rtype)\r
-{\r
- OnigCodePoint code;\r
- enum WB_TYPE type;\r
-\r
- while (TRUE) {\r
- p += enclen(enc, p);\r
- if (p >= end) break;\r
-\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- type = wb_get_type(code);\r
- if (! IS_WB_IGNORE_TAIL(type)) {\r
- *rcode = code;\r
- *rtype = type;\r
- return 1;\r
- }\r
- }\r
-\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_wb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev,\r
- const UChar* start, const UChar* end)\r
-{\r
- int r;\r
- UChar* pp;\r
- OnigCodePoint cfrom;\r
- OnigCodePoint cfrom2;\r
- OnigCodePoint cto;\r
- OnigCodePoint cto2;\r
- enum WB_TYPE from;\r
- enum WB_TYPE from2;\r
- enum WB_TYPE to;\r
- enum WB_TYPE to2;\r
-\r
- /* WB1: sot / Any */\r
- if (p == start) return TRUE;\r
- /* WB2: Any / eot */\r
- if (p == end) return TRUE;\r
-\r
- if (IS_NULL(prev)) {\r
- prev = onigenc_get_prev_char_head(enc, start, p);\r
- if (IS_NULL(prev)) return TRUE;\r
- }\r
-\r
- cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- cto = ONIGENC_MBC_TO_CODE(enc, p, end);\r
-\r
- from = wb_get_type(cfrom);\r
- to = wb_get_type(cto);\r
-\r
- /* short cut */\r
- if (from == 0 && to == 0) goto WB999;\r
-\r
- /* WB3: CR + LF */\r
- if (from == WB_CR && to == WB_LF) return FALSE;\r
-\r
- /* WB3a: (Newline|CR|LF) / */\r
- if (from == WB_Newline || from == WB_CR || from == WB_LF) return TRUE;\r
- /* WB3b: / (Newline|CR|LF) */\r
- if (to == WB_Newline || to == WB_CR || to == WB_LF) return TRUE;\r
-\r
- /* WB3c: ZWJ + {Extended_Pictographic} */\r
- if (from == WB_ZWJ) {\r
- if (onigenc_unicode_is_code_ctype(cto, PROP_INDEX_EXTENDEDPICTOGRAPHIC))\r
- return FALSE;\r
- }\r
-\r
- /* WB3d: WSegSpace + WSegSpace */\r
- if (from == WB_WSegSpace && to == WB_WSegSpace) return FALSE;\r
-\r
- /* WB4: X (Extend|Format|ZWJ)* -> X */\r
- if (IS_WB_IGNORE_TAIL(to)) return FALSE;\r
- if (IS_WB_IGNORE_TAIL(from)) {\r
- while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- prev = pp;\r
- cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- from = wb_get_type(cfrom);\r
- if (! IS_WB_IGNORE_TAIL(from))\r
- break;\r
- }\r
- }\r
-\r
- if (IS_WB_AHLetter(from)) {\r
- /* WB5: AHLetter + AHLetter */\r
- if (IS_WB_AHLetter(to)) return FALSE;\r
-\r
- /* WB6: AHLetter + (MidLetter | MidNumLetQ) AHLetter */\r
- if (to == WB_MidLetter || IS_WB_MidNumLetQ(to)) {\r
- r = wb_get_next_main_code(enc, p, end, &cto2, &to2);\r
- if (r == 1) {\r
- if (IS_WB_AHLetter(to2)) return FALSE;\r
- }\r
- }\r
- }\r
-\r
- /* WB7: AHLetter (MidLetter | MidNumLetQ) + AHLetter */\r
- if (from == WB_MidLetter || IS_WB_MidNumLetQ(from)) {\r
- if (IS_WB_AHLetter(to)) {\r
- from2 = WB_Any;\r
- while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- prev = pp;\r
- cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- from2 = wb_get_type(cfrom2);\r
- if (! IS_WB_IGNORE_TAIL(from2))\r
- break;\r
- }\r
-\r
- if (IS_WB_AHLetter(from2)) return FALSE;\r
- }\r
- }\r
-\r
- if (from == WB_Hebrew_Letter) {\r
- /* WB7a: Hebrew_Letter + Single_Quote */\r
- if (to == WB_Single_Quote) return FALSE;\r
-\r
- /* WB7b: Hebrew_Letter + Double_Quote Hebrew_Letter */\r
- if (to == WB_Double_Quote) {\r
- r = wb_get_next_main_code(enc, p, end, &cto2, &to2);\r
- if (r == 1) {\r
- if (to2 == WB_Hebrew_Letter) return FALSE;\r
- }\r
- }\r
- }\r
-\r
- /* WB7c: Hebrew_Letter Double_Quote + Hebrew_Letter */\r
- if (from == WB_Double_Quote) {\r
- if (to == WB_Hebrew_Letter) {\r
- from2 = WB_Any;\r
- while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- prev = pp;\r
- cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- from2 = wb_get_type(cfrom2);\r
- if (! IS_WB_IGNORE_TAIL(from2))\r
- break;\r
- }\r
-\r
- if (from2 == WB_Hebrew_Letter) return FALSE;\r
- }\r
- }\r
-\r
- if (to == WB_Numeric) {\r
- /* WB8: Numeric + Numeric */\r
- if (from == WB_Numeric) return FALSE;\r
-\r
- /* WB9: AHLetter + Numeric */\r
- if (IS_WB_AHLetter(from)) return FALSE;\r
-\r
- /* WB11: Numeric (MidNum | MidNumLetQ) + Numeric */\r
- if (from == WB_MidNum || IS_WB_MidNumLetQ(from)) {\r
- from2 = WB_Any;\r
- while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- prev = pp;\r
- cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- from2 = wb_get_type(cfrom2);\r
- if (! IS_WB_IGNORE_TAIL(from2))\r
- break;\r
- }\r
-\r
- if (from2 == WB_Numeric) return FALSE;\r
- }\r
- }\r
-\r
- if (from == WB_Numeric) {\r
- /* WB10: Numeric + AHLetter */\r
- if (IS_WB_AHLetter(to)) return FALSE;\r
-\r
- /* WB12: Numeric + (MidNum | MidNumLetQ) Numeric */\r
- if (to == WB_MidNum || IS_WB_MidNumLetQ(to)) {\r
- r = wb_get_next_main_code(enc, p, end, &cto2, &to2);\r
- if (r == 1) {\r
- if (to2 == WB_Numeric) return FALSE;\r
- }\r
- }\r
- }\r
-\r
- /* WB13: Katakana + Katakana */\r
- if (from == WB_Katakana && to == WB_Katakana) return FALSE;\r
-\r
- /* WB13a: (AHLetter | Numeric | Katakana | ExtendNumLet) + ExtendNumLet */\r
- if (IS_WB_AHLetter(from) || from == WB_Numeric || from == WB_Katakana\r
- || from == WB_ExtendNumLet) {\r
- if (to == WB_ExtendNumLet) return FALSE;\r
- }\r
-\r
- /* WB13b: ExtendNumLet + (AHLetter | Numeric | Katakana) */\r
- if (from == WB_ExtendNumLet) {\r
- if (IS_WB_AHLetter(to) || to == WB_Numeric || to == WB_Katakana)\r
- return FALSE;\r
- }\r
-\r
-\r
- /* WB15: sot (RI RI)* RI + RI */\r
- /* WB16: [^RI] (RI RI)* RI + RI */\r
- if (from == WB_Regional_Indicator && to == WB_Regional_Indicator) {\r
- int n = 0;\r
- while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- from2 = wb_get_type(cfrom2);\r
- if (from2 != WB_Regional_Indicator)\r
- break;\r
-\r
- n++;\r
- }\r
- if ((n % 2) == 0) return FALSE;\r
- }\r
-\r
- WB999:\r
- /* WB999: Any / Any */\r
- return TRUE;\r
-}\r
-\r
-#endif /* USE_UNICODE_WORD_BREAK */\r
-\r
-\r
-#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER\r
-\r
-enum EGCB_BREAK_TYPE {\r
- EGCB_NOT_BREAK = 0,\r
- EGCB_BREAK = 1,\r
- EGCB_BREAK_UNDEF_GB11 = 2,\r
- EGCB_BREAK_UNDEF_RI_RI = 3\r
-};\r
-\r
-enum EGCB_TYPE {\r
- EGCB_Other = 0,\r
- EGCB_CR = 1,\r
- EGCB_LF = 2,\r
- EGCB_Control = 3,\r
- EGCB_Extend = 4,\r
- EGCB_Prepend = 5,\r
- EGCB_Regional_Indicator = 6,\r
- EGCB_SpacingMark = 7,\r
- EGCB_ZWJ = 8,\r
-#if 0\r
- /* obsoleted */\r
- EGCB_E_Base = 9,\r
- EGCB_E_Base_GAZ = 10,\r
- EGCB_E_Modifier = 11,\r
- EGCB_Glue_After_Zwj = 12,\r
-#endif\r
- EGCB_L = 13,\r
- EGCB_LV = 14,\r
- EGCB_LVT = 15,\r
- EGCB_T = 16,\r
- EGCB_V = 17\r
-};\r
-\r
-typedef struct {\r
- OnigCodePoint start;\r
- OnigCodePoint end;\r
- enum EGCB_TYPE type;\r
-} EGCB_RANGE_TYPE;\r
-\r
-#include "unicode_egcb_data.c"\r
-\r
-static enum EGCB_TYPE\r
-egcb_get_type(OnigCodePoint code)\r
-{\r
- OnigCodePoint low, high, x;\r
- enum EGCB_TYPE type;\r
-\r
- for (low = 0, high = (OnigCodePoint )EGCB_RANGE_NUM; low < high; ) {\r
- x = (low + high) >> 1;\r
- if (code > EGCB_RANGES[x].end)\r
- low = x + 1;\r
- else\r
- high = x;\r
- }\r
-\r
- type = (low < (OnigCodePoint )EGCB_RANGE_NUM &&\r
- code >= EGCB_RANGES[low].start) ?\r
- EGCB_RANGES[low].type : EGCB_Other;\r
-\r
- return type;\r
-}\r
-\r
-#define IS_CONTROL_CR_LF(code) ((code) <= EGCB_Control && (code) >= EGCB_CR)\r
-#define IS_HANGUL(code) ((code) >= EGCB_L)\r
-\r
-/* GB1 and GB2 are outside of this function. */\r
-static enum EGCB_BREAK_TYPE\r
-unicode_egcb_is_break_2code(OnigCodePoint from_code, OnigCodePoint to_code)\r
-{\r
- enum EGCB_TYPE from;\r
- enum EGCB_TYPE to;\r
-\r
- from = egcb_get_type(from_code);\r
- to = egcb_get_type(to_code);\r
-\r
- /* short cut */\r
- if (from == 0 && to == 0) goto GB999;\r
-\r
- /* GB3 */\r
- if (from == EGCB_CR && to == EGCB_LF) return EGCB_NOT_BREAK;\r
- /* GB4 */\r
- if (IS_CONTROL_CR_LF(from)) return EGCB_BREAK;\r
- /* GB5 */\r
- if (IS_CONTROL_CR_LF(to)) return EGCB_BREAK;\r
-\r
- if (IS_HANGUL(from) && IS_HANGUL(to)) {\r
- /* GB6 */\r
- if (from == EGCB_L && to != EGCB_T) return EGCB_NOT_BREAK;\r
- /* GB7 */\r
- if ((from == EGCB_LV || from == EGCB_V)\r
- && (to == EGCB_V || to == EGCB_T)) return EGCB_NOT_BREAK;\r
-\r
- /* GB8 */\r
- if ((to == EGCB_T) && (from == EGCB_LVT || from == EGCB_T))\r
- return EGCB_NOT_BREAK;\r
-\r
- goto GB999;\r
- }\r
-\r
- /* GB9 */\r
- if (to == EGCB_Extend || to == EGCB_ZWJ) return EGCB_NOT_BREAK;\r
-\r
- /* GB9a */\r
- if (to == EGCB_SpacingMark) return EGCB_NOT_BREAK;\r
- /* GB9b */\r
- if (from == EGCB_Prepend) return EGCB_NOT_BREAK;\r
-\r
- /* GB10 removed */\r
-\r
- /* GB11 */\r
- if (from == EGCB_ZWJ) {\r
- if (onigenc_unicode_is_code_ctype(to_code, PROP_INDEX_EXTENDEDPICTOGRAPHIC))\r
- return EGCB_BREAK_UNDEF_GB11;\r
-\r
- goto GB999;\r
- }\r
-\r
- /* GB12, GB13 */\r
- if (from == EGCB_Regional_Indicator && to == EGCB_Regional_Indicator) {\r
- return EGCB_BREAK_UNDEF_RI_RI;\r
- }\r
-\r
- GB999:\r
- return EGCB_BREAK;\r
-}\r
-\r
-#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */\r
-\r
-extern int\r
-onigenc_egcb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev,\r
- const UChar* start, const UChar* end)\r
-{\r
- OnigCodePoint from;\r
- OnigCodePoint to;\r
-#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER\r
- enum EGCB_BREAK_TYPE btype;\r
- enum EGCB_TYPE type;\r
-#endif\r
-\r
- /* GB1 and GB2 */\r
- if (p == start) return 1;\r
- if (p == end) return 1;\r
-\r
- if (IS_NULL(prev)) {\r
- prev = onigenc_get_prev_char_head(enc, start, p);\r
- if (IS_NULL(prev)) return 1;\r
- }\r
-\r
- from = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- to = ONIGENC_MBC_TO_CODE(enc, p, end);\r
-\r
-#ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER\r
- if (! ONIGENC_IS_UNICODE_ENCODING(enc)) {\r
- return from != 0x000d || to != 0x000a;\r
- }\r
-\r
- btype = unicode_egcb_is_break_2code(from, to);\r
- switch (btype) {\r
- case EGCB_NOT_BREAK:\r
- return 0;\r
- break;\r
- case EGCB_BREAK:\r
- return 1;\r
- break;\r
-\r
- case EGCB_BREAK_UNDEF_GB11:\r
- while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- from = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- if (onigenc_unicode_is_code_ctype(from, PROP_INDEX_EXTENDEDPICTOGRAPHIC))\r
- return 0;\r
-\r
- type = egcb_get_type(from);\r
- if (type != EGCB_Extend)\r
- break;\r
- }\r
- break;\r
-\r
- case EGCB_BREAK_UNDEF_RI_RI:\r
- {\r
- int n = 0;\r
- while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {\r
- from = ONIGENC_MBC_TO_CODE(enc, prev, end);\r
- type = egcb_get_type(from);\r
- if (type != EGCB_Regional_Indicator)\r
- break;\r
-\r
- n++;\r
- }\r
- if ((n % 2) == 0) return 0;\r
- }\r
- break;\r
- }\r
-\r
- return 1;\r
-\r
-#else\r
- return from != 0x000d || to != 0x000a;\r
-#endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */\r
-}\r
-\r
-\r
-#define USER_DEFINED_PROPERTY_MAX_NUM 20\r
-\r
-typedef struct {\r
- int ctype;\r
- OnigCodePoint* ranges;\r
-} UserDefinedPropertyValue;\r
-\r
-static int UserDefinedPropertyNum;\r
-static UserDefinedPropertyValue\r
-UserDefinedPropertyRanges[USER_DEFINED_PROPERTY_MAX_NUM];\r
-static st_table* UserDefinedPropertyTable;\r
-\r
-extern int\r
-onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges)\r
-{\r
- UserDefinedPropertyValue* e;\r
- int r;\r
- int i;\r
- int n;\r
- int len;\r
- int c;\r
- char* s;\r
- UChar* uname;\r
-\r
- if (UserDefinedPropertyNum >= USER_DEFINED_PROPERTY_MAX_NUM)\r
- return ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS;\r
-\r
- len = (int )strlen_s(name,MAX_STRING_SIZE);\r
- if (len >= PROPERTY_NAME_MAX_SIZE)\r
- return ONIGERR_TOO_LONG_PROPERTY_NAME;\r
-\r
- s = (char* )xmalloc(len + 1);\r
- if (s == 0)\r
- return ONIGERR_MEMORY;\r
-\r
- uname = (UChar* )name;\r
- n = 0;\r
- for (i = 0; i < len; i++) {\r
- c = uname[i];\r
- if (c < 0x20 || c >= 0x80) {\r
- xfree(s);\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
- }\r
-\r
- if (c != ' ' && c != '-' && c != '_') {\r
- s[n] = c;\r
- n++;\r
- }\r
- }\r
- s[n] = '\0';\r
-\r
- if (UserDefinedPropertyTable == 0) {\r
- UserDefinedPropertyTable = onig_st_init_strend_table_with_size(10);\r
- if (IS_NULL(UserDefinedPropertyTable)) {\r
- xfree(s);\r
- return ONIGERR_MEMORY;\r
- }\r
- }\r
-\r
- e = UserDefinedPropertyRanges + UserDefinedPropertyNum;\r
- e->ctype = CODE_RANGES_NUM + UserDefinedPropertyNum;\r
- e->ranges = ranges;\r
- r = onig_st_insert_strend(UserDefinedPropertyTable,\r
- (const UChar* )s, (const UChar* )s + n,\r
- (hash_data_type )((void* )e));\r
- if (r < 0) return r;\r
-\r
- UserDefinedPropertyNum++;\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)\r
-{\r
- if (\r
-#ifdef USE_UNICODE_PROPERTIES\r
- ctype <= ONIGENC_MAX_STD_CTYPE &&\r
-#endif\r
- code < 256) {\r
- return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);\r
- }\r
-\r
- if (ctype >= CODE_RANGES_NUM) {\r
- int index = ctype - CODE_RANGES_NUM;\r
- if (index < UserDefinedPropertyNum)\r
- return onig_is_in_code_range((UChar* )UserDefinedPropertyRanges[index].ranges, code);\r
- else\r
- return ONIGERR_TYPE_BUG;\r
- }\r
-\r
- return onig_is_in_code_range((UChar* )CodeRanges[ctype], code);\r
-}\r
-\r
-\r
-extern int\r
-onigenc_unicode_ctype_code_range(OnigCtype ctype, const OnigCodePoint* ranges[])\r
-{\r
- if (ctype >= CODE_RANGES_NUM) {\r
- int index = ctype - CODE_RANGES_NUM;\r
- if (index < UserDefinedPropertyNum) {\r
- *ranges = UserDefinedPropertyRanges[index].ranges;\r
- return 0;\r
- }\r
- else\r
- return ONIGERR_TYPE_BUG;\r
- }\r
-\r
- *ranges = CodeRanges[ctype];\r
- return 0;\r
-}\r
-\r
-extern int\r
-onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,\r
- const OnigCodePoint* ranges[])\r
-{\r
- *sb_out = 0x00;\r
- return onigenc_unicode_ctype_code_range(ctype, ranges);\r
-}\r
-\r
-extern int\r
-onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)\r
-{\r
- int len;\r
- UChar *p;\r
- OnigCodePoint code;\r
- const struct PoolPropertyNameCtype* pc;\r
- char buf[PROPERTY_NAME_MAX_SIZE];\r
-\r
- p = name;\r
- len = 0;\r
- while (p < end) {\r
- code = ONIGENC_MBC_TO_CODE(enc, p, end);\r
- if (code >= 0x80)\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
-\r
- if (code != ' ' && code != '-' && code != '_') {\r
- buf[len++] = (char )code;\r
- if (len >= PROPERTY_NAME_MAX_SIZE)\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
- }\r
-\r
- p += enclen(enc, p);\r
- }\r
-\r
- buf[len] = 0;\r
-\r
- if (UserDefinedPropertyTable != 0) {\r
- UserDefinedPropertyValue* e;\r
- e = (UserDefinedPropertyValue* )NULL;\r
- onig_st_lookup_strend(UserDefinedPropertyTable,\r
- (const UChar* )buf, (const UChar* )buf + len,\r
- (hash_data_type* )((void* )(&e)));\r
- if (e != 0) {\r
- return e->ctype;\r
- }\r
- }\r
-\r
- pc = unicode_lookup_property_name(buf, len);\r
- if (pc != 0) {\r
- /* fprintf(stderr, "LOOKUP: %s: %d\n", buf, pc->ctype); */\r
-#ifndef USE_UNICODE_PROPERTIES\r
- if (pc->ctype > ONIGENC_MAX_STD_CTYPE)\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
-#endif\r
-\r
- return (int )pc->ctype;\r
- }\r
-\r
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;\r
-}\r
+++ /dev/null
-/* unicode_egcb_data.c: Generated by make_unicode_egcb_data.py. */\r
-/*-\r
- * Copyright (c) 2017-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#define GRAPHEME_BREAK_PROPERTY_VERSION 12_1_0\r
-\r
-/*\r
-CR\r
-Control\r
-Extend\r
-L\r
-LF\r
-LV\r
-LVT\r
-Prepend\r
-Regional_Indicator\r
-SpacingMark\r
-T\r
-V\r
-ZWJ\r
-*/\r
-\r
-static int EGCB_RANGE_NUM = 1326;\r
-static EGCB_RANGE_TYPE EGCB_RANGES[] = {\r
- {0x000000, 0x000009, EGCB_Control },\r
- {0x00000a, 0x00000a, EGCB_LF },\r
- {0x00000b, 0x00000c, EGCB_Control },\r
- {0x00000d, 0x00000d, EGCB_CR },\r
- {0x00000e, 0x00001f, EGCB_Control },\r
- {0x00007f, 0x00009f, EGCB_Control },\r
- {0x0000ad, 0x0000ad, EGCB_Control },\r
- {0x000300, 0x00036f, EGCB_Extend },\r
- {0x000483, 0x000489, EGCB_Extend },\r
- {0x000591, 0x0005bd, EGCB_Extend },\r
- {0x0005bf, 0x0005bf, EGCB_Extend },\r
- {0x0005c1, 0x0005c2, EGCB_Extend },\r
- {0x0005c4, 0x0005c5, EGCB_Extend },\r
- {0x0005c7, 0x0005c7, EGCB_Extend },\r
- {0x000600, 0x000605, EGCB_Prepend },\r
- {0x000610, 0x00061a, EGCB_Extend },\r
- {0x00061c, 0x00061c, EGCB_Control },\r
- {0x00064b, 0x00065f, EGCB_Extend },\r
- {0x000670, 0x000670, EGCB_Extend },\r
- {0x0006d6, 0x0006dc, EGCB_Extend },\r
- {0x0006dd, 0x0006dd, EGCB_Prepend },\r
- {0x0006df, 0x0006e4, EGCB_Extend },\r
- {0x0006e7, 0x0006e8, EGCB_Extend },\r
- {0x0006ea, 0x0006ed, EGCB_Extend },\r
- {0x00070f, 0x00070f, EGCB_Prepend },\r
- {0x000711, 0x000711, EGCB_Extend },\r
- {0x000730, 0x00074a, EGCB_Extend },\r
- {0x0007a6, 0x0007b0, EGCB_Extend },\r
- {0x0007eb, 0x0007f3, EGCB_Extend },\r
- {0x0007fd, 0x0007fd, EGCB_Extend },\r
- {0x000816, 0x000819, EGCB_Extend },\r
- {0x00081b, 0x000823, EGCB_Extend },\r
- {0x000825, 0x000827, EGCB_Extend },\r
- {0x000829, 0x00082d, EGCB_Extend },\r
- {0x000859, 0x00085b, EGCB_Extend },\r
- {0x0008d3, 0x0008e1, EGCB_Extend },\r
- {0x0008e2, 0x0008e2, EGCB_Prepend },\r
- {0x0008e3, 0x000902, EGCB_Extend },\r
- {0x000903, 0x000903, EGCB_SpacingMark },\r
- {0x00093a, 0x00093a, EGCB_Extend },\r
- {0x00093b, 0x00093b, EGCB_SpacingMark },\r
- {0x00093c, 0x00093c, EGCB_Extend },\r
- {0x00093e, 0x000940, EGCB_SpacingMark },\r
- {0x000941, 0x000948, EGCB_Extend },\r
- {0x000949, 0x00094c, EGCB_SpacingMark },\r
- {0x00094d, 0x00094d, EGCB_Extend },\r
- {0x00094e, 0x00094f, EGCB_SpacingMark },\r
- {0x000951, 0x000957, EGCB_Extend },\r
- {0x000962, 0x000963, EGCB_Extend },\r
- {0x000981, 0x000981, EGCB_Extend },\r
- {0x000982, 0x000983, EGCB_SpacingMark },\r
- {0x0009bc, 0x0009bc, EGCB_Extend },\r
- {0x0009be, 0x0009be, EGCB_Extend },\r
- {0x0009bf, 0x0009c0, EGCB_SpacingMark },\r
- {0x0009c1, 0x0009c4, EGCB_Extend },\r
- {0x0009c7, 0x0009c8, EGCB_SpacingMark },\r
- {0x0009cb, 0x0009cc, EGCB_SpacingMark },\r
- {0x0009cd, 0x0009cd, EGCB_Extend },\r
- {0x0009d7, 0x0009d7, EGCB_Extend },\r
- {0x0009e2, 0x0009e3, EGCB_Extend },\r
- {0x0009fe, 0x0009fe, EGCB_Extend },\r
- {0x000a01, 0x000a02, EGCB_Extend },\r
- {0x000a03, 0x000a03, EGCB_SpacingMark },\r
- {0x000a3c, 0x000a3c, EGCB_Extend },\r
- {0x000a3e, 0x000a40, EGCB_SpacingMark },\r
- {0x000a41, 0x000a42, EGCB_Extend },\r
- {0x000a47, 0x000a48, EGCB_Extend },\r
- {0x000a4b, 0x000a4d, EGCB_Extend },\r
- {0x000a51, 0x000a51, EGCB_Extend },\r
- {0x000a70, 0x000a71, EGCB_Extend },\r
- {0x000a75, 0x000a75, EGCB_Extend },\r
- {0x000a81, 0x000a82, EGCB_Extend },\r
- {0x000a83, 0x000a83, EGCB_SpacingMark },\r
- {0x000abc, 0x000abc, EGCB_Extend },\r
- {0x000abe, 0x000ac0, EGCB_SpacingMark },\r
- {0x000ac1, 0x000ac5, EGCB_Extend },\r
- {0x000ac7, 0x000ac8, EGCB_Extend },\r
- {0x000ac9, 0x000ac9, EGCB_SpacingMark },\r
- {0x000acb, 0x000acc, EGCB_SpacingMark },\r
- {0x000acd, 0x000acd, EGCB_Extend },\r
- {0x000ae2, 0x000ae3, EGCB_Extend },\r
- {0x000afa, 0x000aff, EGCB_Extend },\r
- {0x000b01, 0x000b01, EGCB_Extend },\r
- {0x000b02, 0x000b03, EGCB_SpacingMark },\r
- {0x000b3c, 0x000b3c, EGCB_Extend },\r
- {0x000b3e, 0x000b3f, EGCB_Extend },\r
- {0x000b40, 0x000b40, EGCB_SpacingMark },\r
- {0x000b41, 0x000b44, EGCB_Extend },\r
- {0x000b47, 0x000b48, EGCB_SpacingMark },\r
- {0x000b4b, 0x000b4c, EGCB_SpacingMark },\r
- {0x000b4d, 0x000b4d, EGCB_Extend },\r
- {0x000b56, 0x000b57, EGCB_Extend },\r
- {0x000b62, 0x000b63, EGCB_Extend },\r
- {0x000b82, 0x000b82, EGCB_Extend },\r
- {0x000bbe, 0x000bbe, EGCB_Extend },\r
- {0x000bbf, 0x000bbf, EGCB_SpacingMark },\r
- {0x000bc0, 0x000bc0, EGCB_Extend },\r
- {0x000bc1, 0x000bc2, EGCB_SpacingMark },\r
- {0x000bc6, 0x000bc8, EGCB_SpacingMark },\r
- {0x000bca, 0x000bcc, EGCB_SpacingMark },\r
- {0x000bcd, 0x000bcd, EGCB_Extend },\r
- {0x000bd7, 0x000bd7, EGCB_Extend },\r
- {0x000c00, 0x000c00, EGCB_Extend },\r
- {0x000c01, 0x000c03, EGCB_SpacingMark },\r
- {0x000c04, 0x000c04, EGCB_Extend },\r
- {0x000c3e, 0x000c40, EGCB_Extend },\r
- {0x000c41, 0x000c44, EGCB_SpacingMark },\r
- {0x000c46, 0x000c48, EGCB_Extend },\r
- {0x000c4a, 0x000c4d, EGCB_Extend },\r
- {0x000c55, 0x000c56, EGCB_Extend },\r
- {0x000c62, 0x000c63, EGCB_Extend },\r
- {0x000c81, 0x000c81, EGCB_Extend },\r
- {0x000c82, 0x000c83, EGCB_SpacingMark },\r
- {0x000cbc, 0x000cbc, EGCB_Extend },\r
- {0x000cbe, 0x000cbe, EGCB_SpacingMark },\r
- {0x000cbf, 0x000cbf, EGCB_Extend },\r
- {0x000cc0, 0x000cc1, EGCB_SpacingMark },\r
- {0x000cc2, 0x000cc2, EGCB_Extend },\r
- {0x000cc3, 0x000cc4, EGCB_SpacingMark },\r
- {0x000cc6, 0x000cc6, EGCB_Extend },\r
- {0x000cc7, 0x000cc8, EGCB_SpacingMark },\r
- {0x000cca, 0x000ccb, EGCB_SpacingMark },\r
- {0x000ccc, 0x000ccd, EGCB_Extend },\r
- {0x000cd5, 0x000cd6, EGCB_Extend },\r
- {0x000ce2, 0x000ce3, EGCB_Extend },\r
- {0x000d00, 0x000d01, EGCB_Extend },\r
- {0x000d02, 0x000d03, EGCB_SpacingMark },\r
- {0x000d3b, 0x000d3c, EGCB_Extend },\r
- {0x000d3e, 0x000d3e, EGCB_Extend },\r
- {0x000d3f, 0x000d40, EGCB_SpacingMark },\r
- {0x000d41, 0x000d44, EGCB_Extend },\r
- {0x000d46, 0x000d48, EGCB_SpacingMark },\r
- {0x000d4a, 0x000d4c, EGCB_SpacingMark },\r
- {0x000d4d, 0x000d4d, EGCB_Extend },\r
- {0x000d4e, 0x000d4e, EGCB_Prepend },\r
- {0x000d57, 0x000d57, EGCB_Extend },\r
- {0x000d62, 0x000d63, EGCB_Extend },\r
- {0x000d82, 0x000d83, EGCB_SpacingMark },\r
- {0x000dca, 0x000dca, EGCB_Extend },\r
- {0x000dcf, 0x000dcf, EGCB_Extend },\r
- {0x000dd0, 0x000dd1, EGCB_SpacingMark },\r
- {0x000dd2, 0x000dd4, EGCB_Extend },\r
- {0x000dd6, 0x000dd6, EGCB_Extend },\r
- {0x000dd8, 0x000dde, EGCB_SpacingMark },\r
- {0x000ddf, 0x000ddf, EGCB_Extend },\r
- {0x000df2, 0x000df3, EGCB_SpacingMark },\r
- {0x000e31, 0x000e31, EGCB_Extend },\r
- {0x000e33, 0x000e33, EGCB_SpacingMark },\r
- {0x000e34, 0x000e3a, EGCB_Extend },\r
- {0x000e47, 0x000e4e, EGCB_Extend },\r
- {0x000eb1, 0x000eb1, EGCB_Extend },\r
- {0x000eb3, 0x000eb3, EGCB_SpacingMark },\r
- {0x000eb4, 0x000ebc, EGCB_Extend },\r
- {0x000ec8, 0x000ecd, EGCB_Extend },\r
- {0x000f18, 0x000f19, EGCB_Extend },\r
- {0x000f35, 0x000f35, EGCB_Extend },\r
- {0x000f37, 0x000f37, EGCB_Extend },\r
- {0x000f39, 0x000f39, EGCB_Extend },\r
- {0x000f3e, 0x000f3f, EGCB_SpacingMark },\r
- {0x000f71, 0x000f7e, EGCB_Extend },\r
- {0x000f7f, 0x000f7f, EGCB_SpacingMark },\r
- {0x000f80, 0x000f84, EGCB_Extend },\r
- {0x000f86, 0x000f87, EGCB_Extend },\r
- {0x000f8d, 0x000f97, EGCB_Extend },\r
- {0x000f99, 0x000fbc, EGCB_Extend },\r
- {0x000fc6, 0x000fc6, EGCB_Extend },\r
- {0x00102d, 0x001030, EGCB_Extend },\r
- {0x001031, 0x001031, EGCB_SpacingMark },\r
- {0x001032, 0x001037, EGCB_Extend },\r
- {0x001039, 0x00103a, EGCB_Extend },\r
- {0x00103b, 0x00103c, EGCB_SpacingMark },\r
- {0x00103d, 0x00103e, EGCB_Extend },\r
- {0x001056, 0x001057, EGCB_SpacingMark },\r
- {0x001058, 0x001059, EGCB_Extend },\r
- {0x00105e, 0x001060, EGCB_Extend },\r
- {0x001071, 0x001074, EGCB_Extend },\r
- {0x001082, 0x001082, EGCB_Extend },\r
- {0x001084, 0x001084, EGCB_SpacingMark },\r
- {0x001085, 0x001086, EGCB_Extend },\r
- {0x00108d, 0x00108d, EGCB_Extend },\r
- {0x00109d, 0x00109d, EGCB_Extend },\r
- {0x001100, 0x00115f, EGCB_L },\r
- {0x001160, 0x0011a7, EGCB_V },\r
- {0x0011a8, 0x0011ff, EGCB_T },\r
- {0x00135d, 0x00135f, EGCB_Extend },\r
- {0x001712, 0x001714, EGCB_Extend },\r
- {0x001732, 0x001734, EGCB_Extend },\r
- {0x001752, 0x001753, EGCB_Extend },\r
- {0x001772, 0x001773, EGCB_Extend },\r
- {0x0017b4, 0x0017b5, EGCB_Extend },\r
- {0x0017b6, 0x0017b6, EGCB_SpacingMark },\r
- {0x0017b7, 0x0017bd, EGCB_Extend },\r
- {0x0017be, 0x0017c5, EGCB_SpacingMark },\r
- {0x0017c6, 0x0017c6, EGCB_Extend },\r
- {0x0017c7, 0x0017c8, EGCB_SpacingMark },\r
- {0x0017c9, 0x0017d3, EGCB_Extend },\r
- {0x0017dd, 0x0017dd, EGCB_Extend },\r
- {0x00180b, 0x00180d, EGCB_Extend },\r
- {0x00180e, 0x00180e, EGCB_Control },\r
- {0x001885, 0x001886, EGCB_Extend },\r
- {0x0018a9, 0x0018a9, EGCB_Extend },\r
- {0x001920, 0x001922, EGCB_Extend },\r
- {0x001923, 0x001926, EGCB_SpacingMark },\r
- {0x001927, 0x001928, EGCB_Extend },\r
- {0x001929, 0x00192b, EGCB_SpacingMark },\r
- {0x001930, 0x001931, EGCB_SpacingMark },\r
- {0x001932, 0x001932, EGCB_Extend },\r
- {0x001933, 0x001938, EGCB_SpacingMark },\r
- {0x001939, 0x00193b, EGCB_Extend },\r
- {0x001a17, 0x001a18, EGCB_Extend },\r
- {0x001a19, 0x001a1a, EGCB_SpacingMark },\r
- {0x001a1b, 0x001a1b, EGCB_Extend },\r
- {0x001a55, 0x001a55, EGCB_SpacingMark },\r
- {0x001a56, 0x001a56, EGCB_Extend },\r
- {0x001a57, 0x001a57, EGCB_SpacingMark },\r
- {0x001a58, 0x001a5e, EGCB_Extend },\r
- {0x001a60, 0x001a60, EGCB_Extend },\r
- {0x001a62, 0x001a62, EGCB_Extend },\r
- {0x001a65, 0x001a6c, EGCB_Extend },\r
- {0x001a6d, 0x001a72, EGCB_SpacingMark },\r
- {0x001a73, 0x001a7c, EGCB_Extend },\r
- {0x001a7f, 0x001a7f, EGCB_Extend },\r
- {0x001ab0, 0x001abe, EGCB_Extend },\r
- {0x001b00, 0x001b03, EGCB_Extend },\r
- {0x001b04, 0x001b04, EGCB_SpacingMark },\r
- {0x001b34, 0x001b3a, EGCB_Extend },\r
- {0x001b3b, 0x001b3b, EGCB_SpacingMark },\r
- {0x001b3c, 0x001b3c, EGCB_Extend },\r
- {0x001b3d, 0x001b41, EGCB_SpacingMark },\r
- {0x001b42, 0x001b42, EGCB_Extend },\r
- {0x001b43, 0x001b44, EGCB_SpacingMark },\r
- {0x001b6b, 0x001b73, EGCB_Extend },\r
- {0x001b80, 0x001b81, EGCB_Extend },\r
- {0x001b82, 0x001b82, EGCB_SpacingMark },\r
- {0x001ba1, 0x001ba1, EGCB_SpacingMark },\r
- {0x001ba2, 0x001ba5, EGCB_Extend },\r
- {0x001ba6, 0x001ba7, EGCB_SpacingMark },\r
- {0x001ba8, 0x001ba9, EGCB_Extend },\r
- {0x001baa, 0x001baa, EGCB_SpacingMark },\r
- {0x001bab, 0x001bad, EGCB_Extend },\r
- {0x001be6, 0x001be6, EGCB_Extend },\r
- {0x001be7, 0x001be7, EGCB_SpacingMark },\r
- {0x001be8, 0x001be9, EGCB_Extend },\r
- {0x001bea, 0x001bec, EGCB_SpacingMark },\r
- {0x001bed, 0x001bed, EGCB_Extend },\r
- {0x001bee, 0x001bee, EGCB_SpacingMark },\r
- {0x001bef, 0x001bf1, EGCB_Extend },\r
- {0x001bf2, 0x001bf3, EGCB_SpacingMark },\r
- {0x001c24, 0x001c2b, EGCB_SpacingMark },\r
- {0x001c2c, 0x001c33, EGCB_Extend },\r
- {0x001c34, 0x001c35, EGCB_SpacingMark },\r
- {0x001c36, 0x001c37, EGCB_Extend },\r
- {0x001cd0, 0x001cd2, EGCB_Extend },\r
- {0x001cd4, 0x001ce0, EGCB_Extend },\r
- {0x001ce1, 0x001ce1, EGCB_SpacingMark },\r
- {0x001ce2, 0x001ce8, EGCB_Extend },\r
- {0x001ced, 0x001ced, EGCB_Extend },\r
- {0x001cf4, 0x001cf4, EGCB_Extend },\r
- {0x001cf7, 0x001cf7, EGCB_SpacingMark },\r
- {0x001cf8, 0x001cf9, EGCB_Extend },\r
- {0x001dc0, 0x001df9, EGCB_Extend },\r
- {0x001dfb, 0x001dff, EGCB_Extend },\r
- {0x00200b, 0x00200b, EGCB_Control },\r
- {0x00200c, 0x00200c, EGCB_Extend },\r
- {0x00200d, 0x00200d, EGCB_ZWJ },\r
- {0x00200e, 0x00200f, EGCB_Control },\r
- {0x002028, 0x00202e, EGCB_Control },\r
- {0x002060, 0x00206f, EGCB_Control },\r
- {0x0020d0, 0x0020f0, EGCB_Extend },\r
- {0x002cef, 0x002cf1, EGCB_Extend },\r
- {0x002d7f, 0x002d7f, EGCB_Extend },\r
- {0x002de0, 0x002dff, EGCB_Extend },\r
- {0x00302a, 0x00302f, EGCB_Extend },\r
- {0x003099, 0x00309a, EGCB_Extend },\r
- {0x00a66f, 0x00a672, EGCB_Extend },\r
- {0x00a674, 0x00a67d, EGCB_Extend },\r
- {0x00a69e, 0x00a69f, EGCB_Extend },\r
- {0x00a6f0, 0x00a6f1, EGCB_Extend },\r
- {0x00a802, 0x00a802, EGCB_Extend },\r
- {0x00a806, 0x00a806, EGCB_Extend },\r
- {0x00a80b, 0x00a80b, EGCB_Extend },\r
- {0x00a823, 0x00a824, EGCB_SpacingMark },\r
- {0x00a825, 0x00a826, EGCB_Extend },\r
- {0x00a827, 0x00a827, EGCB_SpacingMark },\r
- {0x00a880, 0x00a881, EGCB_SpacingMark },\r
- {0x00a8b4, 0x00a8c3, EGCB_SpacingMark },\r
- {0x00a8c4, 0x00a8c5, EGCB_Extend },\r
- {0x00a8e0, 0x00a8f1, EGCB_Extend },\r
- {0x00a8ff, 0x00a8ff, EGCB_Extend },\r
- {0x00a926, 0x00a92d, EGCB_Extend },\r
- {0x00a947, 0x00a951, EGCB_Extend },\r
- {0x00a952, 0x00a953, EGCB_SpacingMark },\r
- {0x00a960, 0x00a97c, EGCB_L },\r
- {0x00a980, 0x00a982, EGCB_Extend },\r
- {0x00a983, 0x00a983, EGCB_SpacingMark },\r
- {0x00a9b3, 0x00a9b3, EGCB_Extend },\r
- {0x00a9b4, 0x00a9b5, EGCB_SpacingMark },\r
- {0x00a9b6, 0x00a9b9, EGCB_Extend },\r
- {0x00a9ba, 0x00a9bb, EGCB_SpacingMark },\r
- {0x00a9bc, 0x00a9bd, EGCB_Extend },\r
- {0x00a9be, 0x00a9c0, EGCB_SpacingMark },\r
- {0x00a9e5, 0x00a9e5, EGCB_Extend },\r
- {0x00aa29, 0x00aa2e, EGCB_Extend },\r
- {0x00aa2f, 0x00aa30, EGCB_SpacingMark },\r
- {0x00aa31, 0x00aa32, EGCB_Extend },\r
- {0x00aa33, 0x00aa34, EGCB_SpacingMark },\r
- {0x00aa35, 0x00aa36, EGCB_Extend },\r
- {0x00aa43, 0x00aa43, EGCB_Extend },\r
- {0x00aa4c, 0x00aa4c, EGCB_Extend },\r
- {0x00aa4d, 0x00aa4d, EGCB_SpacingMark },\r
- {0x00aa7c, 0x00aa7c, EGCB_Extend },\r
- {0x00aab0, 0x00aab0, EGCB_Extend },\r
- {0x00aab2, 0x00aab4, EGCB_Extend },\r
- {0x00aab7, 0x00aab8, EGCB_Extend },\r
- {0x00aabe, 0x00aabf, EGCB_Extend },\r
- {0x00aac1, 0x00aac1, EGCB_Extend },\r
- {0x00aaeb, 0x00aaeb, EGCB_SpacingMark },\r
- {0x00aaec, 0x00aaed, EGCB_Extend },\r
- {0x00aaee, 0x00aaef, EGCB_SpacingMark },\r
- {0x00aaf5, 0x00aaf5, EGCB_SpacingMark },\r
- {0x00aaf6, 0x00aaf6, EGCB_Extend },\r
- {0x00abe3, 0x00abe4, EGCB_SpacingMark },\r
- {0x00abe5, 0x00abe5, EGCB_Extend },\r
- {0x00abe6, 0x00abe7, EGCB_SpacingMark },\r
- {0x00abe8, 0x00abe8, EGCB_Extend },\r
- {0x00abe9, 0x00abea, EGCB_SpacingMark },\r
- {0x00abec, 0x00abec, EGCB_SpacingMark },\r
- {0x00abed, 0x00abed, EGCB_Extend },\r
- {0x00ac00, 0x00ac00, EGCB_LV },\r
- {0x00ac01, 0x00ac1b, EGCB_LVT },\r
- {0x00ac1c, 0x00ac1c, EGCB_LV },\r
- {0x00ac1d, 0x00ac37, EGCB_LVT },\r
- {0x00ac38, 0x00ac38, EGCB_LV },\r
- {0x00ac39, 0x00ac53, EGCB_LVT },\r
- {0x00ac54, 0x00ac54, EGCB_LV },\r
- {0x00ac55, 0x00ac6f, EGCB_LVT },\r
- {0x00ac70, 0x00ac70, EGCB_LV },\r
- {0x00ac71, 0x00ac8b, EGCB_LVT },\r
- {0x00ac8c, 0x00ac8c, EGCB_LV },\r
- {0x00ac8d, 0x00aca7, EGCB_LVT },\r
- {0x00aca8, 0x00aca8, EGCB_LV },\r
- {0x00aca9, 0x00acc3, EGCB_LVT },\r
- {0x00acc4, 0x00acc4, EGCB_LV },\r
- {0x00acc5, 0x00acdf, EGCB_LVT },\r
- {0x00ace0, 0x00ace0, EGCB_LV },\r
- {0x00ace1, 0x00acfb, EGCB_LVT },\r
- {0x00acfc, 0x00acfc, EGCB_LV },\r
- {0x00acfd, 0x00ad17, EGCB_LVT },\r
- {0x00ad18, 0x00ad18, EGCB_LV },\r
- {0x00ad19, 0x00ad33, EGCB_LVT },\r
- {0x00ad34, 0x00ad34, EGCB_LV },\r
- {0x00ad35, 0x00ad4f, EGCB_LVT },\r
- {0x00ad50, 0x00ad50, EGCB_LV },\r
- {0x00ad51, 0x00ad6b, EGCB_LVT },\r
- {0x00ad6c, 0x00ad6c, EGCB_LV },\r
- {0x00ad6d, 0x00ad87, EGCB_LVT },\r
- {0x00ad88, 0x00ad88, EGCB_LV },\r
- {0x00ad89, 0x00ada3, EGCB_LVT },\r
- {0x00ada4, 0x00ada4, EGCB_LV },\r
- {0x00ada5, 0x00adbf, EGCB_LVT },\r
- {0x00adc0, 0x00adc0, EGCB_LV },\r
- {0x00adc1, 0x00addb, EGCB_LVT },\r
- {0x00addc, 0x00addc, EGCB_LV },\r
- {0x00addd, 0x00adf7, EGCB_LVT },\r
- {0x00adf8, 0x00adf8, EGCB_LV },\r
- {0x00adf9, 0x00ae13, EGCB_LVT },\r
- {0x00ae14, 0x00ae14, EGCB_LV },\r
- {0x00ae15, 0x00ae2f, EGCB_LVT },\r
- {0x00ae30, 0x00ae30, EGCB_LV },\r
- {0x00ae31, 0x00ae4b, EGCB_LVT },\r
- {0x00ae4c, 0x00ae4c, EGCB_LV },\r
- {0x00ae4d, 0x00ae67, EGCB_LVT },\r
- {0x00ae68, 0x00ae68, EGCB_LV },\r
- {0x00ae69, 0x00ae83, EGCB_LVT },\r
- {0x00ae84, 0x00ae84, EGCB_LV },\r
- {0x00ae85, 0x00ae9f, EGCB_LVT },\r
- {0x00aea0, 0x00aea0, EGCB_LV },\r
- {0x00aea1, 0x00aebb, EGCB_LVT },\r
- {0x00aebc, 0x00aebc, EGCB_LV },\r
- {0x00aebd, 0x00aed7, EGCB_LVT },\r
- {0x00aed8, 0x00aed8, EGCB_LV },\r
- {0x00aed9, 0x00aef3, EGCB_LVT },\r
- {0x00aef4, 0x00aef4, EGCB_LV },\r
- {0x00aef5, 0x00af0f, EGCB_LVT },\r
- {0x00af10, 0x00af10, EGCB_LV },\r
- {0x00af11, 0x00af2b, EGCB_LVT },\r
- {0x00af2c, 0x00af2c, EGCB_LV },\r
- {0x00af2d, 0x00af47, EGCB_LVT },\r
- {0x00af48, 0x00af48, EGCB_LV },\r
- {0x00af49, 0x00af63, EGCB_LVT },\r
- {0x00af64, 0x00af64, EGCB_LV },\r
- {0x00af65, 0x00af7f, EGCB_LVT },\r
- {0x00af80, 0x00af80, EGCB_LV },\r
- {0x00af81, 0x00af9b, EGCB_LVT },\r
- {0x00af9c, 0x00af9c, EGCB_LV },\r
- {0x00af9d, 0x00afb7, EGCB_LVT },\r
- {0x00afb8, 0x00afb8, EGCB_LV },\r
- {0x00afb9, 0x00afd3, EGCB_LVT },\r
- {0x00afd4, 0x00afd4, EGCB_LV },\r
- {0x00afd5, 0x00afef, EGCB_LVT },\r
- {0x00aff0, 0x00aff0, EGCB_LV },\r
- {0x00aff1, 0x00b00b, EGCB_LVT },\r
- {0x00b00c, 0x00b00c, EGCB_LV },\r
- {0x00b00d, 0x00b027, EGCB_LVT },\r
- {0x00b028, 0x00b028, EGCB_LV },\r
- {0x00b029, 0x00b043, EGCB_LVT },\r
- {0x00b044, 0x00b044, EGCB_LV },\r
- {0x00b045, 0x00b05f, EGCB_LVT },\r
- {0x00b060, 0x00b060, EGCB_LV },\r
- {0x00b061, 0x00b07b, EGCB_LVT },\r
- {0x00b07c, 0x00b07c, EGCB_LV },\r
- {0x00b07d, 0x00b097, EGCB_LVT },\r
- {0x00b098, 0x00b098, EGCB_LV },\r
- {0x00b099, 0x00b0b3, EGCB_LVT },\r
- {0x00b0b4, 0x00b0b4, EGCB_LV },\r
- {0x00b0b5, 0x00b0cf, EGCB_LVT },\r
- {0x00b0d0, 0x00b0d0, EGCB_LV },\r
- {0x00b0d1, 0x00b0eb, EGCB_LVT },\r
- {0x00b0ec, 0x00b0ec, EGCB_LV },\r
- {0x00b0ed, 0x00b107, EGCB_LVT },\r
- {0x00b108, 0x00b108, EGCB_LV },\r
- {0x00b109, 0x00b123, EGCB_LVT },\r
- {0x00b124, 0x00b124, EGCB_LV },\r
- {0x00b125, 0x00b13f, EGCB_LVT },\r
- {0x00b140, 0x00b140, EGCB_LV },\r
- {0x00b141, 0x00b15b, EGCB_LVT },\r
- {0x00b15c, 0x00b15c, EGCB_LV },\r
- {0x00b15d, 0x00b177, EGCB_LVT },\r
- {0x00b178, 0x00b178, EGCB_LV },\r
- {0x00b179, 0x00b193, EGCB_LVT },\r
- {0x00b194, 0x00b194, EGCB_LV },\r
- {0x00b195, 0x00b1af, EGCB_LVT },\r
- {0x00b1b0, 0x00b1b0, EGCB_LV },\r
- {0x00b1b1, 0x00b1cb, EGCB_LVT },\r
- {0x00b1cc, 0x00b1cc, EGCB_LV },\r
- {0x00b1cd, 0x00b1e7, EGCB_LVT },\r
- {0x00b1e8, 0x00b1e8, EGCB_LV },\r
- {0x00b1e9, 0x00b203, EGCB_LVT },\r
- {0x00b204, 0x00b204, EGCB_LV },\r
- {0x00b205, 0x00b21f, EGCB_LVT },\r
- {0x00b220, 0x00b220, EGCB_LV },\r
- {0x00b221, 0x00b23b, EGCB_LVT },\r
- {0x00b23c, 0x00b23c, EGCB_LV },\r
- {0x00b23d, 0x00b257, EGCB_LVT },\r
- {0x00b258, 0x00b258, EGCB_LV },\r
- {0x00b259, 0x00b273, EGCB_LVT },\r
- {0x00b274, 0x00b274, EGCB_LV },\r
- {0x00b275, 0x00b28f, EGCB_LVT },\r
- {0x00b290, 0x00b290, EGCB_LV },\r
- {0x00b291, 0x00b2ab, EGCB_LVT },\r
- {0x00b2ac, 0x00b2ac, EGCB_LV },\r
- {0x00b2ad, 0x00b2c7, EGCB_LVT },\r
- {0x00b2c8, 0x00b2c8, EGCB_LV },\r
- {0x00b2c9, 0x00b2e3, EGCB_LVT },\r
- {0x00b2e4, 0x00b2e4, EGCB_LV },\r
- {0x00b2e5, 0x00b2ff, EGCB_LVT },\r
- {0x00b300, 0x00b300, EGCB_LV },\r
- {0x00b301, 0x00b31b, EGCB_LVT },\r
- {0x00b31c, 0x00b31c, EGCB_LV },\r
- {0x00b31d, 0x00b337, EGCB_LVT },\r
- {0x00b338, 0x00b338, EGCB_LV },\r
- {0x00b339, 0x00b353, EGCB_LVT },\r
- {0x00b354, 0x00b354, EGCB_LV },\r
- {0x00b355, 0x00b36f, EGCB_LVT },\r
- {0x00b370, 0x00b370, EGCB_LV },\r
- {0x00b371, 0x00b38b, EGCB_LVT },\r
- {0x00b38c, 0x00b38c, EGCB_LV },\r
- {0x00b38d, 0x00b3a7, EGCB_LVT },\r
- {0x00b3a8, 0x00b3a8, EGCB_LV },\r
- {0x00b3a9, 0x00b3c3, EGCB_LVT },\r
- {0x00b3c4, 0x00b3c4, EGCB_LV },\r
- {0x00b3c5, 0x00b3df, EGCB_LVT },\r
- {0x00b3e0, 0x00b3e0, EGCB_LV },\r
- {0x00b3e1, 0x00b3fb, EGCB_LVT },\r
- {0x00b3fc, 0x00b3fc, EGCB_LV },\r
- {0x00b3fd, 0x00b417, EGCB_LVT },\r
- {0x00b418, 0x00b418, EGCB_LV },\r
- {0x00b419, 0x00b433, EGCB_LVT },\r
- {0x00b434, 0x00b434, EGCB_LV },\r
- {0x00b435, 0x00b44f, EGCB_LVT },\r
- {0x00b450, 0x00b450, EGCB_LV },\r
- {0x00b451, 0x00b46b, EGCB_LVT },\r
- {0x00b46c, 0x00b46c, EGCB_LV },\r
- {0x00b46d, 0x00b487, EGCB_LVT },\r
- {0x00b488, 0x00b488, EGCB_LV },\r
- {0x00b489, 0x00b4a3, EGCB_LVT },\r
- {0x00b4a4, 0x00b4a4, EGCB_LV },\r
- {0x00b4a5, 0x00b4bf, EGCB_LVT },\r
- {0x00b4c0, 0x00b4c0, EGCB_LV },\r
- {0x00b4c1, 0x00b4db, EGCB_LVT },\r
- {0x00b4dc, 0x00b4dc, EGCB_LV },\r
- {0x00b4dd, 0x00b4f7, EGCB_LVT },\r
- {0x00b4f8, 0x00b4f8, EGCB_LV },\r
- {0x00b4f9, 0x00b513, EGCB_LVT },\r
- {0x00b514, 0x00b514, EGCB_LV },\r
- {0x00b515, 0x00b52f, EGCB_LVT },\r
- {0x00b530, 0x00b530, EGCB_LV },\r
- {0x00b531, 0x00b54b, EGCB_LVT },\r
- {0x00b54c, 0x00b54c, EGCB_LV },\r
- {0x00b54d, 0x00b567, EGCB_LVT },\r
- {0x00b568, 0x00b568, EGCB_LV },\r
- {0x00b569, 0x00b583, EGCB_LVT },\r
- {0x00b584, 0x00b584, EGCB_LV },\r
- {0x00b585, 0x00b59f, EGCB_LVT },\r
- {0x00b5a0, 0x00b5a0, EGCB_LV },\r
- {0x00b5a1, 0x00b5bb, EGCB_LVT },\r
- {0x00b5bc, 0x00b5bc, EGCB_LV },\r
- {0x00b5bd, 0x00b5d7, EGCB_LVT },\r
- {0x00b5d8, 0x00b5d8, EGCB_LV },\r
- {0x00b5d9, 0x00b5f3, EGCB_LVT },\r
- {0x00b5f4, 0x00b5f4, EGCB_LV },\r
- {0x00b5f5, 0x00b60f, EGCB_LVT },\r
- {0x00b610, 0x00b610, EGCB_LV },\r
- {0x00b611, 0x00b62b, EGCB_LVT },\r
- {0x00b62c, 0x00b62c, EGCB_LV },\r
- {0x00b62d, 0x00b647, EGCB_LVT },\r
- {0x00b648, 0x00b648, EGCB_LV },\r
- {0x00b649, 0x00b663, EGCB_LVT },\r
- {0x00b664, 0x00b664, EGCB_LV },\r
- {0x00b665, 0x00b67f, EGCB_LVT },\r
- {0x00b680, 0x00b680, EGCB_LV },\r
- {0x00b681, 0x00b69b, EGCB_LVT },\r
- {0x00b69c, 0x00b69c, EGCB_LV },\r
- {0x00b69d, 0x00b6b7, EGCB_LVT },\r
- {0x00b6b8, 0x00b6b8, EGCB_LV },\r
- {0x00b6b9, 0x00b6d3, EGCB_LVT },\r
- {0x00b6d4, 0x00b6d4, EGCB_LV },\r
- {0x00b6d5, 0x00b6ef, EGCB_LVT },\r
- {0x00b6f0, 0x00b6f0, EGCB_LV },\r
- {0x00b6f1, 0x00b70b, EGCB_LVT },\r
- {0x00b70c, 0x00b70c, EGCB_LV },\r
- {0x00b70d, 0x00b727, EGCB_LVT },\r
- {0x00b728, 0x00b728, EGCB_LV },\r
- {0x00b729, 0x00b743, EGCB_LVT },\r
- {0x00b744, 0x00b744, EGCB_LV },\r
- {0x00b745, 0x00b75f, EGCB_LVT },\r
- {0x00b760, 0x00b760, EGCB_LV },\r
- {0x00b761, 0x00b77b, EGCB_LVT },\r
- {0x00b77c, 0x00b77c, EGCB_LV },\r
- {0x00b77d, 0x00b797, EGCB_LVT },\r
- {0x00b798, 0x00b798, EGCB_LV },\r
- {0x00b799, 0x00b7b3, EGCB_LVT },\r
- {0x00b7b4, 0x00b7b4, EGCB_LV },\r
- {0x00b7b5, 0x00b7cf, EGCB_LVT },\r
- {0x00b7d0, 0x00b7d0, EGCB_LV },\r
- {0x00b7d1, 0x00b7eb, EGCB_LVT },\r
- {0x00b7ec, 0x00b7ec, EGCB_LV },\r
- {0x00b7ed, 0x00b807, EGCB_LVT },\r
- {0x00b808, 0x00b808, EGCB_LV },\r
- {0x00b809, 0x00b823, EGCB_LVT },\r
- {0x00b824, 0x00b824, EGCB_LV },\r
- {0x00b825, 0x00b83f, EGCB_LVT },\r
- {0x00b840, 0x00b840, EGCB_LV },\r
- {0x00b841, 0x00b85b, EGCB_LVT },\r
- {0x00b85c, 0x00b85c, EGCB_LV },\r
- {0x00b85d, 0x00b877, EGCB_LVT },\r
- {0x00b878, 0x00b878, EGCB_LV },\r
- {0x00b879, 0x00b893, EGCB_LVT },\r
- {0x00b894, 0x00b894, EGCB_LV },\r
- {0x00b895, 0x00b8af, EGCB_LVT },\r
- {0x00b8b0, 0x00b8b0, EGCB_LV },\r
- {0x00b8b1, 0x00b8cb, EGCB_LVT },\r
- {0x00b8cc, 0x00b8cc, EGCB_LV },\r
- {0x00b8cd, 0x00b8e7, EGCB_LVT },\r
- {0x00b8e8, 0x00b8e8, EGCB_LV },\r
- {0x00b8e9, 0x00b903, EGCB_LVT },\r
- {0x00b904, 0x00b904, EGCB_LV },\r
- {0x00b905, 0x00b91f, EGCB_LVT },\r
- {0x00b920, 0x00b920, EGCB_LV },\r
- {0x00b921, 0x00b93b, EGCB_LVT },\r
- {0x00b93c, 0x00b93c, EGCB_LV },\r
- {0x00b93d, 0x00b957, EGCB_LVT },\r
- {0x00b958, 0x00b958, EGCB_LV },\r
- {0x00b959, 0x00b973, EGCB_LVT },\r
- {0x00b974, 0x00b974, EGCB_LV },\r
- {0x00b975, 0x00b98f, EGCB_LVT },\r
- {0x00b990, 0x00b990, EGCB_LV },\r
- {0x00b991, 0x00b9ab, EGCB_LVT },\r
- {0x00b9ac, 0x00b9ac, EGCB_LV },\r
- {0x00b9ad, 0x00b9c7, EGCB_LVT },\r
- {0x00b9c8, 0x00b9c8, EGCB_LV },\r
- {0x00b9c9, 0x00b9e3, EGCB_LVT },\r
- {0x00b9e4, 0x00b9e4, EGCB_LV },\r
- {0x00b9e5, 0x00b9ff, EGCB_LVT },\r
- {0x00ba00, 0x00ba00, EGCB_LV },\r
- {0x00ba01, 0x00ba1b, EGCB_LVT },\r
- {0x00ba1c, 0x00ba1c, EGCB_LV },\r
- {0x00ba1d, 0x00ba37, EGCB_LVT },\r
- {0x00ba38, 0x00ba38, EGCB_LV },\r
- {0x00ba39, 0x00ba53, EGCB_LVT },\r
- {0x00ba54, 0x00ba54, EGCB_LV },\r
- {0x00ba55, 0x00ba6f, EGCB_LVT },\r
- {0x00ba70, 0x00ba70, EGCB_LV },\r
- {0x00ba71, 0x00ba8b, EGCB_LVT },\r
- {0x00ba8c, 0x00ba8c, EGCB_LV },\r
- {0x00ba8d, 0x00baa7, EGCB_LVT },\r
- {0x00baa8, 0x00baa8, EGCB_LV },\r
- {0x00baa9, 0x00bac3, EGCB_LVT },\r
- {0x00bac4, 0x00bac4, EGCB_LV },\r
- {0x00bac5, 0x00badf, EGCB_LVT },\r
- {0x00bae0, 0x00bae0, EGCB_LV },\r
- {0x00bae1, 0x00bafb, EGCB_LVT },\r
- {0x00bafc, 0x00bafc, EGCB_LV },\r
- {0x00bafd, 0x00bb17, EGCB_LVT },\r
- {0x00bb18, 0x00bb18, EGCB_LV },\r
- {0x00bb19, 0x00bb33, EGCB_LVT },\r
- {0x00bb34, 0x00bb34, EGCB_LV },\r
- {0x00bb35, 0x00bb4f, EGCB_LVT },\r
- {0x00bb50, 0x00bb50, EGCB_LV },\r
- {0x00bb51, 0x00bb6b, EGCB_LVT },\r
- {0x00bb6c, 0x00bb6c, EGCB_LV },\r
- {0x00bb6d, 0x00bb87, EGCB_LVT },\r
- {0x00bb88, 0x00bb88, EGCB_LV },\r
- {0x00bb89, 0x00bba3, EGCB_LVT },\r
- {0x00bba4, 0x00bba4, EGCB_LV },\r
- {0x00bba5, 0x00bbbf, EGCB_LVT },\r
- {0x00bbc0, 0x00bbc0, EGCB_LV },\r
- {0x00bbc1, 0x00bbdb, EGCB_LVT },\r
- {0x00bbdc, 0x00bbdc, EGCB_LV },\r
- {0x00bbdd, 0x00bbf7, EGCB_LVT },\r
- {0x00bbf8, 0x00bbf8, EGCB_LV },\r
- {0x00bbf9, 0x00bc13, EGCB_LVT },\r
- {0x00bc14, 0x00bc14, EGCB_LV },\r
- {0x00bc15, 0x00bc2f, EGCB_LVT },\r
- {0x00bc30, 0x00bc30, EGCB_LV },\r
- {0x00bc31, 0x00bc4b, EGCB_LVT },\r
- {0x00bc4c, 0x00bc4c, EGCB_LV },\r
- {0x00bc4d, 0x00bc67, EGCB_LVT },\r
- {0x00bc68, 0x00bc68, EGCB_LV },\r
- {0x00bc69, 0x00bc83, EGCB_LVT },\r
- {0x00bc84, 0x00bc84, EGCB_LV },\r
- {0x00bc85, 0x00bc9f, EGCB_LVT },\r
- {0x00bca0, 0x00bca0, EGCB_LV },\r
- {0x00bca1, 0x00bcbb, EGCB_LVT },\r
- {0x00bcbc, 0x00bcbc, EGCB_LV },\r
- {0x00bcbd, 0x00bcd7, EGCB_LVT },\r
- {0x00bcd8, 0x00bcd8, EGCB_LV },\r
- {0x00bcd9, 0x00bcf3, EGCB_LVT },\r
- {0x00bcf4, 0x00bcf4, EGCB_LV },\r
- {0x00bcf5, 0x00bd0f, EGCB_LVT },\r
- {0x00bd10, 0x00bd10, EGCB_LV },\r
- {0x00bd11, 0x00bd2b, EGCB_LVT },\r
- {0x00bd2c, 0x00bd2c, EGCB_LV },\r
- {0x00bd2d, 0x00bd47, EGCB_LVT },\r
- {0x00bd48, 0x00bd48, EGCB_LV },\r
- {0x00bd49, 0x00bd63, EGCB_LVT },\r
- {0x00bd64, 0x00bd64, EGCB_LV },\r
- {0x00bd65, 0x00bd7f, EGCB_LVT },\r
- {0x00bd80, 0x00bd80, EGCB_LV },\r
- {0x00bd81, 0x00bd9b, EGCB_LVT },\r
- {0x00bd9c, 0x00bd9c, EGCB_LV },\r
- {0x00bd9d, 0x00bdb7, EGCB_LVT },\r
- {0x00bdb8, 0x00bdb8, EGCB_LV },\r
- {0x00bdb9, 0x00bdd3, EGCB_LVT },\r
- {0x00bdd4, 0x00bdd4, EGCB_LV },\r
- {0x00bdd5, 0x00bdef, EGCB_LVT },\r
- {0x00bdf0, 0x00bdf0, EGCB_LV },\r
- {0x00bdf1, 0x00be0b, EGCB_LVT },\r
- {0x00be0c, 0x00be0c, EGCB_LV },\r
- {0x00be0d, 0x00be27, EGCB_LVT },\r
- {0x00be28, 0x00be28, EGCB_LV },\r
- {0x00be29, 0x00be43, EGCB_LVT },\r
- {0x00be44, 0x00be44, EGCB_LV },\r
- {0x00be45, 0x00be5f, EGCB_LVT },\r
- {0x00be60, 0x00be60, EGCB_LV },\r
- {0x00be61, 0x00be7b, EGCB_LVT },\r
- {0x00be7c, 0x00be7c, EGCB_LV },\r
- {0x00be7d, 0x00be97, EGCB_LVT },\r
- {0x00be98, 0x00be98, EGCB_LV },\r
- {0x00be99, 0x00beb3, EGCB_LVT },\r
- {0x00beb4, 0x00beb4, EGCB_LV },\r
- {0x00beb5, 0x00becf, EGCB_LVT },\r
- {0x00bed0, 0x00bed0, EGCB_LV },\r
- {0x00bed1, 0x00beeb, EGCB_LVT },\r
- {0x00beec, 0x00beec, EGCB_LV },\r
- {0x00beed, 0x00bf07, EGCB_LVT },\r
- {0x00bf08, 0x00bf08, EGCB_LV },\r
- {0x00bf09, 0x00bf23, EGCB_LVT },\r
- {0x00bf24, 0x00bf24, EGCB_LV },\r
- {0x00bf25, 0x00bf3f, EGCB_LVT },\r
- {0x00bf40, 0x00bf40, EGCB_LV },\r
- {0x00bf41, 0x00bf5b, EGCB_LVT },\r
- {0x00bf5c, 0x00bf5c, EGCB_LV },\r
- {0x00bf5d, 0x00bf77, EGCB_LVT },\r
- {0x00bf78, 0x00bf78, EGCB_LV },\r
- {0x00bf79, 0x00bf93, EGCB_LVT },\r
- {0x00bf94, 0x00bf94, EGCB_LV },\r
- {0x00bf95, 0x00bfaf, EGCB_LVT },\r
- {0x00bfb0, 0x00bfb0, EGCB_LV },\r
- {0x00bfb1, 0x00bfcb, EGCB_LVT },\r
- {0x00bfcc, 0x00bfcc, EGCB_LV },\r
- {0x00bfcd, 0x00bfe7, EGCB_LVT },\r
- {0x00bfe8, 0x00bfe8, EGCB_LV },\r
- {0x00bfe9, 0x00c003, EGCB_LVT },\r
- {0x00c004, 0x00c004, EGCB_LV },\r
- {0x00c005, 0x00c01f, EGCB_LVT },\r
- {0x00c020, 0x00c020, EGCB_LV },\r
- {0x00c021, 0x00c03b, EGCB_LVT },\r
- {0x00c03c, 0x00c03c, EGCB_LV },\r
- {0x00c03d, 0x00c057, EGCB_LVT },\r
- {0x00c058, 0x00c058, EGCB_LV },\r
- {0x00c059, 0x00c073, EGCB_LVT },\r
- {0x00c074, 0x00c074, EGCB_LV },\r
- {0x00c075, 0x00c08f, EGCB_LVT },\r
- {0x00c090, 0x00c090, EGCB_LV },\r
- {0x00c091, 0x00c0ab, EGCB_LVT },\r
- {0x00c0ac, 0x00c0ac, EGCB_LV },\r
- {0x00c0ad, 0x00c0c7, EGCB_LVT },\r
- {0x00c0c8, 0x00c0c8, EGCB_LV },\r
- {0x00c0c9, 0x00c0e3, EGCB_LVT },\r
- {0x00c0e4, 0x00c0e4, EGCB_LV },\r
- {0x00c0e5, 0x00c0ff, EGCB_LVT },\r
- {0x00c100, 0x00c100, EGCB_LV },\r
- {0x00c101, 0x00c11b, EGCB_LVT },\r
- {0x00c11c, 0x00c11c, EGCB_LV },\r
- {0x00c11d, 0x00c137, EGCB_LVT },\r
- {0x00c138, 0x00c138, EGCB_LV },\r
- {0x00c139, 0x00c153, EGCB_LVT },\r
- {0x00c154, 0x00c154, EGCB_LV },\r
- {0x00c155, 0x00c16f, EGCB_LVT },\r
- {0x00c170, 0x00c170, EGCB_LV },\r
- {0x00c171, 0x00c18b, EGCB_LVT },\r
- {0x00c18c, 0x00c18c, EGCB_LV },\r
- {0x00c18d, 0x00c1a7, EGCB_LVT },\r
- {0x00c1a8, 0x00c1a8, EGCB_LV },\r
- {0x00c1a9, 0x00c1c3, EGCB_LVT },\r
- {0x00c1c4, 0x00c1c4, EGCB_LV },\r
- {0x00c1c5, 0x00c1df, EGCB_LVT },\r
- {0x00c1e0, 0x00c1e0, EGCB_LV },\r
- {0x00c1e1, 0x00c1fb, EGCB_LVT },\r
- {0x00c1fc, 0x00c1fc, EGCB_LV },\r
- {0x00c1fd, 0x00c217, EGCB_LVT },\r
- {0x00c218, 0x00c218, EGCB_LV },\r
- {0x00c219, 0x00c233, EGCB_LVT },\r
- {0x00c234, 0x00c234, EGCB_LV },\r
- {0x00c235, 0x00c24f, EGCB_LVT },\r
- {0x00c250, 0x00c250, EGCB_LV },\r
- {0x00c251, 0x00c26b, EGCB_LVT },\r
- {0x00c26c, 0x00c26c, EGCB_LV },\r
- {0x00c26d, 0x00c287, EGCB_LVT },\r
- {0x00c288, 0x00c288, EGCB_LV },\r
- {0x00c289, 0x00c2a3, EGCB_LVT },\r
- {0x00c2a4, 0x00c2a4, EGCB_LV },\r
- {0x00c2a5, 0x00c2bf, EGCB_LVT },\r
- {0x00c2c0, 0x00c2c0, EGCB_LV },\r
- {0x00c2c1, 0x00c2db, EGCB_LVT },\r
- {0x00c2dc, 0x00c2dc, EGCB_LV },\r
- {0x00c2dd, 0x00c2f7, EGCB_LVT },\r
- {0x00c2f8, 0x00c2f8, EGCB_LV },\r
- {0x00c2f9, 0x00c313, EGCB_LVT },\r
- {0x00c314, 0x00c314, EGCB_LV },\r
- {0x00c315, 0x00c32f, EGCB_LVT },\r
- {0x00c330, 0x00c330, EGCB_LV },\r
- {0x00c331, 0x00c34b, EGCB_LVT },\r
- {0x00c34c, 0x00c34c, EGCB_LV },\r
- {0x00c34d, 0x00c367, EGCB_LVT },\r
- {0x00c368, 0x00c368, EGCB_LV },\r
- {0x00c369, 0x00c383, EGCB_LVT },\r
- {0x00c384, 0x00c384, EGCB_LV },\r
- {0x00c385, 0x00c39f, EGCB_LVT },\r
- {0x00c3a0, 0x00c3a0, EGCB_LV },\r
- {0x00c3a1, 0x00c3bb, EGCB_LVT },\r
- {0x00c3bc, 0x00c3bc, EGCB_LV },\r
- {0x00c3bd, 0x00c3d7, EGCB_LVT },\r
- {0x00c3d8, 0x00c3d8, EGCB_LV },\r
- {0x00c3d9, 0x00c3f3, EGCB_LVT },\r
- {0x00c3f4, 0x00c3f4, EGCB_LV },\r
- {0x00c3f5, 0x00c40f, EGCB_LVT },\r
- {0x00c410, 0x00c410, EGCB_LV },\r
- {0x00c411, 0x00c42b, EGCB_LVT },\r
- {0x00c42c, 0x00c42c, EGCB_LV },\r
- {0x00c42d, 0x00c447, EGCB_LVT },\r
- {0x00c448, 0x00c448, EGCB_LV },\r
- {0x00c449, 0x00c463, EGCB_LVT },\r
- {0x00c464, 0x00c464, EGCB_LV },\r
- {0x00c465, 0x00c47f, EGCB_LVT },\r
- {0x00c480, 0x00c480, EGCB_LV },\r
- {0x00c481, 0x00c49b, EGCB_LVT },\r
- {0x00c49c, 0x00c49c, EGCB_LV },\r
- {0x00c49d, 0x00c4b7, EGCB_LVT },\r
- {0x00c4b8, 0x00c4b8, EGCB_LV },\r
- {0x00c4b9, 0x00c4d3, EGCB_LVT },\r
- {0x00c4d4, 0x00c4d4, EGCB_LV },\r
- {0x00c4d5, 0x00c4ef, EGCB_LVT },\r
- {0x00c4f0, 0x00c4f0, EGCB_LV },\r
- {0x00c4f1, 0x00c50b, EGCB_LVT },\r
- {0x00c50c, 0x00c50c, EGCB_LV },\r
- {0x00c50d, 0x00c527, EGCB_LVT },\r
- {0x00c528, 0x00c528, EGCB_LV },\r
- {0x00c529, 0x00c543, EGCB_LVT },\r
- {0x00c544, 0x00c544, EGCB_LV },\r
- {0x00c545, 0x00c55f, EGCB_LVT },\r
- {0x00c560, 0x00c560, EGCB_LV },\r
- {0x00c561, 0x00c57b, EGCB_LVT },\r
- {0x00c57c, 0x00c57c, EGCB_LV },\r
- {0x00c57d, 0x00c597, EGCB_LVT },\r
- {0x00c598, 0x00c598, EGCB_LV },\r
- {0x00c599, 0x00c5b3, EGCB_LVT },\r
- {0x00c5b4, 0x00c5b4, EGCB_LV },\r
- {0x00c5b5, 0x00c5cf, EGCB_LVT },\r
- {0x00c5d0, 0x00c5d0, EGCB_LV },\r
- {0x00c5d1, 0x00c5eb, EGCB_LVT },\r
- {0x00c5ec, 0x00c5ec, EGCB_LV },\r
- {0x00c5ed, 0x00c607, EGCB_LVT },\r
- {0x00c608, 0x00c608, EGCB_LV },\r
- {0x00c609, 0x00c623, EGCB_LVT },\r
- {0x00c624, 0x00c624, EGCB_LV },\r
- {0x00c625, 0x00c63f, EGCB_LVT },\r
- {0x00c640, 0x00c640, EGCB_LV },\r
- {0x00c641, 0x00c65b, EGCB_LVT },\r
- {0x00c65c, 0x00c65c, EGCB_LV },\r
- {0x00c65d, 0x00c677, EGCB_LVT },\r
- {0x00c678, 0x00c678, EGCB_LV },\r
- {0x00c679, 0x00c693, EGCB_LVT },\r
- {0x00c694, 0x00c694, EGCB_LV },\r
- {0x00c695, 0x00c6af, EGCB_LVT },\r
- {0x00c6b0, 0x00c6b0, EGCB_LV },\r
- {0x00c6b1, 0x00c6cb, EGCB_LVT },\r
- {0x00c6cc, 0x00c6cc, EGCB_LV },\r
- {0x00c6cd, 0x00c6e7, EGCB_LVT },\r
- {0x00c6e8, 0x00c6e8, EGCB_LV },\r
- {0x00c6e9, 0x00c703, EGCB_LVT },\r
- {0x00c704, 0x00c704, EGCB_LV },\r
- {0x00c705, 0x00c71f, EGCB_LVT },\r
- {0x00c720, 0x00c720, EGCB_LV },\r
- {0x00c721, 0x00c73b, EGCB_LVT },\r
- {0x00c73c, 0x00c73c, EGCB_LV },\r
- {0x00c73d, 0x00c757, EGCB_LVT },\r
- {0x00c758, 0x00c758, EGCB_LV },\r
- {0x00c759, 0x00c773, EGCB_LVT },\r
- {0x00c774, 0x00c774, EGCB_LV },\r
- {0x00c775, 0x00c78f, EGCB_LVT },\r
- {0x00c790, 0x00c790, EGCB_LV },\r
- {0x00c791, 0x00c7ab, EGCB_LVT },\r
- {0x00c7ac, 0x00c7ac, EGCB_LV },\r
- {0x00c7ad, 0x00c7c7, EGCB_LVT },\r
- {0x00c7c8, 0x00c7c8, EGCB_LV },\r
- {0x00c7c9, 0x00c7e3, EGCB_LVT },\r
- {0x00c7e4, 0x00c7e4, EGCB_LV },\r
- {0x00c7e5, 0x00c7ff, EGCB_LVT },\r
- {0x00c800, 0x00c800, EGCB_LV },\r
- {0x00c801, 0x00c81b, EGCB_LVT },\r
- {0x00c81c, 0x00c81c, EGCB_LV },\r
- {0x00c81d, 0x00c837, EGCB_LVT },\r
- {0x00c838, 0x00c838, EGCB_LV },\r
- {0x00c839, 0x00c853, EGCB_LVT },\r
- {0x00c854, 0x00c854, EGCB_LV },\r
- {0x00c855, 0x00c86f, EGCB_LVT },\r
- {0x00c870, 0x00c870, EGCB_LV },\r
- {0x00c871, 0x00c88b, EGCB_LVT },\r
- {0x00c88c, 0x00c88c, EGCB_LV },\r
- {0x00c88d, 0x00c8a7, EGCB_LVT },\r
- {0x00c8a8, 0x00c8a8, EGCB_LV },\r
- {0x00c8a9, 0x00c8c3, EGCB_LVT },\r
- {0x00c8c4, 0x00c8c4, EGCB_LV },\r
- {0x00c8c5, 0x00c8df, EGCB_LVT },\r
- {0x00c8e0, 0x00c8e0, EGCB_LV },\r
- {0x00c8e1, 0x00c8fb, EGCB_LVT },\r
- {0x00c8fc, 0x00c8fc, EGCB_LV },\r
- {0x00c8fd, 0x00c917, EGCB_LVT },\r
- {0x00c918, 0x00c918, EGCB_LV },\r
- {0x00c919, 0x00c933, EGCB_LVT },\r
- {0x00c934, 0x00c934, EGCB_LV },\r
- {0x00c935, 0x00c94f, EGCB_LVT },\r
- {0x00c950, 0x00c950, EGCB_LV },\r
- {0x00c951, 0x00c96b, EGCB_LVT },\r
- {0x00c96c, 0x00c96c, EGCB_LV },\r
- {0x00c96d, 0x00c987, EGCB_LVT },\r
- {0x00c988, 0x00c988, EGCB_LV },\r
- {0x00c989, 0x00c9a3, EGCB_LVT },\r
- {0x00c9a4, 0x00c9a4, EGCB_LV },\r
- {0x00c9a5, 0x00c9bf, EGCB_LVT },\r
- {0x00c9c0, 0x00c9c0, EGCB_LV },\r
- {0x00c9c1, 0x00c9db, EGCB_LVT },\r
- {0x00c9dc, 0x00c9dc, EGCB_LV },\r
- {0x00c9dd, 0x00c9f7, EGCB_LVT },\r
- {0x00c9f8, 0x00c9f8, EGCB_LV },\r
- {0x00c9f9, 0x00ca13, EGCB_LVT },\r
- {0x00ca14, 0x00ca14, EGCB_LV },\r
- {0x00ca15, 0x00ca2f, EGCB_LVT },\r
- {0x00ca30, 0x00ca30, EGCB_LV },\r
- {0x00ca31, 0x00ca4b, EGCB_LVT },\r
- {0x00ca4c, 0x00ca4c, EGCB_LV },\r
- {0x00ca4d, 0x00ca67, EGCB_LVT },\r
- {0x00ca68, 0x00ca68, EGCB_LV },\r
- {0x00ca69, 0x00ca83, EGCB_LVT },\r
- {0x00ca84, 0x00ca84, EGCB_LV },\r
- {0x00ca85, 0x00ca9f, EGCB_LVT },\r
- {0x00caa0, 0x00caa0, EGCB_LV },\r
- {0x00caa1, 0x00cabb, EGCB_LVT },\r
- {0x00cabc, 0x00cabc, EGCB_LV },\r
- {0x00cabd, 0x00cad7, EGCB_LVT },\r
- {0x00cad8, 0x00cad8, EGCB_LV },\r
- {0x00cad9, 0x00caf3, EGCB_LVT },\r
- {0x00caf4, 0x00caf4, EGCB_LV },\r
- {0x00caf5, 0x00cb0f, EGCB_LVT },\r
- {0x00cb10, 0x00cb10, EGCB_LV },\r
- {0x00cb11, 0x00cb2b, EGCB_LVT },\r
- {0x00cb2c, 0x00cb2c, EGCB_LV },\r
- {0x00cb2d, 0x00cb47, EGCB_LVT },\r
- {0x00cb48, 0x00cb48, EGCB_LV },\r
- {0x00cb49, 0x00cb63, EGCB_LVT },\r
- {0x00cb64, 0x00cb64, EGCB_LV },\r
- {0x00cb65, 0x00cb7f, EGCB_LVT },\r
- {0x00cb80, 0x00cb80, EGCB_LV },\r
- {0x00cb81, 0x00cb9b, EGCB_LVT },\r
- {0x00cb9c, 0x00cb9c, EGCB_LV },\r
- {0x00cb9d, 0x00cbb7, EGCB_LVT },\r
- {0x00cbb8, 0x00cbb8, EGCB_LV },\r
- {0x00cbb9, 0x00cbd3, EGCB_LVT },\r
- {0x00cbd4, 0x00cbd4, EGCB_LV },\r
- {0x00cbd5, 0x00cbef, EGCB_LVT },\r
- {0x00cbf0, 0x00cbf0, EGCB_LV },\r
- {0x00cbf1, 0x00cc0b, EGCB_LVT },\r
- {0x00cc0c, 0x00cc0c, EGCB_LV },\r
- {0x00cc0d, 0x00cc27, EGCB_LVT },\r
- {0x00cc28, 0x00cc28, EGCB_LV },\r
- {0x00cc29, 0x00cc43, EGCB_LVT },\r
- {0x00cc44, 0x00cc44, EGCB_LV },\r
- {0x00cc45, 0x00cc5f, EGCB_LVT },\r
- {0x00cc60, 0x00cc60, EGCB_LV },\r
- {0x00cc61, 0x00cc7b, EGCB_LVT },\r
- {0x00cc7c, 0x00cc7c, EGCB_LV },\r
- {0x00cc7d, 0x00cc97, EGCB_LVT },\r
- {0x00cc98, 0x00cc98, EGCB_LV },\r
- {0x00cc99, 0x00ccb3, EGCB_LVT },\r
- {0x00ccb4, 0x00ccb4, EGCB_LV },\r
- {0x00ccb5, 0x00cccf, EGCB_LVT },\r
- {0x00ccd0, 0x00ccd0, EGCB_LV },\r
- {0x00ccd1, 0x00cceb, EGCB_LVT },\r
- {0x00ccec, 0x00ccec, EGCB_LV },\r
- {0x00cced, 0x00cd07, EGCB_LVT },\r
- {0x00cd08, 0x00cd08, EGCB_LV },\r
- {0x00cd09, 0x00cd23, EGCB_LVT },\r
- {0x00cd24, 0x00cd24, EGCB_LV },\r
- {0x00cd25, 0x00cd3f, EGCB_LVT },\r
- {0x00cd40, 0x00cd40, EGCB_LV },\r
- {0x00cd41, 0x00cd5b, EGCB_LVT },\r
- {0x00cd5c, 0x00cd5c, EGCB_LV },\r
- {0x00cd5d, 0x00cd77, EGCB_LVT },\r
- {0x00cd78, 0x00cd78, EGCB_LV },\r
- {0x00cd79, 0x00cd93, EGCB_LVT },\r
- {0x00cd94, 0x00cd94, EGCB_LV },\r
- {0x00cd95, 0x00cdaf, EGCB_LVT },\r
- {0x00cdb0, 0x00cdb0, EGCB_LV },\r
- {0x00cdb1, 0x00cdcb, EGCB_LVT },\r
- {0x00cdcc, 0x00cdcc, EGCB_LV },\r
- {0x00cdcd, 0x00cde7, EGCB_LVT },\r
- {0x00cde8, 0x00cde8, EGCB_LV },\r
- {0x00cde9, 0x00ce03, EGCB_LVT },\r
- {0x00ce04, 0x00ce04, EGCB_LV },\r
- {0x00ce05, 0x00ce1f, EGCB_LVT },\r
- {0x00ce20, 0x00ce20, EGCB_LV },\r
- {0x00ce21, 0x00ce3b, EGCB_LVT },\r
- {0x00ce3c, 0x00ce3c, EGCB_LV },\r
- {0x00ce3d, 0x00ce57, EGCB_LVT },\r
- {0x00ce58, 0x00ce58, EGCB_LV },\r
- {0x00ce59, 0x00ce73, EGCB_LVT },\r
- {0x00ce74, 0x00ce74, EGCB_LV },\r
- {0x00ce75, 0x00ce8f, EGCB_LVT },\r
- {0x00ce90, 0x00ce90, EGCB_LV },\r
- {0x00ce91, 0x00ceab, EGCB_LVT },\r
- {0x00ceac, 0x00ceac, EGCB_LV },\r
- {0x00cead, 0x00cec7, EGCB_LVT },\r
- {0x00cec8, 0x00cec8, EGCB_LV },\r
- {0x00cec9, 0x00cee3, EGCB_LVT },\r
- {0x00cee4, 0x00cee4, EGCB_LV },\r
- {0x00cee5, 0x00ceff, EGCB_LVT },\r
- {0x00cf00, 0x00cf00, EGCB_LV },\r
- {0x00cf01, 0x00cf1b, EGCB_LVT },\r
- {0x00cf1c, 0x00cf1c, EGCB_LV },\r
- {0x00cf1d, 0x00cf37, EGCB_LVT },\r
- {0x00cf38, 0x00cf38, EGCB_LV },\r
- {0x00cf39, 0x00cf53, EGCB_LVT },\r
- {0x00cf54, 0x00cf54, EGCB_LV },\r
- {0x00cf55, 0x00cf6f, EGCB_LVT },\r
- {0x00cf70, 0x00cf70, EGCB_LV },\r
- {0x00cf71, 0x00cf8b, EGCB_LVT },\r
- {0x00cf8c, 0x00cf8c, EGCB_LV },\r
- {0x00cf8d, 0x00cfa7, EGCB_LVT },\r
- {0x00cfa8, 0x00cfa8, EGCB_LV },\r
- {0x00cfa9, 0x00cfc3, EGCB_LVT },\r
- {0x00cfc4, 0x00cfc4, EGCB_LV },\r
- {0x00cfc5, 0x00cfdf, EGCB_LVT },\r
- {0x00cfe0, 0x00cfe0, EGCB_LV },\r
- {0x00cfe1, 0x00cffb, EGCB_LVT },\r
- {0x00cffc, 0x00cffc, EGCB_LV },\r
- {0x00cffd, 0x00d017, EGCB_LVT },\r
- {0x00d018, 0x00d018, EGCB_LV },\r
- {0x00d019, 0x00d033, EGCB_LVT },\r
- {0x00d034, 0x00d034, EGCB_LV },\r
- {0x00d035, 0x00d04f, EGCB_LVT },\r
- {0x00d050, 0x00d050, EGCB_LV },\r
- {0x00d051, 0x00d06b, EGCB_LVT },\r
- {0x00d06c, 0x00d06c, EGCB_LV },\r
- {0x00d06d, 0x00d087, EGCB_LVT },\r
- {0x00d088, 0x00d088, EGCB_LV },\r
- {0x00d089, 0x00d0a3, EGCB_LVT },\r
- {0x00d0a4, 0x00d0a4, EGCB_LV },\r
- {0x00d0a5, 0x00d0bf, EGCB_LVT },\r
- {0x00d0c0, 0x00d0c0, EGCB_LV },\r
- {0x00d0c1, 0x00d0db, EGCB_LVT },\r
- {0x00d0dc, 0x00d0dc, EGCB_LV },\r
- {0x00d0dd, 0x00d0f7, EGCB_LVT },\r
- {0x00d0f8, 0x00d0f8, EGCB_LV },\r
- {0x00d0f9, 0x00d113, EGCB_LVT },\r
- {0x00d114, 0x00d114, EGCB_LV },\r
- {0x00d115, 0x00d12f, EGCB_LVT },\r
- {0x00d130, 0x00d130, EGCB_LV },\r
- {0x00d131, 0x00d14b, EGCB_LVT },\r
- {0x00d14c, 0x00d14c, EGCB_LV },\r
- {0x00d14d, 0x00d167, EGCB_LVT },\r
- {0x00d168, 0x00d168, EGCB_LV },\r
- {0x00d169, 0x00d183, EGCB_LVT },\r
- {0x00d184, 0x00d184, EGCB_LV },\r
- {0x00d185, 0x00d19f, EGCB_LVT },\r
- {0x00d1a0, 0x00d1a0, EGCB_LV },\r
- {0x00d1a1, 0x00d1bb, EGCB_LVT },\r
- {0x00d1bc, 0x00d1bc, EGCB_LV },\r
- {0x00d1bd, 0x00d1d7, EGCB_LVT },\r
- {0x00d1d8, 0x00d1d8, EGCB_LV },\r
- {0x00d1d9, 0x00d1f3, EGCB_LVT },\r
- {0x00d1f4, 0x00d1f4, EGCB_LV },\r
- {0x00d1f5, 0x00d20f, EGCB_LVT },\r
- {0x00d210, 0x00d210, EGCB_LV },\r
- {0x00d211, 0x00d22b, EGCB_LVT },\r
- {0x00d22c, 0x00d22c, EGCB_LV },\r
- {0x00d22d, 0x00d247, EGCB_LVT },\r
- {0x00d248, 0x00d248, EGCB_LV },\r
- {0x00d249, 0x00d263, EGCB_LVT },\r
- {0x00d264, 0x00d264, EGCB_LV },\r
- {0x00d265, 0x00d27f, EGCB_LVT },\r
- {0x00d280, 0x00d280, EGCB_LV },\r
- {0x00d281, 0x00d29b, EGCB_LVT },\r
- {0x00d29c, 0x00d29c, EGCB_LV },\r
- {0x00d29d, 0x00d2b7, EGCB_LVT },\r
- {0x00d2b8, 0x00d2b8, EGCB_LV },\r
- {0x00d2b9, 0x00d2d3, EGCB_LVT },\r
- {0x00d2d4, 0x00d2d4, EGCB_LV },\r
- {0x00d2d5, 0x00d2ef, EGCB_LVT },\r
- {0x00d2f0, 0x00d2f0, EGCB_LV },\r
- {0x00d2f1, 0x00d30b, EGCB_LVT },\r
- {0x00d30c, 0x00d30c, EGCB_LV },\r
- {0x00d30d, 0x00d327, EGCB_LVT },\r
- {0x00d328, 0x00d328, EGCB_LV },\r
- {0x00d329, 0x00d343, EGCB_LVT },\r
- {0x00d344, 0x00d344, EGCB_LV },\r
- {0x00d345, 0x00d35f, EGCB_LVT },\r
- {0x00d360, 0x00d360, EGCB_LV },\r
- {0x00d361, 0x00d37b, EGCB_LVT },\r
- {0x00d37c, 0x00d37c, EGCB_LV },\r
- {0x00d37d, 0x00d397, EGCB_LVT },\r
- {0x00d398, 0x00d398, EGCB_LV },\r
- {0x00d399, 0x00d3b3, EGCB_LVT },\r
- {0x00d3b4, 0x00d3b4, EGCB_LV },\r
- {0x00d3b5, 0x00d3cf, EGCB_LVT },\r
- {0x00d3d0, 0x00d3d0, EGCB_LV },\r
- {0x00d3d1, 0x00d3eb, EGCB_LVT },\r
- {0x00d3ec, 0x00d3ec, EGCB_LV },\r
- {0x00d3ed, 0x00d407, EGCB_LVT },\r
- {0x00d408, 0x00d408, EGCB_LV },\r
- {0x00d409, 0x00d423, EGCB_LVT },\r
- {0x00d424, 0x00d424, EGCB_LV },\r
- {0x00d425, 0x00d43f, EGCB_LVT },\r
- {0x00d440, 0x00d440, EGCB_LV },\r
- {0x00d441, 0x00d45b, EGCB_LVT },\r
- {0x00d45c, 0x00d45c, EGCB_LV },\r
- {0x00d45d, 0x00d477, EGCB_LVT },\r
- {0x00d478, 0x00d478, EGCB_LV },\r
- {0x00d479, 0x00d493, EGCB_LVT },\r
- {0x00d494, 0x00d494, EGCB_LV },\r
- {0x00d495, 0x00d4af, EGCB_LVT },\r
- {0x00d4b0, 0x00d4b0, EGCB_LV },\r
- {0x00d4b1, 0x00d4cb, EGCB_LVT },\r
- {0x00d4cc, 0x00d4cc, EGCB_LV },\r
- {0x00d4cd, 0x00d4e7, EGCB_LVT },\r
- {0x00d4e8, 0x00d4e8, EGCB_LV },\r
- {0x00d4e9, 0x00d503, EGCB_LVT },\r
- {0x00d504, 0x00d504, EGCB_LV },\r
- {0x00d505, 0x00d51f, EGCB_LVT },\r
- {0x00d520, 0x00d520, EGCB_LV },\r
- {0x00d521, 0x00d53b, EGCB_LVT },\r
- {0x00d53c, 0x00d53c, EGCB_LV },\r
- {0x00d53d, 0x00d557, EGCB_LVT },\r
- {0x00d558, 0x00d558, EGCB_LV },\r
- {0x00d559, 0x00d573, EGCB_LVT },\r
- {0x00d574, 0x00d574, EGCB_LV },\r
- {0x00d575, 0x00d58f, EGCB_LVT },\r
- {0x00d590, 0x00d590, EGCB_LV },\r
- {0x00d591, 0x00d5ab, EGCB_LVT },\r
- {0x00d5ac, 0x00d5ac, EGCB_LV },\r
- {0x00d5ad, 0x00d5c7, EGCB_LVT },\r
- {0x00d5c8, 0x00d5c8, EGCB_LV },\r
- {0x00d5c9, 0x00d5e3, EGCB_LVT },\r
- {0x00d5e4, 0x00d5e4, EGCB_LV },\r
- {0x00d5e5, 0x00d5ff, EGCB_LVT },\r
- {0x00d600, 0x00d600, EGCB_LV },\r
- {0x00d601, 0x00d61b, EGCB_LVT },\r
- {0x00d61c, 0x00d61c, EGCB_LV },\r
- {0x00d61d, 0x00d637, EGCB_LVT },\r
- {0x00d638, 0x00d638, EGCB_LV },\r
- {0x00d639, 0x00d653, EGCB_LVT },\r
- {0x00d654, 0x00d654, EGCB_LV },\r
- {0x00d655, 0x00d66f, EGCB_LVT },\r
- {0x00d670, 0x00d670, EGCB_LV },\r
- {0x00d671, 0x00d68b, EGCB_LVT },\r
- {0x00d68c, 0x00d68c, EGCB_LV },\r
- {0x00d68d, 0x00d6a7, EGCB_LVT },\r
- {0x00d6a8, 0x00d6a8, EGCB_LV },\r
- {0x00d6a9, 0x00d6c3, EGCB_LVT },\r
- {0x00d6c4, 0x00d6c4, EGCB_LV },\r
- {0x00d6c5, 0x00d6df, EGCB_LVT },\r
- {0x00d6e0, 0x00d6e0, EGCB_LV },\r
- {0x00d6e1, 0x00d6fb, EGCB_LVT },\r
- {0x00d6fc, 0x00d6fc, EGCB_LV },\r
- {0x00d6fd, 0x00d717, EGCB_LVT },\r
- {0x00d718, 0x00d718, EGCB_LV },\r
- {0x00d719, 0x00d733, EGCB_LVT },\r
- {0x00d734, 0x00d734, EGCB_LV },\r
- {0x00d735, 0x00d74f, EGCB_LVT },\r
- {0x00d750, 0x00d750, EGCB_LV },\r
- {0x00d751, 0x00d76b, EGCB_LVT },\r
- {0x00d76c, 0x00d76c, EGCB_LV },\r
- {0x00d76d, 0x00d787, EGCB_LVT },\r
- {0x00d788, 0x00d788, EGCB_LV },\r
- {0x00d789, 0x00d7a3, EGCB_LVT },\r
- {0x00d7b0, 0x00d7c6, EGCB_V },\r
- {0x00d7cb, 0x00d7fb, EGCB_T },\r
- {0x00fb1e, 0x00fb1e, EGCB_Extend },\r
- {0x00fe00, 0x00fe0f, EGCB_Extend },\r
- {0x00fe20, 0x00fe2f, EGCB_Extend },\r
- {0x00feff, 0x00feff, EGCB_Control },\r
- {0x00ff9e, 0x00ff9f, EGCB_Extend },\r
- {0x00fff0, 0x00fffb, EGCB_Control },\r
- {0x0101fd, 0x0101fd, EGCB_Extend },\r
- {0x0102e0, 0x0102e0, EGCB_Extend },\r
- {0x010376, 0x01037a, EGCB_Extend },\r
- {0x010a01, 0x010a03, EGCB_Extend },\r
- {0x010a05, 0x010a06, EGCB_Extend },\r
- {0x010a0c, 0x010a0f, EGCB_Extend },\r
- {0x010a38, 0x010a3a, EGCB_Extend },\r
- {0x010a3f, 0x010a3f, EGCB_Extend },\r
- {0x010ae5, 0x010ae6, EGCB_Extend },\r
- {0x010d24, 0x010d27, EGCB_Extend },\r
- {0x010f46, 0x010f50, EGCB_Extend },\r
- {0x011000, 0x011000, EGCB_SpacingMark },\r
- {0x011001, 0x011001, EGCB_Extend },\r
- {0x011002, 0x011002, EGCB_SpacingMark },\r
- {0x011038, 0x011046, EGCB_Extend },\r
- {0x01107f, 0x011081, EGCB_Extend },\r
- {0x011082, 0x011082, EGCB_SpacingMark },\r
- {0x0110b0, 0x0110b2, EGCB_SpacingMark },\r
- {0x0110b3, 0x0110b6, EGCB_Extend },\r
- {0x0110b7, 0x0110b8, EGCB_SpacingMark },\r
- {0x0110b9, 0x0110ba, EGCB_Extend },\r
- {0x0110bd, 0x0110bd, EGCB_Prepend },\r
- {0x0110cd, 0x0110cd, EGCB_Prepend },\r
- {0x011100, 0x011102, EGCB_Extend },\r
- {0x011127, 0x01112b, EGCB_Extend },\r
- {0x01112c, 0x01112c, EGCB_SpacingMark },\r
- {0x01112d, 0x011134, EGCB_Extend },\r
- {0x011145, 0x011146, EGCB_SpacingMark },\r
- {0x011173, 0x011173, EGCB_Extend },\r
- {0x011180, 0x011181, EGCB_Extend },\r
- {0x011182, 0x011182, EGCB_SpacingMark },\r
- {0x0111b3, 0x0111b5, EGCB_SpacingMark },\r
- {0x0111b6, 0x0111be, EGCB_Extend },\r
- {0x0111bf, 0x0111c0, EGCB_SpacingMark },\r
- {0x0111c2, 0x0111c3, EGCB_Prepend },\r
- {0x0111c9, 0x0111cc, EGCB_Extend },\r
- {0x01122c, 0x01122e, EGCB_SpacingMark },\r
- {0x01122f, 0x011231, EGCB_Extend },\r
- {0x011232, 0x011233, EGCB_SpacingMark },\r
- {0x011234, 0x011234, EGCB_Extend },\r
- {0x011235, 0x011235, EGCB_SpacingMark },\r
- {0x011236, 0x011237, EGCB_Extend },\r
- {0x01123e, 0x01123e, EGCB_Extend },\r
- {0x0112df, 0x0112df, EGCB_Extend },\r
- {0x0112e0, 0x0112e2, EGCB_SpacingMark },\r
- {0x0112e3, 0x0112ea, EGCB_Extend },\r
- {0x011300, 0x011301, EGCB_Extend },\r
- {0x011302, 0x011303, EGCB_SpacingMark },\r
- {0x01133b, 0x01133c, EGCB_Extend },\r
- {0x01133e, 0x01133e, EGCB_Extend },\r
- {0x01133f, 0x01133f, EGCB_SpacingMark },\r
- {0x011340, 0x011340, EGCB_Extend },\r
- {0x011341, 0x011344, EGCB_SpacingMark },\r
- {0x011347, 0x011348, EGCB_SpacingMark },\r
- {0x01134b, 0x01134d, EGCB_SpacingMark },\r
- {0x011357, 0x011357, EGCB_Extend },\r
- {0x011362, 0x011363, EGCB_SpacingMark },\r
- {0x011366, 0x01136c, EGCB_Extend },\r
- {0x011370, 0x011374, EGCB_Extend },\r
- {0x011435, 0x011437, EGCB_SpacingMark },\r
- {0x011438, 0x01143f, EGCB_Extend },\r
- {0x011440, 0x011441, EGCB_SpacingMark },\r
- {0x011442, 0x011444, EGCB_Extend },\r
- {0x011445, 0x011445, EGCB_SpacingMark },\r
- {0x011446, 0x011446, EGCB_Extend },\r
- {0x01145e, 0x01145e, EGCB_Extend },\r
- {0x0114b0, 0x0114b0, EGCB_Extend },\r
- {0x0114b1, 0x0114b2, EGCB_SpacingMark },\r
- {0x0114b3, 0x0114b8, EGCB_Extend },\r
- {0x0114b9, 0x0114b9, EGCB_SpacingMark },\r
- {0x0114ba, 0x0114ba, EGCB_Extend },\r
- {0x0114bb, 0x0114bc, EGCB_SpacingMark },\r
- {0x0114bd, 0x0114bd, EGCB_Extend },\r
- {0x0114be, 0x0114be, EGCB_SpacingMark },\r
- {0x0114bf, 0x0114c0, EGCB_Extend },\r
- {0x0114c1, 0x0114c1, EGCB_SpacingMark },\r
- {0x0114c2, 0x0114c3, EGCB_Extend },\r
- {0x0115af, 0x0115af, EGCB_Extend },\r
- {0x0115b0, 0x0115b1, EGCB_SpacingMark },\r
- {0x0115b2, 0x0115b5, EGCB_Extend },\r
- {0x0115b8, 0x0115bb, EGCB_SpacingMark },\r
- {0x0115bc, 0x0115bd, EGCB_Extend },\r
- {0x0115be, 0x0115be, EGCB_SpacingMark },\r
- {0x0115bf, 0x0115c0, EGCB_Extend },\r
- {0x0115dc, 0x0115dd, EGCB_Extend },\r
- {0x011630, 0x011632, EGCB_SpacingMark },\r
- {0x011633, 0x01163a, EGCB_Extend },\r
- {0x01163b, 0x01163c, EGCB_SpacingMark },\r
- {0x01163d, 0x01163d, EGCB_Extend },\r
- {0x01163e, 0x01163e, EGCB_SpacingMark },\r
- {0x01163f, 0x011640, EGCB_Extend },\r
- {0x0116ab, 0x0116ab, EGCB_Extend },\r
- {0x0116ac, 0x0116ac, EGCB_SpacingMark },\r
- {0x0116ad, 0x0116ad, EGCB_Extend },\r
- {0x0116ae, 0x0116af, EGCB_SpacingMark },\r
- {0x0116b0, 0x0116b5, EGCB_Extend },\r
- {0x0116b6, 0x0116b6, EGCB_SpacingMark },\r
- {0x0116b7, 0x0116b7, EGCB_Extend },\r
- {0x01171d, 0x01171f, EGCB_Extend },\r
- {0x011720, 0x011721, EGCB_SpacingMark },\r
- {0x011722, 0x011725, EGCB_Extend },\r
- {0x011726, 0x011726, EGCB_SpacingMark },\r
- {0x011727, 0x01172b, EGCB_Extend },\r
- {0x01182c, 0x01182e, EGCB_SpacingMark },\r
- {0x01182f, 0x011837, EGCB_Extend },\r
- {0x011838, 0x011838, EGCB_SpacingMark },\r
- {0x011839, 0x01183a, EGCB_Extend },\r
- {0x0119d1, 0x0119d3, EGCB_SpacingMark },\r
- {0x0119d4, 0x0119d7, EGCB_Extend },\r
- {0x0119da, 0x0119db, EGCB_Extend },\r
- {0x0119dc, 0x0119df, EGCB_SpacingMark },\r
- {0x0119e0, 0x0119e0, EGCB_Extend },\r
- {0x0119e4, 0x0119e4, EGCB_SpacingMark },\r
- {0x011a01, 0x011a0a, EGCB_Extend },\r
- {0x011a33, 0x011a38, EGCB_Extend },\r
- {0x011a39, 0x011a39, EGCB_SpacingMark },\r
- {0x011a3a, 0x011a3a, EGCB_Prepend },\r
- {0x011a3b, 0x011a3e, EGCB_Extend },\r
- {0x011a47, 0x011a47, EGCB_Extend },\r
- {0x011a51, 0x011a56, EGCB_Extend },\r
- {0x011a57, 0x011a58, EGCB_SpacingMark },\r
- {0x011a59, 0x011a5b, EGCB_Extend },\r
- {0x011a84, 0x011a89, EGCB_Prepend },\r
- {0x011a8a, 0x011a96, EGCB_Extend },\r
- {0x011a97, 0x011a97, EGCB_SpacingMark },\r
- {0x011a98, 0x011a99, EGCB_Extend },\r
- {0x011c2f, 0x011c2f, EGCB_SpacingMark },\r
- {0x011c30, 0x011c36, EGCB_Extend },\r
- {0x011c38, 0x011c3d, EGCB_Extend },\r
- {0x011c3e, 0x011c3e, EGCB_SpacingMark },\r
- {0x011c3f, 0x011c3f, EGCB_Extend },\r
- {0x011c92, 0x011ca7, EGCB_Extend },\r
- {0x011ca9, 0x011ca9, EGCB_SpacingMark },\r
- {0x011caa, 0x011cb0, EGCB_Extend },\r
- {0x011cb1, 0x011cb1, EGCB_SpacingMark },\r
- {0x011cb2, 0x011cb3, EGCB_Extend },\r
- {0x011cb4, 0x011cb4, EGCB_SpacingMark },\r
- {0x011cb5, 0x011cb6, EGCB_Extend },\r
- {0x011d31, 0x011d36, EGCB_Extend },\r
- {0x011d3a, 0x011d3a, EGCB_Extend },\r
- {0x011d3c, 0x011d3d, EGCB_Extend },\r
- {0x011d3f, 0x011d45, EGCB_Extend },\r
- {0x011d46, 0x011d46, EGCB_Prepend },\r
- {0x011d47, 0x011d47, EGCB_Extend },\r
- {0x011d8a, 0x011d8e, EGCB_SpacingMark },\r
- {0x011d90, 0x011d91, EGCB_Extend },\r
- {0x011d93, 0x011d94, EGCB_SpacingMark },\r
- {0x011d95, 0x011d95, EGCB_Extend },\r
- {0x011d96, 0x011d96, EGCB_SpacingMark },\r
- {0x011d97, 0x011d97, EGCB_Extend },\r
- {0x011ef3, 0x011ef4, EGCB_Extend },\r
- {0x011ef5, 0x011ef6, EGCB_SpacingMark },\r
- {0x013430, 0x013438, EGCB_Control },\r
- {0x016af0, 0x016af4, EGCB_Extend },\r
- {0x016b30, 0x016b36, EGCB_Extend },\r
- {0x016f4f, 0x016f4f, EGCB_Extend },\r
- {0x016f51, 0x016f87, EGCB_SpacingMark },\r
- {0x016f8f, 0x016f92, EGCB_Extend },\r
- {0x01bc9d, 0x01bc9e, EGCB_Extend },\r
- {0x01bca0, 0x01bca3, EGCB_Control },\r
- {0x01d165, 0x01d165, EGCB_Extend },\r
- {0x01d166, 0x01d166, EGCB_SpacingMark },\r
- {0x01d167, 0x01d169, EGCB_Extend },\r
- {0x01d16d, 0x01d16d, EGCB_SpacingMark },\r
- {0x01d16e, 0x01d172, EGCB_Extend },\r
- {0x01d173, 0x01d17a, EGCB_Control },\r
- {0x01d17b, 0x01d182, EGCB_Extend },\r
- {0x01d185, 0x01d18b, EGCB_Extend },\r
- {0x01d1aa, 0x01d1ad, EGCB_Extend },\r
- {0x01d242, 0x01d244, EGCB_Extend },\r
- {0x01da00, 0x01da36, EGCB_Extend },\r
- {0x01da3b, 0x01da6c, EGCB_Extend },\r
- {0x01da75, 0x01da75, EGCB_Extend },\r
- {0x01da84, 0x01da84, EGCB_Extend },\r
- {0x01da9b, 0x01da9f, EGCB_Extend },\r
- {0x01daa1, 0x01daaf, EGCB_Extend },\r
- {0x01e000, 0x01e006, EGCB_Extend },\r
- {0x01e008, 0x01e018, EGCB_Extend },\r
- {0x01e01b, 0x01e021, EGCB_Extend },\r
- {0x01e023, 0x01e024, EGCB_Extend },\r
- {0x01e026, 0x01e02a, EGCB_Extend },\r
- {0x01e130, 0x01e136, EGCB_Extend },\r
- {0x01e2ec, 0x01e2ef, EGCB_Extend },\r
- {0x01e8d0, 0x01e8d6, EGCB_Extend },\r
- {0x01e944, 0x01e94a, EGCB_Extend },\r
- {0x01f1e6, 0x01f1ff, EGCB_Regional_Indicator },\r
- {0x01f3fb, 0x01f3ff, EGCB_Extend },\r
- {0x0e0000, 0x0e001f, EGCB_Control },\r
- {0x0e0020, 0x0e007f, EGCB_Extend },\r
- {0x0e0080, 0x0e00ff, EGCB_Control },\r
- {0x0e0100, 0x0e01ef, EGCB_Extend },\r
- {0x0e01f0, 0x0e0fff, EGCB_Control }\r
-};\r
+++ /dev/null
-/* This file was converted by gperf_fold_key_conv.py\r
- from gperf output file. */\r
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold1_key unicode_fold1_key.gperf */\r
-/* Computed positions: -k'1-3' */\r
-\r
-\r
-\r
-/* This gperf source file was generated by make_unicode_fold_data.py */\r
-\r
-/*-\r
- * Copyright (c) 2017-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-//#include <string.h>\r
-#include "regenc.h"\r
-\r
-#define TOTAL_KEYWORDS 1353\r
-#define MIN_WORD_LENGTH 3\r
-#define MAX_WORD_LENGTH 3\r
-#define MIN_HASH_VALUE 3\r
-#define MAX_HASH_VALUE 1791\r
-/* maximum key range = 1789, duplicates = 0 */\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-/*ARGSUSED*/\r
-static unsigned int\r
-hash(OnigCodePoint codes[])\r
-{\r
- static const unsigned short asso_values[] =\r
- {\r
- 4, 2, 147, 16, 1, 13, 1228, 725, 1224, 638,\r
- 1204, 95, 9, 82, 1403, 80, 8, 68, 1391, 6,\r
- 1203, 602, 1200, 320, 151, 67, 1385, 61, 1384, 158,\r
- 0, 11, 1252, 3, 733, 278, 23, 425, 660, 424,\r
- 640, 20, 635, 105, 5, 29, 916, 34, 630, 0,\r
- 906, 1378, 899, 1377, 470, 1363, 623, 902, 610, 230,\r
- 1193, 1358, 1190, 779, 986, 1336, 890, 883, 456, 597,\r
- 285, 158, 590, 477, 583, 42, 576, 1447, 447, 1440,\r
- 440, 1353, 426, 1429, 400, 1417, 327, 1407, 567, 1389,\r
- 386, 1207, 458, 724, 854, 979, 1016, 66, 232, 413,\r
- 204, 1431, 226, 1317, 190, 1167, 379, 1319, 198, 1270,\r
- 175, 209, 561, 362, 528, 1323, 257, 1099, 240, 1309,\r
- 508, 1172, 484, 1306, 699, 865, 850, 488, 679, 755,\r
- 420, 639, 1149, 105, 691, 789, 1125, 46, 809, 652,\r
- 1293, 3, 1262, 166, 1426, 0, 1424, 1792, 1220, 460,\r
- 706, 1, 367, 1792, 1341, 1792, 1151, 56, 1235, 1792,\r
- 384, 345, 965, 40, 1168, 33, 218, 180, 1159, 20,\r
- 1296, 276, 1243, 14, 1401, 777, 1142, 682, 1284, 129,\r
- 1135, 610, 1181, 871, 1123, 858, 1042, 510, 842, 499,\r
- 999, 346, 830, 0, 823, 1288, 1115, 768, 732, 1272,\r
- 1101, 1098, 1082, 1270, 811, 177, 1078, 1074, 1061, 1058,\r
- 1050, 789, 353, 1018, 548, 1006, 517, 988, 334, 765,\r
- 166, 753, 138, 743, 100, 969, 87, 720, 49, 975,\r
- 75, 965, 62, 411, 126, 955, 113, 1262, 317, 943,\r
- 304, 679, 293, 1252, 714, 937, 275, 490, 263, 469,\r
- 395, 1345, 931, 208, 921, 80, 542, 11, 246\r
- };\r
- return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+3] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)];\r
-}\r
-\r
-int\r
-onigenc_unicode_fold1_key(OnigCodePoint codes[])\r
-{\r
- static const short int wordlist[] =\r
- {\r
- -1, -1, -1,\r
-\r
- 3429,\r
-\r
- 1906,\r
-\r
- 1867,\r
-\r
- 210,\r
-\r
- 171,\r
-\r
- 3414,\r
-\r
- 1927,\r
-\r
- 1690,\r
-\r
- 231,\r
-\r
- 1885,\r
-\r
- 1879,\r
-\r
- 189,\r
-\r
- 183,\r
-\r
- 2240,\r
-\r
- 1315,\r
-\r
- 1276,\r
-\r
- 165,\r
-\r
- 792,\r
-\r
- 2261,\r
-\r
- 1336,\r
-\r
- 1594,\r
-\r
- 1630,\r
-\r
- 1294,\r
-\r
- 1288,\r
-\r
- 1915,\r
-\r
- 2243,\r
-\r
- 219,\r
-\r
- 1618,\r
-\r
- 2237,\r
-\r
- 3417,\r
-\r
- 2981,\r
-\r
- 2903,\r
-\r
- 2297,\r
-\r
- 2990,\r
-\r
- 3423,\r
-\r
- 2282,\r
-\r
- 2948,\r
-\r
- 1324,\r
-\r
- 2939,\r
-\r
- 2927,\r
-\r
- 1606,\r
-\r
- 2984,\r
-\r
- 3507,\r
-\r
- 2906,\r
-\r
- 974,\r
-\r
- 273,\r
-\r
- 2900,\r
-\r
- 1600,\r
-\r
- 2648,\r
-\r
- 3558,\r
-\r
- 2189,\r
-\r
- 1228,\r
-\r
- 459,\r
-\r
- 2999,\r
-\r
- 80,\r
-\r
- 2885,\r
-\r
- 1795,\r
-\r
- 3738,\r
-\r
- 1513,\r
-\r
- 378,\r
-\r
- 1459,\r
-\r
- 2438,\r
-\r
- 3570,\r
-\r
- 2195,\r
-\r
- 1234,\r
-\r
- 465,\r
-\r
- 860,\r
-\r
- 92,\r
-\r
- 1041,\r
-\r
- 1807,\r
-\r
- 3750,\r
-\r
- 1525,\r
-\r
- 2714,\r
-\r
- 2549,\r
-\r
- 2441,\r
-\r
- 3564,\r
-\r
- 2192,\r
-\r
- 1231,\r
-\r
- 462,\r
-\r
- 866,\r
-\r
- 86,\r
-\r
- 2888,\r
-\r
- 1801,\r
-\r
- 3744,\r
-\r
- 1519,\r
-\r
- 159,\r
-\r
- 2561,\r
-\r
- 3552,\r
-\r
- 2186,\r
-\r
- 1225,\r
-\r
- 456,\r
-\r
- 2972,\r
-\r
- 863,\r
-\r
- 2882,\r
-\r
- 1789,\r
-\r
- 3732,\r
-\r
- 1507,\r
-\r
- 2966,\r
-\r
- 2942,\r
-\r
- 2555,\r
-\r
- 3546,\r
-\r
- 2183,\r
-\r
- 1222,\r
-\r
- 453,\r
-\r
- 857,\r
-\r
- 3411,\r
-\r
- 2879,\r
-\r
- 1783,\r
-\r
- 3726,\r
-\r
- 1501,\r
-\r
- 2936,\r
-\r
- 2543,\r
-\r
- 2930,\r
-\r
- 3582,\r
-\r
- 2201,\r
-\r
- 1240,\r
-\r
- 471,\r
-\r
- 854,\r
-\r
- 105,\r
-\r
- 1447,\r
-\r
- 1819,\r
-\r
- 3762,\r
-\r
- 1537,\r
-\r
- 3354,\r
-\r
- 2537,\r
-\r
- 2924,\r
-\r
- 3576,\r
-\r
- 2198,\r
-\r
- 1237,\r
-\r
- 468,\r
-\r
- 872,\r
-\r
- 99,\r
-\r
- 399,\r
-\r
- 1813,\r
-\r
- 3756,\r
-\r
- 1531,\r
-\r
- 1648,\r
-\r
- 2573,\r
-\r
- 3540,\r
-\r
- 2180,\r
-\r
- 1219,\r
-\r
- 2423,\r
- -1,\r
-\r
- 869,\r
-\r
- 2876,\r
-\r
- 1777,\r
-\r
- 3720,\r
-\r
- 1495,\r
-\r
- 541,\r
-\r
- 502,\r
-\r
- 2567,\r
-\r
- 697,\r
-\r
- 1897,\r
-\r
- 559,\r
-\r
- 201,\r
-\r
- 851,\r
-\r
- 520,\r
-\r
- 514,\r
-\r
- 3495,\r
-\r
- 1864,\r
-\r
- 962,\r
-\r
- 267,\r
-\r
- 2531,\r
-\r
- 2276,\r
-\r
- 2636,\r
-\r
- 1306,\r
-\r
- 3534,\r
-\r
- 2177,\r
-\r
- 1216,\r
-\r
- 366,\r
-\r
- 2339,\r
- -1,\r
-\r
- 2873,\r
-\r
- 1771,\r
-\r
- 3714,\r
-\r
- 1489,\r
-\r
- 2027,\r
-\r
- 1063,\r
-\r
- 324,\r
-\r
- 1192,\r
-\r
- 27,\r
-\r
- 2963,\r
-\r
- 3276,\r
-\r
- 848,\r
-\r
- 1726,\r
-\r
- 3669,\r
-\r
- 3141,\r
-\r
- 1612,\r
-\r
- 2978,\r
-\r
- 1378,\r
-\r
- 2525,\r
-\r
- 2018,\r
-\r
- 1054,\r
-\r
- 315,\r
-\r
- 830,\r
-\r
- 12,\r
-\r
- 2720,\r
- -1, -1,\r
-\r
- 2024,\r
-\r
- 1060,\r
-\r
- 321,\r
-\r
- 2372,\r
-\r
- 4086,\r
-\r
- 1360,\r
-\r
- 2011,\r
-\r
- 1047,\r
-\r
- 309,\r
-\r
- 3633,\r
-\r
- 0,\r
-\r
- 2717,\r
- -1,\r
-\r
- 1372,\r
-\r
- 153,\r
-\r
- 31,\r
-\r
- 2732,\r
-\r
- 2360,\r
-\r
- 1588,\r
-\r
- 1348,\r
-\r
- 2096,\r
-\r
- 1135,\r
-\r
- 387,\r
- -1,\r
-\r
- 1381,\r
-\r
- 2792,\r
-\r
- 1609,\r
- -1,\r
-\r
- 2015,\r
-\r
- 1050,\r
-\r
- 312,\r
-\r
- 3459,\r
-\r
- 6,\r
-\r
- 922,\r
-\r
- 2008,\r
-\r
- 1044,\r
-\r
- 306,\r
-\r
- 2600,\r
-\r
- 3885,\r
-\r
- 2366,\r
-\r
- 3342,\r
-\r
- 1354,\r
-\r
- 2039,\r
-\r
- 1075,\r
-\r
- 336,\r
-\r
- 2456,\r
-\r
- 52,\r
-\r
- 2735,\r
-\r
- 2234,\r
-\r
- 1273,\r
-\r
- 499,\r
-\r
- 3879,\r
-\r
- 168,\r
-\r
- 2390,\r
-\r
- 682,\r
-\r
- 1402,\r
-\r
- 1597,\r
- -1,\r
-\r
- 718,\r
-\r
- 2036,\r
-\r
- 1072,\r
-\r
- 333,\r
-\r
- 2450,\r
-\r
- 46,\r
-\r
- 3618,\r
-\r
- 2219,\r
-\r
- 1258,\r
-\r
- 487,\r
- -1,\r
-\r
- 141,\r
-\r
- 2384,\r
-\r
- 1855,\r
-\r
- 1396,\r
-\r
- 1573,\r
- -1,\r
-\r
- 715,\r
-\r
- 3612,\r
-\r
- 2216,\r
-\r
- 1255,\r
-\r
- 483,\r
-\r
- 393,\r
-\r
- 135,\r
-\r
- 2897,\r
-\r
- 1849,\r
-\r
- 1624,\r
-\r
- 1567,\r
-\r
- 3492,\r
-\r
- 1966,\r
-\r
- 959,\r
-\r
- 3873,\r
- -1,\r
-\r
- 2279,\r
-\r
- 2633,\r
-\r
- 887,\r
-\r
- 3600,\r
-\r
- 2210,\r
-\r
- 1249,\r
-\r
- 480,\r
-\r
- 2336,\r
-\r
- 123,\r
-\r
- 532,\r
-\r
- 1837,\r
-\r
- 3780,\r
-\r
- 1555,\r
- -1,\r
-\r
- 3594,\r
-\r
- 2207,\r
-\r
- 1246,\r
-\r
- 477,\r
-\r
- 2996,\r
-\r
- 117,\r
-\r
- 881,\r
-\r
- 1831,\r
-\r
- 3774,\r
-\r
- 1549,\r
-\r
- 703,\r
- -1,\r
-\r
- 3867,\r
-\r
- 3588,\r
-\r
- 2204,\r
-\r
- 1243,\r
-\r
- 474,\r
-\r
- 878,\r
-\r
- 111,\r
-\r
- 658,\r
-\r
- 1825,\r
-\r
- 3768,\r
-\r
- 1543,\r
-\r
- 3822,\r
-\r
- 1990,\r
-\r
- 1008,\r
-\r
- 288,\r
- -1,\r
-\r
- 2273,\r
-\r
- 2681,\r
-\r
- 875,\r
-\r
- 2174,\r
-\r
- 1213,\r
- -1,\r
-\r
- 643,\r
-\r
- 2348,\r
-\r
- 2870,\r
-\r
- 1765,\r
-\r
- 3708,\r
-\r
- 1483,\r
- -1, -1,\r
-\r
- 652,\r
-\r
- 3267,\r
-\r
- 381,\r
-\r
- 3921,\r
-\r
- 2960,\r
-\r
- 845,\r
-\r
- 637,\r
-\r
- 1684,\r
-\r
- 2165,\r
-\r
- 1204,\r
-\r
- 3237,\r
-\r
- 661,\r
-\r
- 2519,\r
-\r
- 2861,\r
-\r
- 1747,\r
-\r
- 3690,\r
-\r
- 1465,\r
-\r
- 785,\r
-\r
- 3903,\r
-\r
- 2432,\r
-\r
- 3339,\r
-\r
- 37,\r
-\r
- 2090,\r
-\r
- 1114,\r
-\r
- 372,\r
-\r
- 3228,\r
-\r
- 3915,\r
-\r
- 2771,\r
-\r
- 640,\r
- -1,\r
-\r
- 1387,\r
-\r
- 2501,\r
-\r
- 3891,\r
-\r
- 3234,\r
-\r
- 2021,\r
-\r
- 1057,\r
-\r
- 318,\r
-\r
- 3924,\r
-\r
- 18,\r
-\r
- 3222,\r
-\r
- 1126,\r
-\r
- 1996,\r
-\r
- 1020,\r
-\r
- 294,\r
-\r
- 2783,\r
-\r
- 2378,\r
-\r
- 2693,\r
-\r
- 1366,\r
-\r
- 3084,\r
-\r
- 3624,\r
-\r
- 2222,\r
-\r
- 1261,\r
-\r
- 2354,\r
-\r
- 3297,\r
-\r
- 3897,\r
-\r
- 1987,\r
-\r
- 1002,\r
-\r
- 285,\r
-\r
- 1579,\r
-\r
- 667,\r
-\r
- 2675,\r
-\r
- 3225,\r
-\r
- 3387,\r
-\r
- 3075,\r
-\r
- 4020,\r
-\r
- 3573,\r
-\r
- 2345,\r
-\r
- 3219,\r
-\r
- 3945,\r
-\r
- 4005,\r
-\r
- 96,\r
-\r
- 3081,\r
-\r
- 1810,\r
-\r
- 3753,\r
-\r
- 1528,\r
-\r
- 2057,\r
-\r
- 1093,\r
-\r
- 3069,\r
-\r
- 2492,\r
-\r
- 2357,\r
-\r
- 3528,\r
-\r
- 1984,\r
-\r
- 996,\r
-\r
- 282,\r
-\r
- 3996,\r
-\r
- 3939,\r
-\r
- 2669,\r
- -1,\r
-\r
- 1438,\r
-\r
- 2564,\r
-\r
- 2291,\r
-\r
- 2285,\r
- -1,\r
-\r
- 4008,\r
-\r
- 3522,\r
-\r
- 1981,\r
-\r
- 990,\r
-\r
- 279,\r
-\r
- 4014,\r
-\r
- 3072,\r
-\r
- 2663,\r
-\r
- 3516,\r
-\r
- 1978,\r
-\r
- 984,\r
-\r
- 276,\r
-\r
- 3066,\r
- -1,\r
-\r
- 2657,\r
-\r
- 3008,\r
-\r
- 3002,\r
-\r
- 3486,\r
-\r
- 1963,\r
-\r
- 950,\r
-\r
- 1999,\r
-\r
- 1026,\r
-\r
- 297,\r
-\r
- 2627,\r
-\r
- 369,\r
-\r
- 2699,\r
- -1,\r
-\r
- 3177,\r
-\r
- 3399,\r
-\r
- 2330,\r
-\r
- 3621,\r
-\r
- 3444,\r
-\r
- 1942,\r
-\r
- 906,\r
-\r
- 243,\r
-\r
- 144,\r
-\r
- 613,\r
-\r
- 2585,\r
-\r
- 3501,\r
-\r
- 1576,\r
-\r
- 968,\r
-\r
- 270,\r
-\r
- 3381,\r
-\r
- 2312,\r
-\r
- 2642,\r
-\r
- 3861,\r
-\r
- 2045,\r
-\r
- 1081,\r
-\r
- 342,\r
-\r
- 2468,\r
-\r
- 65,\r
-\r
- 3615,\r
-\r
- 348,\r
-\r
- 2483,\r
-\r
- 712,\r
- -1,\r
-\r
- 138,\r
-\r
- 2402,\r
-\r
- 1852,\r
-\r
- 1414,\r
-\r
- 1570,\r
-\r
- 2417,\r
-\r
- 721,\r
-\r
- 1429,\r
-\r
- 3843,\r
-\r
- 3023,\r
-\r
- 727,\r
-\r
- 1678,\r
-\r
- 3375,\r
-\r
- 3201,\r
-\r
- 2042,\r
-\r
- 1078,\r
-\r
- 339,\r
-\r
- 2462,\r
-\r
- 59,\r
- -1,\r
-\r
- 4002,\r
-\r
- 778,\r
-\r
- 1672,\r
-\r
- 2171,\r
-\r
- 1210,\r
-\r
- 2396,\r
-\r
- 3369,\r
-\r
- 1408,\r
-\r
- 2867,\r
-\r
- 1759,\r
-\r
- 3702,\r
-\r
- 1477,\r
-\r
- 768,\r
-\r
- 3363,\r
-\r
- 2033,\r
-\r
- 1069,\r
-\r
- 330,\r
-\r
- 709,\r
-\r
- 40,\r
-\r
- 622,\r
- -1,\r
-\r
- 3930,\r
-\r
- 3333,\r
- -1,\r
-\r
- 3405,\r
- -1,\r
-\r
- 2513,\r
-\r
- 1390,\r
-\r
- 2231,\r
-\r
- 1270,\r
-\r
- 496,\r
-\r
- 3048,\r
-\r
- 162,\r
-\r
- 607,\r
-\r
- 2168,\r
-\r
- 1207,\r
-\r
- 1591,\r
- -1,\r
-\r
- 3909,\r
-\r
- 2864,\r
-\r
- 1753,\r
-\r
- 3696,\r
-\r
- 1471,\r
-\r
- 3348,\r
- -1,\r
-\r
- 3231,\r
-\r
- 634,\r
-\r
- 2030,\r
-\r
- 1066,\r
-\r
- 327,\r
-\r
- 3288,\r
-\r
- 34,\r
-\r
- 3207,\r
-\r
- 1993,\r
-\r
- 1014,\r
-\r
- 291,\r
- -1,\r
-\r
- 2507,\r
-\r
- 2687,\r
-\r
- 601,\r
-\r
- 1384,\r
-\r
- 3510,\r
-\r
- 1975,\r
-\r
- 977,\r
-\r
- 2351,\r
- -1,\r
-\r
- 3198,\r
-\r
- 2651,\r
-\r
- 3504,\r
-\r
- 1972,\r
-\r
- 971,\r
-\r
- 3120,\r
-\r
- 3888,\r
-\r
- 598,\r
-\r
- 2645,\r
-\r
- 3498,\r
-\r
- 1969,\r
-\r
- 965,\r
- -1,\r
-\r
- 3981,\r
-\r
- 595,\r
-\r
- 2639,\r
-\r
- 3489,\r
-\r
- 3078,\r
-\r
- 954,\r
-\r
- 264,\r
-\r
- 3252,\r
-\r
- 2342,\r
-\r
- 2630,\r
-\r
- 3330,\r
-\r
- 3054,\r
-\r
- 625,\r
-\r
- 3195,\r
-\r
- 706,\r
-\r
- 2333,\r
-\r
- 3456,\r
-\r
- 1948,\r
-\r
- 919,\r
-\r
- 249,\r
-\r
- 2267,\r
- -1,\r
-\r
- 2597,\r
-\r
- 1654,\r
-\r
- 574,\r
-\r
- 3045,\r
- -1,\r
-\r
- 3192,\r
-\r
- 2324,\r
-\r
- 3450,\r
-\r
- 1945,\r
-\r
- 913,\r
-\r
- 246,\r
-\r
- 748,\r
-\r
- 3189,\r
-\r
- 2591,\r
-\r
- 3426,\r
-\r
- 1933,\r
-\r
- 2954,\r
-\r
- 237,\r
- -1,\r
-\r
- 2318,\r
-\r
- 1924,\r
-\r
- 3174,\r
-\r
- 228,\r
-\r
- 3210,\r
-\r
- 4050,\r
-\r
- 1921,\r
-\r
- 354,\r
-\r
- 225,\r
-\r
- 1342,\r
-\r
- 3042,\r
- -1,\r
-\r
- 2300,\r
-\r
- 3393,\r
-\r
- 1333,\r
-\r
- 2255,\r
-\r
- 3153,\r
-\r
- 2294,\r
-\r
- 1441,\r
-\r
- 1330,\r
-\r
- 363,\r
-\r
- 673,\r
-\r
- 3357,\r
-\r
- 3957,\r
-\r
- 3039,\r
-\r
- 3017,\r
-\r
- 1918,\r
-\r
- 3972,\r
-\r
- 222,\r
-\r
- 3351,\r
-\r
- 3014,\r
-\r
- 3035,\r
-\r
- 3855,\r
-\r
- 2918,\r
-\r
- 3249,\r
-\r
- 3011,\r
-\r
- 3345,\r
-\r
- 2288,\r
- -1,\r
-\r
- 1327,\r
-\r
- 3020,\r
-\r
- 664,\r
-\r
- 3057,\r
-\r
- 3336,\r
-\r
- 3597,\r
-\r
- 2054,\r
-\r
- 1090,\r
-\r
- 3951,\r
-\r
- 2486,\r
-\r
- 120,\r
-\r
- 2894,\r
-\r
- 1834,\r
-\r
- 3777,\r
-\r
- 1552,\r
-\r
- 1642,\r
-\r
- 3005,\r
-\r
- 2420,\r
-\r
- 2063,\r
-\r
- 1432,\r
-\r
- 357,\r
-\r
- 4083,\r
-\r
- 730,\r
-\r
- 2744,\r
-\r
- 3849,\r
-\r
- 739,\r
-\r
- 2048,\r
-\r
- 1084,\r
-\r
- 3933,\r
-\r
- 2474,\r
-\r
- 71,\r
-\r
- 1450,\r
- -1,\r
-\r
- 2087,\r
-\r
- 1111,\r
-\r
- 3243,\r
- -1,\r
-\r
- 2408,\r
-\r
- 2768,\r
-\r
- 1420,\r
-\r
- 3606,\r
-\r
- 2213,\r
-\r
- 1252,\r
- -1, -1,\r
-\r
- 129,\r
-\r
- 3555,\r
-\r
- 1843,\r
-\r
- 3786,\r
-\r
- 1561,\r
-\r
- 592,\r
-\r
- 77,\r
-\r
- 1029,\r
-\r
- 1792,\r
-\r
- 3735,\r
-\r
- 1510,\r
-\r
- 2702,\r
-\r
- 589,\r
-\r
- 2435,\r
-\r
- 2144,\r
-\r
- 1912,\r
-\r
- 3927,\r
-\r
- 216,\r
-\r
- 2249,\r
-\r
- 2840,\r
-\r
- 1705,\r
-\r
- 3648,\r
- -1,\r
-\r
- 3240,\r
-\r
- 3543,\r
-\r
- 2546,\r
-\r
- 586,\r
-\r
- 450,\r
-\r
- 1321,\r
-\r
- 3204,\r
-\r
- 806,\r
-\r
- 1780,\r
-\r
- 3723,\r
-\r
- 1498,\r
-\r
- 3537,\r
- -1,\r
-\r
- 2912,\r
-\r
- 447,\r
-\r
- 3186,\r
-\r
- 351,\r
-\r
- 2489,\r
-\r
- 1774,\r
-\r
- 3717,\r
-\r
- 1492,\r
-\r
- 2993,\r
-\r
- 3183,\r
-\r
- 3531,\r
- -1,\r
-\r
- 2534,\r
-\r
- 444,\r
-\r
- 1435,\r
-\r
- 1180,\r
-\r
- 3180,\r
-\r
- 1768,\r
-\r
- 3711,\r
-\r
- 1486,\r
-\r
- 1702,\r
-\r
- 3645,\r
-\r
- 2528,\r
-\r
- 565,\r
-\r
- 3471,\r
-\r
- 3087,\r
-\r
- 934,\r
-\r
- 255,\r
-\r
- 556,\r
-\r
- 1636,\r
-\r
- 2612,\r
-\r
- 3051,\r
-\r
- 679,\r
-\r
- 553,\r
-\r
- 2522,\r
- -1,\r
-\r
- 3159,\r
-\r
- 432,\r
-\r
- 2495,\r
-\r
- 733,\r
-\r
- 3032,\r
-\r
- 1744,\r
-\r
- 3687,\r
-\r
- 1462,\r
- -1,\r
-\r
- 691,\r
-\r
- 2429,\r
-\r
- 3029,\r
-\r
- 1453,\r
-\r
- 3156,\r
-\r
- 3408,\r
- -1, -1,\r
-\r
- 550,\r
-\r
- 3026,\r
-\r
- 2069,\r
-\r
- 3147,\r
-\r
- 2153,\r
-\r
- 2498,\r
-\r
- 421,\r
-\r
- 2750,\r
-\r
- 3138,\r
-\r
- 2849,\r
-\r
- 1723,\r
-\r
- 3666,\r
- -1,\r
-\r
- 3135,\r
- -1, -1,\r
-\r
- 2138,\r
-\r
- 1177,\r
-\r
- 414,\r
-\r
- 676,\r
-\r
- 826,\r
-\r
- 2834,\r
-\r
- 1693,\r
-\r
- 2135,\r
-\r
- 1174,\r
-\r
- 411,\r
-\r
- 3990,\r
-\r
- 3984,\r
-\r
- 2831,\r
-\r
- 1687,\r
-\r
- 1861,\r
-\r
- 685,\r
-\r
- 795,\r
-\r
- 3132,\r
- -1,\r
-\r
- 2129,\r
-\r
- 1168,\r
-\r
- 408,\r
- -1,\r
-\r
- 789,\r
-\r
- 2825,\r
-\r
- 1675,\r
- -1,\r
-\r
- 2051,\r
-\r
- 1087,\r
-\r
- 3975,\r
-\r
- 2480,\r
-\r
- 2002,\r
-\r
- 1032,\r
-\r
- 300,\r
-\r
- 1858,\r
-\r
- 773,\r
-\r
- 2705,\r
-\r
- 405,\r
-\r
- 2414,\r
- -1,\r
-\r
- 1426,\r
-\r
- 1666,\r
-\r
- 4077,\r
-\r
- 724,\r
-\r
- 345,\r
-\r
- 2477,\r
-\r
- 74,\r
- -1,\r
-\r
- 3258,\r
-\r
- 3963,\r
-\r
- 402,\r
-\r
- 762,\r
- -1,\r
-\r
- 2411,\r
-\r
- 1660,\r
-\r
- 1423,\r
-\r
- 4035,\r
-\r
- 547,\r
-\r
- 3801,\r
-\r
- 3483,\r
- -1,\r
-\r
- 947,\r
-\r
- 261,\r
-\r
- 3273,\r
-\r
- 755,\r
-\r
- 2624,\r
-\r
- 3480,\r
-\r
- 1960,\r
-\r
- 944,\r
-\r
- 3876,\r
- -1,\r
-\r
- 2327,\r
-\r
- 2621,\r
- -1, -1,\r
-\r
- 3438,\r
-\r
- 1939,\r
-\r
- 899,\r
-\r
- 3453,\r
-\r
- 3870,\r
-\r
- 916,\r
-\r
- 2579,\r
-\r
- 3432,\r
-\r
- 1936,\r
-\r
- 2594,\r
-\r
- 240,\r
-\r
- 3093,\r
-\r
- 2306,\r
- -1,\r
-\r
- 3327,\r
-\r
- 2321,\r
-\r
- 3864,\r
-\r
- 3420,\r
-\r
- 1930,\r
-\r
- 3798,\r
-\r
- 234,\r
-\r
- 1345,\r
-\r
- 3636,\r
-\r
- 2228,\r
-\r
- 1267,\r
-\r
- 493,\r
-\r
- 3117,\r
-\r
- 156,\r
-\r
- 577,\r
- -1,\r
-\r
- 3978,\r
-\r
- 1339,\r
-\r
- 3630,\r
-\r
- 2225,\r
-\r
- 1264,\r
-\r
- 490,\r
- -1,\r
-\r
- 150,\r
-\r
- 3609,\r
-\r
- 893,\r
-\r
- 3840,\r
-\r
- 1585,\r
- -1,\r
-\r
- 132,\r
-\r
- 3591,\r
-\r
- 1846,\r
-\r
- 3789,\r
-\r
- 1564,\r
- -1,\r
-\r
- 114,\r
-\r
- 2891,\r
-\r
- 1828,\r
-\r
- 3771,\r
-\r
- 1546,\r
- -1,\r
-\r
- 884,\r
-\r
- 3579,\r
- -1,\r
-\r
- 688,\r
- -1, -1,\r
-\r
- 102,\r
-\r
- 3819,\r
-\r
- 1816,\r
-\r
- 3759,\r
-\r
- 1534,\r
-\r
- 3567,\r
- -1,\r
-\r
- 1129,\r
- -1,\r
-\r
- 3549,\r
-\r
- 89,\r
-\r
- 2786,\r
-\r
- 1804,\r
-\r
- 3747,\r
-\r
- 1522,\r
-\r
- 3561,\r
-\r
- 1786,\r
-\r
- 3729,\r
-\r
- 1504,\r
-\r
- 2570,\r
-\r
- 83,\r
-\r
- 1035,\r
-\r
- 1798,\r
-\r
- 3741,\r
-\r
- 1516,\r
-\r
- 2708,\r
-\r
- 3474,\r
-\r
- 1957,\r
-\r
- 937,\r
-\r
- 2558,\r
-\r
- 3264,\r
-\r
- 441,\r
-\r
- 2615,\r
-\r
- 2540,\r
- -1,\r
-\r
- 1762,\r
-\r
- 3705,\r
-\r
- 1480,\r
- -1,\r
-\r
- 2552,\r
-\r
- 2132,\r
-\r
- 1171,\r
-\r
- 628,\r
- -1,\r
-\r
- 3324,\r
-\r
- 2828,\r
-\r
- 1681,\r
-\r
- 4080,\r
- -1,\r
-\r
- 438,\r
- -1,\r
-\r
- 3321,\r
-\r
- 2516,\r
-\r
- 1756,\r
-\r
- 3699,\r
-\r
- 1474,\r
-\r
- 782,\r
-\r
- 2005,\r
-\r
- 1038,\r
-\r
- 303,\r
-\r
- 4047,\r
-\r
- 435,\r
-\r
- 2711,\r
-\r
- 3315,\r
-\r
- 3969,\r
-\r
- 1750,\r
-\r
- 3693,\r
-\r
- 1468,\r
-\r
- 3099,\r
- -1,\r
-\r
- 2510,\r
-\r
- 583,\r
- -1,\r
-\r
- 4041,\r
- -1,\r
-\r
- 3213,\r
- -1, -1,\r
-\r
- 580,\r
-\r
- 3966,\r
-\r
- 4017,\r
- -1,\r
-\r
- 2504,\r
-\r
- 2126,\r
-\r
- 1165,\r
-\r
- 3999,\r
-\r
- 3246,\r
-\r
- 571,\r
-\r
- 2822,\r
-\r
- 1669,\r
-\r
- 3993,\r
-\r
- 2162,\r
-\r
- 1201,\r
- -1,\r
-\r
- 568,\r
- -1,\r
-\r
- 2858,\r
-\r
- 1741,\r
-\r
- 3684,\r
-\r
- 765,\r
-\r
- 1198,\r
-\r
- 429,\r
-\r
- 2159,\r
- -1,\r
-\r
- 562,\r
-\r
- 1738,\r
-\r
- 3681,\r
-\r
- 2855,\r
-\r
- 1735,\r
-\r
- 3678,\r
-\r
- 3987,\r
-\r
- 3171,\r
- -1,\r
-\r
- 3060,\r
- -1,\r
-\r
- 842,\r
-\r
- 1195,\r
-\r
- 425,\r
-\r
- 839,\r
-\r
- 2156,\r
- -1,\r
-\r
- 1732,\r
-\r
- 3675,\r
-\r
- 2150,\r
-\r
- 2852,\r
-\r
- 1729,\r
-\r
- 3672,\r
-\r
- 3150,\r
-\r
- 2846,\r
-\r
- 1717,\r
-\r
- 3660,\r
-\r
- 836,\r
- -1, -1, -1,\r
-\r
- 833,\r
- -1,\r
-\r
- 3144,\r
- -1,\r
-\r
- 820,\r
-\r
- 1186,\r
-\r
- 417,\r
-\r
- 2147,\r
-\r
- 2453,\r
-\r
- 49,\r
-\r
- 1714,\r
-\r
- 3657,\r
-\r
- 2843,\r
-\r
- 1711,\r
-\r
- 3654,\r
- -1,\r
-\r
- 2387,\r
- -1,\r
-\r
- 1399,\r
- -1,\r
-\r
- 816,\r
-\r
- 2141,\r
- -1,\r
-\r
- 813,\r
-\r
- 3882,\r
- -1,\r
-\r
- 2837,\r
-\r
- 1699,\r
-\r
- 3642,\r
-\r
- 2123,\r
-\r
- 1162,\r
-\r
- 2066,\r
-\r
- 631,\r
-\r
- 360,\r
-\r
- 2819,\r
-\r
- 1663,\r
-\r
- 2747,\r
-\r
- 802,\r
- -1, -1, -1,\r
-\r
- 2117,\r
-\r
- 1156,\r
-\r
- 3858,\r
-\r
- 1456,\r
-\r
- 758,\r
-\r
- 2813,\r
-\r
- 1651,\r
-\r
- 2111,\r
-\r
- 1150,\r
-\r
- 396,\r
-\r
- 3291,\r
-\r
- 2426,\r
-\r
- 2807,\r
-\r
- 1639,\r
-\r
- 2060,\r
-\r
- 1096,\r
-\r
- 745,\r
-\r
- 1120,\r
-\r
- 375,\r
-\r
- 2741,\r
-\r
- 3852,\r
-\r
- 2777,\r
- -1,\r
-\r
- 736,\r
-\r
- 2099,\r
-\r
- 1138,\r
-\r
- 390,\r
-\r
- 1444,\r
- -1,\r
-\r
- 2795,\r
-\r
- 1615,\r
-\r
- 3168,\r
-\r
- 3846,\r
-\r
- 2093,\r
-\r
- 1132,\r
-\r
- 384,\r
-\r
- 15,\r
-\r
- 2723,\r
-\r
- 2789,\r
-\r
- 1603,\r
-\r
- 2465,\r
-\r
- 62,\r
-\r
- 2738,\r
-\r
- 2375,\r
-\r
- 3318,\r
-\r
- 1363,\r
-\r
- 2120,\r
-\r
- 1159,\r
-\r
- 2399,\r
- -1,\r
-\r
- 1411,\r
-\r
- 2816,\r
-\r
- 1657,\r
-\r
- 4062,\r
-\r
- 3468,\r
-\r
- 1954,\r
-\r
- 931,\r
-\r
- 3462,\r
-\r
- 1951,\r
-\r
- 925,\r
-\r
- 2609,\r
-\r
- 3216,\r
-\r
- 752,\r
-\r
- 2603,\r
-\r
- 3837,\r
-\r
- 1894,\r
- -1,\r
-\r
- 198,\r
-\r
- 1891,\r
-\r
- 1876,\r
-\r
- 195,\r
-\r
- 180,\r
-\r
- 3834,\r
-\r
- 1023,\r
- -1,\r
-\r
- 3831,\r
-\r
- 2270,\r
-\r
- 2696,\r
-\r
- 1303,\r
-\r
- 2264,\r
-\r
- 2258,\r
-\r
- 1300,\r
-\r
- 1285,\r
- -1, -1,\r
-\r
- 2084,\r
-\r
- 1108,\r
-\r
- 3312,\r
-\r
- 3828,\r
-\r
- 1873,\r
-\r
- 2765,\r
-\r
- 177,\r
-\r
- 3825,\r
-\r
- 1870,\r
-\r
- 2957,\r
-\r
- 174,\r
-\r
- 3813,\r
-\r
- 2951,\r
-\r
- 2921,\r
-\r
- 3063,\r
-\r
- 2252,\r
-\r
- 1123,\r
-\r
- 1282,\r
- -1,\r
-\r
- 2246,\r
-\r
- 2780,\r
-\r
- 1279,\r
- -1,\r
-\r
- 2105,\r
-\r
- 1144,\r
- -1,\r
-\r
- 670,\r
-\r
- 3810,\r
-\r
- 2801,\r
-\r
- 1627,\r
-\r
- 3807,\r
-\r
- 3603,\r
-\r
- 1909,\r
-\r
- 2915,\r
-\r
- 213,\r
- -1,\r
-\r
- 126,\r
-\r
- 2909,\r
-\r
- 1840,\r
-\r
- 3783,\r
-\r
- 1558,\r
-\r
- 3585,\r
-\r
- 2075,\r
-\r
- 1099,\r
-\r
- 3795,\r
-\r
- 1318,\r
-\r
- 108,\r
-\r
- 2756,\r
-\r
- 1822,\r
-\r
- 3765,\r
-\r
- 1540,\r
-\r
- 1189,\r
-\r
- 3942,\r
-\r
- 1183,\r
-\r
- 24,\r
-\r
- 2729,\r
-\r
- 1720,\r
-\r
- 3663,\r
-\r
- 1708,\r
-\r
- 3651,\r
- -1,\r
-\r
- 2987,\r
- -1,\r
-\r
- 1375,\r
-\r
- 2114,\r
-\r
- 1153,\r
-\r
- 823,\r
-\r
- 3402,\r
-\r
- 810,\r
-\r
- 2810,\r
-\r
- 1645,\r
- -1,\r
-\r
- 4074,\r
-\r
- 2072,\r
-\r
- 1696,\r
-\r
- 3639,\r
-\r
- 2102,\r
-\r
- 1141,\r
-\r
- 2753,\r
-\r
- 4071,\r
-\r
- 742,\r
-\r
- 2798,\r
-\r
- 1621,\r
-\r
- 3309,\r
-\r
- 798,\r
-\r
- 3261,\r
- -1, -1,\r
-\r
- 4029,\r
-\r
- 2471,\r
-\r
- 68,\r
-\r
- 4044,\r
-\r
- 2459,\r
-\r
- 56,\r
-\r
- 646,\r
-\r
- 4023,\r
- -1,\r
-\r
- 2405,\r
- -1,\r
-\r
- 1417,\r
-\r
- 2393,\r
-\r
- 9,\r
-\r
- 1405,\r
-\r
- 21,\r
-\r
- 2726,\r
-\r
- 4011,\r
-\r
- 2447,\r
-\r
- 43,\r
-\r
- 2369,\r
-\r
- 3255,\r
-\r
- 1357,\r
-\r
- 3282,\r
-\r
- 1369,\r
- -1,\r
-\r
- 2381,\r
-\r
- 3477,\r
-\r
- 1393,\r
-\r
- 940,\r
-\r
- 258,\r
-\r
- 3300,\r
-\r
- 3906,\r
-\r
- 2618,\r
-\r
- 1117,\r
-\r
- 3096,\r
-\r
- 3627,\r
-\r
- 3954,\r
-\r
- 2774,\r
-\r
- 529,\r
-\r
- 3294,\r
-\r
- 147,\r
-\r
- 526,\r
-\r
- 511,\r
-\r
- 3525,\r
-\r
- 1582,\r
-\r
- 993,\r
- -1,\r
-\r
- 2444,\r
-\r
- 3465,\r
-\r
- 2666,\r
-\r
- 928,\r
-\r
- 252,\r
-\r
- 890,\r
-\r
- 3447,\r
-\r
- 2606,\r
-\r
- 909,\r
- -1, -1,\r
-\r
- 3090,\r
-\r
- 2588,\r
-\r
- 3126,\r
-\r
- 3165,\r
-\r
- 508,\r
- -1,\r
-\r
- 3162,\r
-\r
- 2315,\r
-\r
- 505,\r
-\r
- 3441,\r
-\r
- 3435,\r
-\r
- 902,\r
-\r
- 896,\r
- -1, -1,\r
-\r
- 2582,\r
-\r
- 2576,\r
-\r
- 1903,\r
-\r
- 1900,\r
-\r
- 207,\r
-\r
- 204,\r
-\r
- 2309,\r
-\r
- 2303,\r
-\r
- 1017,\r
-\r
- 1888,\r
- -1,\r
-\r
- 192,\r
-\r
- 2690,\r
-\r
- 4065,\r
- -1,\r
-\r
- 1312,\r
-\r
- 1309,\r
-\r
- 544,\r
-\r
- 3270,\r
-\r
- 2108,\r
-\r
- 1147,\r
-\r
- 1882,\r
-\r
- 1297,\r
-\r
- 186,\r
-\r
- 2804,\r
-\r
- 1633,\r
-\r
- 1011,\r
-\r
- 700,\r
- -1, -1,\r
-\r
- 2684,\r
-\r
- 2975,\r
-\r
- 2969,\r
-\r
- 3285,\r
-\r
- 1291,\r
-\r
- 655,\r
-\r
- 1005,\r
-\r
- 3816,\r
-\r
- 2945,\r
-\r
- 3804,\r
-\r
- 2678,\r
-\r
- 3306,\r
-\r
- 2081,\r
-\r
- 1105,\r
-\r
- 2078,\r
-\r
- 1102,\r
- -1,\r
-\r
- 2762,\r
-\r
- 999,\r
-\r
- 2759,\r
-\r
- 2933,\r
-\r
- 3372,\r
-\r
- 2672,\r
-\r
- 3,\r
- -1,\r
-\r
- 3792,\r
-\r
- 3114,\r
-\r
- 3519,\r
-\r
- 694,\r
-\r
- 987,\r
-\r
- 2363,\r
-\r
- 3918,\r
-\r
- 1351,\r
-\r
- 2660,\r
-\r
- 3513,\r
- -1,\r
-\r
- 980,\r
- -1, -1, -1,\r
-\r
- 2654,\r
-\r
- 3129,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
-\r
- 649,\r
- -1, -1,\r
-\r
- 3396,\r
- -1, -1, -1, -1, -1, -1,\r
-\r
- 3303,\r
- -1, -1,\r
-\r
- 3960,\r
-\r
- 3105,\r
- -1,\r
-\r
- 3948,\r
- -1, -1, -1, -1,\r
-\r
- 3390,\r
- -1, -1,\r
-\r
- 3900,\r
- -1,\r
-\r
- 3912,\r
- -1, -1, -1,\r
-\r
- 3936,\r
-\r
- 3384,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1,\r
-\r
- 3378,\r
- -1,\r
-\r
- 3102,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1,\r
-\r
- 3366,\r
-\r
- 3279,\r
- -1, -1, -1, -1, -1,\r
-\r
- 3360,\r
- -1, -1, -1,\r
-\r
- 538,\r
-\r
- 535,\r
- -1, -1, -1,\r
-\r
- 619,\r
- -1,\r
-\r
- 523,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1,\r
-\r
- 517,\r
- -1, -1, -1,\r
-\r
- 616,\r
- -1, -1, -1, -1,\r
-\r
- 3123,\r
- -1, -1, -1, -1,\r
-\r
- 610,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1,\r
-\r
- 604,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1,\r
-\r
- 4059,\r
- -1, -1,\r
-\r
- 4053,\r
- -1,\r
-\r
- 3894,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1,\r
-\r
- 3111,\r
- -1,\r
-\r
- 3108,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1,\r
-\r
- 4068,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1,\r
-\r
- 4056,\r
- -1, -1, -1, -1,\r
-\r
- 4038,\r
- -1, -1, -1, -1, -1, -1,\r
- -1, -1, -1, -1, -1, -1,\r
- -1,\r
-\r
- 4032,\r
-\r
- 4026\r
- };\r
-\r
- int key = hash(codes);\r
- if (key <= MAX_HASH_VALUE) {\r
- int index = wordlist[key];\r
- if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds1 + index, 1) == 0) {\r
- return index;\r
- }\r
- }\r
-\r
- return -1;\r
-}\r
+++ /dev/null
-/* This file was converted by gperf_fold_key_conv.py\r
- from gperf output file. */\r
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold2_key unicode_fold2_key.gperf */\r
-/* Computed positions: -k'3,6' */\r
-\r
-\r
-\r
-/* This gperf source file was generated by make_unicode_fold_data.py */\r
-\r
-/*-\r
- * Copyright (c) 2017-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-//#include <string.h>\r
-#include "regenc.h"\r
-\r
-#define TOTAL_KEYWORDS 59\r
-#define MIN_WORD_LENGTH 6\r
-#define MAX_WORD_LENGTH 6\r
-#define MIN_HASH_VALUE 0\r
-#define MAX_HASH_VALUE 58\r
-/* maximum key range = 59, duplicates = 0 */\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-/*ARGSUSED*/\r
-static unsigned int\r
-hash(OnigCodePoint codes[])\r
-{\r
- static const unsigned char asso_values[] =\r
- {\r
- 58, 57, 56, 55, 54, 53, 52, 16, 50, 59,\r
- 15, 59, 25, 59, 59, 59, 59, 59, 59, 3,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 49, 48, 47, 46, 45, 44, 43, 42,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 21,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 2, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 40, 20, 39, 38,\r
- 37, 14, 5, 36, 20, 7, 25, 34, 29, 32,\r
- 16, 59, 31, 59, 59, 2, 1, 59, 25, 15,\r
- 59, 14, 59, 59, 28, 59, 2, 59, 59, 59,\r
- 11, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 24, 59, 22, 59, 59, 11, 59, 59,\r
- 59, 59, 59, 7, 59, 0, 59, 59, 16, 59,\r
- 1, 59, 59, 16, 59, 59, 59, 15, 59, 59,\r
- 59, 6, 59, 59, 59, 59, 0, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,\r
- 59, 59, 59, 59, 59, 59\r
- };\r
- return asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)];\r
-}\r
-\r
-int\r
-onigenc_unicode_fold2_key(OnigCodePoint codes[])\r
-{\r
- static const short int wordlist[] =\r
- {\r
-\r
- 101,\r
-\r
- 253,\r
-\r
- 76,\r
-\r
- 29,\r
-\r
- 24,\r
-\r
- 239,\r
-\r
- 96,\r
-\r
- 71,\r
-\r
- 92,\r
-\r
- 67,\r
-\r
- 4,\r
-\r
- 62,\r
-\r
- 8,\r
-\r
- 58,\r
-\r
- 234,\r
-\r
- 109,\r
-\r
- 164,\r
-\r
- 88,\r
-\r
- 84,\r
-\r
- 80,\r
-\r
- 214,\r
-\r
- 0,\r
-\r
- 54,\r
-\r
- 261,\r
-\r
- 50,\r
-\r
- 105,\r
-\r
- 121,\r
-\r
- 125,\r
-\r
- 257,\r
-\r
- 42,\r
-\r
- 38,\r
-\r
- 249,\r
-\r
- 46,\r
-\r
- 117,\r
-\r
- 12,\r
-\r
- 113,\r
-\r
- 244,\r
-\r
- 229,\r
-\r
- 224,\r
-\r
- 219,\r
-\r
- 209,\r
-\r
- 16,\r
-\r
- 204,\r
-\r
- 199,\r
-\r
- 194,\r
-\r
- 189,\r
-\r
- 184,\r
-\r
- 179,\r
-\r
- 174,\r
-\r
- 169,\r
-\r
- 20,\r
-\r
- 34,\r
-\r
- 159,\r
-\r
- 154,\r
-\r
- 149,\r
-\r
- 144,\r
-\r
- 139,\r
-\r
- 134,\r
-\r
- 129\r
- };\r
-\r
- int key = hash(codes);\r
- if (key <= MAX_HASH_VALUE) {\r
- int index = wordlist[key];\r
- if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds2 + index, 2) == 0)\r
- return index;\r
- }\r
-\r
- return -1;\r
-}\r
+++ /dev/null
-/* This file was converted by gperf_fold_key_conv.py\r
- from gperf output file. */\r
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1 -N onigenc_unicode_fold3_key unicode_fold3_key.gperf */\r
-/* Computed positions: -k'3,6,9' */\r
-\r
-\r
-\r
-/* This gperf source file was generated by make_unicode_fold_data.py */\r
-\r
-/*-\r
- * Copyright (c) 2017-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-//#include <string.h>\r
-#include "regenc.h"\r
-\r
-#define TOTAL_KEYWORDS 14\r
-#define MIN_WORD_LENGTH 9\r
-#define MAX_WORD_LENGTH 9\r
-#define MIN_HASH_VALUE 0\r
-#define MAX_HASH_VALUE 13\r
-/* maximum key range = 14, duplicates = 0 */\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-/*ARGSUSED*/\r
-static unsigned int\r
-hash(OnigCodePoint codes[])\r
-{\r
- static const unsigned char asso_values[] =\r
- {\r
- 6, 3, 14, 14, 14, 14, 14, 14, 1, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 0,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 0, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 4, 14, 14, 5, 14, 14, 4, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 10, 14, 14,\r
- 14, 14, 14, 9, 14, 1, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 0, 14, 14,\r
- 14, 8, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,\r
- 14, 14, 14, 14, 14, 14\r
- };\r
- return asso_values[(unsigned char)onig_codes_byte_at(codes, 8)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 5)] + asso_values[(unsigned char)onig_codes_byte_at(codes, 2)];\r
-}\r
-\r
-int\r
-onigenc_unicode_fold3_key(OnigCodePoint codes[])\r
-{\r
- static const short int wordlist[] =\r
- {\r
-\r
- 62,\r
-\r
- 47,\r
-\r
- 31,\r
-\r
- 57,\r
-\r
- 41,\r
-\r
- 25,\r
-\r
- 52,\r
-\r
- 36,\r
-\r
- 20,\r
-\r
- 67,\r
-\r
- 15,\r
-\r
- 10,\r
-\r
- 5,\r
-\r
- 0\r
- };\r
-\r
- int key = hash(codes);\r
- if (key <= MAX_HASH_VALUE) {\r
- int index = wordlist[key];\r
- if (index >= 0 && onig_codes_cmp(codes, OnigUnicodeFolds3 + index, 3) == 0) {\r
- return index;\r
- }\r
- }\r
-\r
- return -1;\r
-}\r
+++ /dev/null
-/* This file was generated by make_unicode_fold_data.py. */\r
-#include "regenc.h"\r
-\r
-#define UNICODE_CASEFOLD_VERSION 12_1_0\r
-\r
-\r
-OnigCodePoint OnigUnicodeFolds1[] = {\r
- /* 0*/ 0x0061, 1, 0x0041, /* LATIN CAPITAL LETTER A */\r
- /* 3*/ 0x0062, 1, 0x0042, /* LATIN CAPITAL LETTER B */\r
- /* 6*/ 0x0063, 1, 0x0043, /* LATIN CAPITAL LETTER C */\r
- /* 9*/ 0x0064, 1, 0x0044, /* LATIN CAPITAL LETTER D */\r
- /* 12*/ 0x0065, 1, 0x0045, /* LATIN CAPITAL LETTER E */\r
- /* 15*/ 0x0066, 1, 0x0046, /* LATIN CAPITAL LETTER F */\r
- /* 18*/ 0x0067, 1, 0x0047, /* LATIN CAPITAL LETTER G */\r
- /* 21*/ 0x0068, 1, 0x0048, /* LATIN CAPITAL LETTER H */\r
- /* 24*/ 0x006a, 1, 0x004a, /* LATIN CAPITAL LETTER J */\r
- /* 27*/ 0x006b, 2, 0x004b, 0x212a, /* LATIN CAPITAL LETTER K */\r
- /* 31*/ 0x006c, 1, 0x004c, /* LATIN CAPITAL LETTER L */\r
- /* 34*/ 0x006d, 1, 0x004d, /* LATIN CAPITAL LETTER M */\r
- /* 37*/ 0x006e, 1, 0x004e, /* LATIN CAPITAL LETTER N */\r
- /* 40*/ 0x006f, 1, 0x004f, /* LATIN CAPITAL LETTER O */\r
- /* 43*/ 0x0070, 1, 0x0050, /* LATIN CAPITAL LETTER P */\r
- /* 46*/ 0x0071, 1, 0x0051, /* LATIN CAPITAL LETTER Q */\r
- /* 49*/ 0x0072, 1, 0x0052, /* LATIN CAPITAL LETTER R */\r
- /* 52*/ 0x0073, 2, 0x0053, 0x017f, /* LATIN CAPITAL LETTER S */\r
- /* 56*/ 0x0074, 1, 0x0054, /* LATIN CAPITAL LETTER T */\r
- /* 59*/ 0x0075, 1, 0x0055, /* LATIN CAPITAL LETTER U */\r
- /* 62*/ 0x0076, 1, 0x0056, /* LATIN CAPITAL LETTER V */\r
- /* 65*/ 0x0077, 1, 0x0057, /* LATIN CAPITAL LETTER W */\r
- /* 68*/ 0x0078, 1, 0x0058, /* LATIN CAPITAL LETTER X */\r
- /* 71*/ 0x0079, 1, 0x0059, /* LATIN CAPITAL LETTER Y */\r
- /* 74*/ 0x007a, 1, 0x005a, /* LATIN CAPITAL LETTER Z */\r
- /* 77*/ 0x00e0, 1, 0x00c0, /* LATIN CAPITAL LETTER A WITH GRAVE */\r
- /* 80*/ 0x00e1, 1, 0x00c1, /* LATIN CAPITAL LETTER A WITH ACUTE */\r
- /* 83*/ 0x00e2, 1, 0x00c2, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /* 86*/ 0x00e3, 1, 0x00c3, /* LATIN CAPITAL LETTER A WITH TILDE */\r
- /* 89*/ 0x00e4, 1, 0x00c4, /* LATIN CAPITAL LETTER A WITH DIAER.. */\r
- /* 92*/ 0x00e5, 2, 0x00c5, 0x212b, /* LATIN CAPITAL LETTER A WITH RING .. */\r
- /* 96*/ 0x00e6, 1, 0x00c6, /* LATIN CAPITAL LETTER AE */\r
- /* 99*/ 0x00e7, 1, 0x00c7, /* LATIN CAPITAL LETTER C WITH CEDIL.. */\r
- /* 102*/ 0x00e8, 1, 0x00c8, /* LATIN CAPITAL LETTER E WITH GRAVE */\r
- /* 105*/ 0x00e9, 1, 0x00c9, /* LATIN CAPITAL LETTER E WITH ACUTE */\r
- /* 108*/ 0x00ea, 1, 0x00ca, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /* 111*/ 0x00eb, 1, 0x00cb, /* LATIN CAPITAL LETTER E WITH DIAER.. */\r
- /* 114*/ 0x00ec, 1, 0x00cc, /* LATIN CAPITAL LETTER I WITH GRAVE */\r
- /* 117*/ 0x00ed, 1, 0x00cd, /* LATIN CAPITAL LETTER I WITH ACUTE */\r
- /* 120*/ 0x00ee, 1, 0x00ce, /* LATIN CAPITAL LETTER I WITH CIRCU.. */\r
- /* 123*/ 0x00ef, 1, 0x00cf, /* LATIN CAPITAL LETTER I WITH DIAER.. */\r
- /* 126*/ 0x00f0, 1, 0x00d0, /* LATIN CAPITAL LETTER ETH */\r
- /* 129*/ 0x00f1, 1, 0x00d1, /* LATIN CAPITAL LETTER N WITH TILDE */\r
- /* 132*/ 0x00f2, 1, 0x00d2, /* LATIN CAPITAL LETTER O WITH GRAVE */\r
- /* 135*/ 0x00f3, 1, 0x00d3, /* LATIN CAPITAL LETTER O WITH ACUTE */\r
- /* 138*/ 0x00f4, 1, 0x00d4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /* 141*/ 0x00f5, 1, 0x00d5, /* LATIN CAPITAL LETTER O WITH TILDE */\r
- /* 144*/ 0x00f6, 1, 0x00d6, /* LATIN CAPITAL LETTER O WITH DIAER.. */\r
- /* 147*/ 0x00f8, 1, 0x00d8, /* LATIN CAPITAL LETTER O WITH STROKE */\r
- /* 150*/ 0x00f9, 1, 0x00d9, /* LATIN CAPITAL LETTER U WITH GRAVE */\r
- /* 153*/ 0x00fa, 1, 0x00da, /* LATIN CAPITAL LETTER U WITH ACUTE */\r
- /* 156*/ 0x00fb, 1, 0x00db, /* LATIN CAPITAL LETTER U WITH CIRCU.. */\r
- /* 159*/ 0x00fc, 1, 0x00dc, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /* 162*/ 0x00fd, 1, 0x00dd, /* LATIN CAPITAL LETTER Y WITH ACUTE */\r
- /* 165*/ 0x00fe, 1, 0x00de, /* LATIN CAPITAL LETTER THORN */\r
- /* 168*/ 0x00ff, 1, 0x0178, /* LATIN CAPITAL LETTER Y WITH DIAER.. */\r
- /* 171*/ 0x0101, 1, 0x0100, /* LATIN CAPITAL LETTER A WITH MACRON */\r
- /* 174*/ 0x0103, 1, 0x0102, /* LATIN CAPITAL LETTER A WITH BREVE */\r
- /* 177*/ 0x0105, 1, 0x0104, /* LATIN CAPITAL LETTER A WITH OGONEK */\r
- /* 180*/ 0x0107, 1, 0x0106, /* LATIN CAPITAL LETTER C WITH ACUTE */\r
- /* 183*/ 0x0109, 1, 0x0108, /* LATIN CAPITAL LETTER C WITH CIRCU.. */\r
- /* 186*/ 0x010b, 1, 0x010a, /* LATIN CAPITAL LETTER C WITH DOT A.. */\r
- /* 189*/ 0x010d, 1, 0x010c, /* LATIN CAPITAL LETTER C WITH CARON */\r
- /* 192*/ 0x010f, 1, 0x010e, /* LATIN CAPITAL LETTER D WITH CARON */\r
- /* 195*/ 0x0111, 1, 0x0110, /* LATIN CAPITAL LETTER D WITH STROKE */\r
- /* 198*/ 0x0113, 1, 0x0112, /* LATIN CAPITAL LETTER E WITH MACRON */\r
- /* 201*/ 0x0115, 1, 0x0114, /* LATIN CAPITAL LETTER E WITH BREVE */\r
- /* 204*/ 0x0117, 1, 0x0116, /* LATIN CAPITAL LETTER E WITH DOT A.. */\r
- /* 207*/ 0x0119, 1, 0x0118, /* LATIN CAPITAL LETTER E WITH OGONEK */\r
- /* 210*/ 0x011b, 1, 0x011a, /* LATIN CAPITAL LETTER E WITH CARON */\r
- /* 213*/ 0x011d, 1, 0x011c, /* LATIN CAPITAL LETTER G WITH CIRCU.. */\r
- /* 216*/ 0x011f, 1, 0x011e, /* LATIN CAPITAL LETTER G WITH BREVE */\r
- /* 219*/ 0x0121, 1, 0x0120, /* LATIN CAPITAL LETTER G WITH DOT A.. */\r
- /* 222*/ 0x0123, 1, 0x0122, /* LATIN CAPITAL LETTER G WITH CEDIL.. */\r
- /* 225*/ 0x0125, 1, 0x0124, /* LATIN CAPITAL LETTER H WITH CIRCU.. */\r
- /* 228*/ 0x0127, 1, 0x0126, /* LATIN CAPITAL LETTER H WITH STROKE */\r
- /* 231*/ 0x0129, 1, 0x0128, /* LATIN CAPITAL LETTER I WITH TILDE */\r
- /* 234*/ 0x012b, 1, 0x012a, /* LATIN CAPITAL LETTER I WITH MACRON */\r
- /* 237*/ 0x012d, 1, 0x012c, /* LATIN CAPITAL LETTER I WITH BREVE */\r
- /* 240*/ 0x012f, 1, 0x012e, /* LATIN CAPITAL LETTER I WITH OGONEK */\r
- /* 243*/ 0x0133, 1, 0x0132, /* LATIN CAPITAL LIGATURE IJ */\r
- /* 246*/ 0x0135, 1, 0x0134, /* LATIN CAPITAL LETTER J WITH CIRCU.. */\r
- /* 249*/ 0x0137, 1, 0x0136, /* LATIN CAPITAL LETTER K WITH CEDIL.. */\r
- /* 252*/ 0x013a, 1, 0x0139, /* LATIN CAPITAL LETTER L WITH ACUTE */\r
- /* 255*/ 0x013c, 1, 0x013b, /* LATIN CAPITAL LETTER L WITH CEDIL.. */\r
- /* 258*/ 0x013e, 1, 0x013d, /* LATIN CAPITAL LETTER L WITH CARON */\r
- /* 261*/ 0x0140, 1, 0x013f, /* LATIN CAPITAL LETTER L WITH MIDDL.. */\r
- /* 264*/ 0x0142, 1, 0x0141, /* LATIN CAPITAL LETTER L WITH STROKE */\r
- /* 267*/ 0x0144, 1, 0x0143, /* LATIN CAPITAL LETTER N WITH ACUTE */\r
- /* 270*/ 0x0146, 1, 0x0145, /* LATIN CAPITAL LETTER N WITH CEDIL.. */\r
- /* 273*/ 0x0148, 1, 0x0147, /* LATIN CAPITAL LETTER N WITH CARON */\r
- /* 276*/ 0x014b, 1, 0x014a, /* LATIN CAPITAL LETTER ENG */\r
- /* 279*/ 0x014d, 1, 0x014c, /* LATIN CAPITAL LETTER O WITH MACRON */\r
- /* 282*/ 0x014f, 1, 0x014e, /* LATIN CAPITAL LETTER O WITH BREVE */\r
- /* 285*/ 0x0151, 1, 0x0150, /* LATIN CAPITAL LETTER O WITH DOUBL.. */\r
- /* 288*/ 0x0153, 1, 0x0152, /* LATIN CAPITAL LIGATURE OE */\r
- /* 291*/ 0x0155, 1, 0x0154, /* LATIN CAPITAL LETTER R WITH ACUTE */\r
- /* 294*/ 0x0157, 1, 0x0156, /* LATIN CAPITAL LETTER R WITH CEDIL.. */\r
- /* 297*/ 0x0159, 1, 0x0158, /* LATIN CAPITAL LETTER R WITH CARON */\r
- /* 300*/ 0x015b, 1, 0x015a, /* LATIN CAPITAL LETTER S WITH ACUTE */\r
- /* 303*/ 0x015d, 1, 0x015c, /* LATIN CAPITAL LETTER S WITH CIRCU.. */\r
- /* 306*/ 0x015f, 1, 0x015e, /* LATIN CAPITAL LETTER S WITH CEDIL.. */\r
- /* 309*/ 0x0161, 1, 0x0160, /* LATIN CAPITAL LETTER S WITH CARON */\r
- /* 312*/ 0x0163, 1, 0x0162, /* LATIN CAPITAL LETTER T WITH CEDIL.. */\r
- /* 315*/ 0x0165, 1, 0x0164, /* LATIN CAPITAL LETTER T WITH CARON */\r
- /* 318*/ 0x0167, 1, 0x0166, /* LATIN CAPITAL LETTER T WITH STROKE */\r
- /* 321*/ 0x0169, 1, 0x0168, /* LATIN CAPITAL LETTER U WITH TILDE */\r
- /* 324*/ 0x016b, 1, 0x016a, /* LATIN CAPITAL LETTER U WITH MACRON */\r
- /* 327*/ 0x016d, 1, 0x016c, /* LATIN CAPITAL LETTER U WITH BREVE */\r
- /* 330*/ 0x016f, 1, 0x016e, /* LATIN CAPITAL LETTER U WITH RING .. */\r
- /* 333*/ 0x0171, 1, 0x0170, /* LATIN CAPITAL LETTER U WITH DOUBL.. */\r
- /* 336*/ 0x0173, 1, 0x0172, /* LATIN CAPITAL LETTER U WITH OGONEK */\r
- /* 339*/ 0x0175, 1, 0x0174, /* LATIN CAPITAL LETTER W WITH CIRCU.. */\r
- /* 342*/ 0x0177, 1, 0x0176, /* LATIN CAPITAL LETTER Y WITH CIRCU.. */\r
- /* 345*/ 0x017a, 1, 0x0179, /* LATIN CAPITAL LETTER Z WITH ACUTE */\r
- /* 348*/ 0x017c, 1, 0x017b, /* LATIN CAPITAL LETTER Z WITH DOT A.. */\r
- /* 351*/ 0x017e, 1, 0x017d, /* LATIN CAPITAL LETTER Z WITH CARON */\r
- /* 354*/ 0x0180, 1, 0x0243, /* LATIN CAPITAL LETTER B WITH STROKE */\r
- /* 357*/ 0x0183, 1, 0x0182, /* LATIN CAPITAL LETTER B WITH TOPBAR */\r
- /* 360*/ 0x0185, 1, 0x0184, /* LATIN CAPITAL LETTER TONE SIX */\r
- /* 363*/ 0x0188, 1, 0x0187, /* LATIN CAPITAL LETTER C WITH HOOK */\r
- /* 366*/ 0x018c, 1, 0x018b, /* LATIN CAPITAL LETTER D WITH TOPBAR */\r
- /* 369*/ 0x0192, 1, 0x0191, /* LATIN CAPITAL LETTER F WITH HOOK */\r
- /* 372*/ 0x0195, 1, 0x01f6, /* LATIN CAPITAL LETTER HWAIR */\r
- /* 375*/ 0x0199, 1, 0x0198, /* LATIN CAPITAL LETTER K WITH HOOK */\r
- /* 378*/ 0x019a, 1, 0x023d, /* LATIN CAPITAL LETTER L WITH BAR */\r
- /* 381*/ 0x019e, 1, 0x0220, /* LATIN CAPITAL LETTER N WITH LONG .. */\r
- /* 384*/ 0x01a1, 1, 0x01a0, /* LATIN CAPITAL LETTER O WITH HORN */\r
- /* 387*/ 0x01a3, 1, 0x01a2, /* LATIN CAPITAL LETTER OI */\r
- /* 390*/ 0x01a5, 1, 0x01a4, /* LATIN CAPITAL LETTER P WITH HOOK */\r
- /* 393*/ 0x01a8, 1, 0x01a7, /* LATIN CAPITAL LETTER TONE TWO */\r
- /* 396*/ 0x01ad, 1, 0x01ac, /* LATIN CAPITAL LETTER T WITH HOOK */\r
- /* 399*/ 0x01b0, 1, 0x01af, /* LATIN CAPITAL LETTER U WITH HORN */\r
- /* 402*/ 0x01b4, 1, 0x01b3, /* LATIN CAPITAL LETTER Y WITH HOOK */\r
- /* 405*/ 0x01b6, 1, 0x01b5, /* LATIN CAPITAL LETTER Z WITH STROKE */\r
- /* 408*/ 0x01b9, 1, 0x01b8, /* LATIN CAPITAL LETTER EZH REVERSED */\r
- /* 411*/ 0x01bd, 1, 0x01bc, /* LATIN CAPITAL LETTER TONE FIVE */\r
- /* 414*/ 0x01bf, 1, 0x01f7, /* LATIN CAPITAL LETTER WYNN */\r
- /* 417*/ 0x01c6, 2, 0x01c4, 0x01c5, /* LATIN CAPITAL LETTER DZ WITH CARON */\r
- /* 421*/ 0x01c9, 2, 0x01c7, 0x01c8, /* LATIN CAPITAL LETTER LJ */\r
- /* 425*/ 0x01cc, 2, 0x01ca, 0x01cb, /* LATIN CAPITAL LETTER NJ */\r
- /* 429*/ 0x01ce, 1, 0x01cd, /* LATIN CAPITAL LETTER A WITH CARON */\r
- /* 432*/ 0x01d0, 1, 0x01cf, /* LATIN CAPITAL LETTER I WITH CARON */\r
- /* 435*/ 0x01d2, 1, 0x01d1, /* LATIN CAPITAL LETTER O WITH CARON */\r
- /* 438*/ 0x01d4, 1, 0x01d3, /* LATIN CAPITAL LETTER U WITH CARON */\r
- /* 441*/ 0x01d6, 1, 0x01d5, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /* 444*/ 0x01d8, 1, 0x01d7, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /* 447*/ 0x01da, 1, 0x01d9, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /* 450*/ 0x01dc, 1, 0x01db, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /* 453*/ 0x01dd, 1, 0x018e, /* LATIN CAPITAL LETTER REVERSED E */\r
- /* 456*/ 0x01df, 1, 0x01de, /* LATIN CAPITAL LETTER A WITH DIAER.. */\r
- /* 459*/ 0x01e1, 1, 0x01e0, /* LATIN CAPITAL LETTER A WITH DOT A.. */\r
- /* 462*/ 0x01e3, 1, 0x01e2, /* LATIN CAPITAL LETTER AE WITH MACR.. */\r
- /* 465*/ 0x01e5, 1, 0x01e4, /* LATIN CAPITAL LETTER G WITH STROKE */\r
- /* 468*/ 0x01e7, 1, 0x01e6, /* LATIN CAPITAL LETTER G WITH CARON */\r
- /* 471*/ 0x01e9, 1, 0x01e8, /* LATIN CAPITAL LETTER K WITH CARON */\r
- /* 474*/ 0x01eb, 1, 0x01ea, /* LATIN CAPITAL LETTER O WITH OGONEK */\r
- /* 477*/ 0x01ed, 1, 0x01ec, /* LATIN CAPITAL LETTER O WITH OGONE.. */\r
- /* 480*/ 0x01ef, 1, 0x01ee, /* LATIN CAPITAL LETTER EZH WITH CAR.. */\r
- /* 483*/ 0x01f3, 2, 0x01f1, 0x01f2, /* LATIN CAPITAL LETTER DZ */\r
- /* 487*/ 0x01f5, 1, 0x01f4, /* LATIN CAPITAL LETTER G WITH ACUTE */\r
- /* 490*/ 0x01f9, 1, 0x01f8, /* LATIN CAPITAL LETTER N WITH GRAVE */\r
- /* 493*/ 0x01fb, 1, 0x01fa, /* LATIN CAPITAL LETTER A WITH RING .. */\r
- /* 496*/ 0x01fd, 1, 0x01fc, /* LATIN CAPITAL LETTER AE WITH ACUTE */\r
- /* 499*/ 0x01ff, 1, 0x01fe, /* LATIN CAPITAL LETTER O WITH STROK.. */\r
- /* 502*/ 0x0201, 1, 0x0200, /* LATIN CAPITAL LETTER A WITH DOUBL.. */\r
- /* 505*/ 0x0203, 1, 0x0202, /* LATIN CAPITAL LETTER A WITH INVER.. */\r
- /* 508*/ 0x0205, 1, 0x0204, /* LATIN CAPITAL LETTER E WITH DOUBL.. */\r
- /* 511*/ 0x0207, 1, 0x0206, /* LATIN CAPITAL LETTER E WITH INVER.. */\r
- /* 514*/ 0x0209, 1, 0x0208, /* LATIN CAPITAL LETTER I WITH DOUBL.. */\r
- /* 517*/ 0x020b, 1, 0x020a, /* LATIN CAPITAL LETTER I WITH INVER.. */\r
- /* 520*/ 0x020d, 1, 0x020c, /* LATIN CAPITAL LETTER O WITH DOUBL.. */\r
- /* 523*/ 0x020f, 1, 0x020e, /* LATIN CAPITAL LETTER O WITH INVER.. */\r
- /* 526*/ 0x0211, 1, 0x0210, /* LATIN CAPITAL LETTER R WITH DOUBL.. */\r
- /* 529*/ 0x0213, 1, 0x0212, /* LATIN CAPITAL LETTER R WITH INVER.. */\r
- /* 532*/ 0x0215, 1, 0x0214, /* LATIN CAPITAL LETTER U WITH DOUBL.. */\r
- /* 535*/ 0x0217, 1, 0x0216, /* LATIN CAPITAL LETTER U WITH INVER.. */\r
- /* 538*/ 0x0219, 1, 0x0218, /* LATIN CAPITAL LETTER S WITH COMMA.. */\r
- /* 541*/ 0x021b, 1, 0x021a, /* LATIN CAPITAL LETTER T WITH COMMA.. */\r
- /* 544*/ 0x021d, 1, 0x021c, /* LATIN CAPITAL LETTER YOGH */\r
- /* 547*/ 0x021f, 1, 0x021e, /* LATIN CAPITAL LETTER H WITH CARON */\r
- /* 550*/ 0x0223, 1, 0x0222, /* LATIN CAPITAL LETTER OU */\r
- /* 553*/ 0x0225, 1, 0x0224, /* LATIN CAPITAL LETTER Z WITH HOOK */\r
- /* 556*/ 0x0227, 1, 0x0226, /* LATIN CAPITAL LETTER A WITH DOT A.. */\r
- /* 559*/ 0x0229, 1, 0x0228, /* LATIN CAPITAL LETTER E WITH CEDIL.. */\r
- /* 562*/ 0x022b, 1, 0x022a, /* LATIN CAPITAL LETTER O WITH DIAER.. */\r
- /* 565*/ 0x022d, 1, 0x022c, /* LATIN CAPITAL LETTER O WITH TILDE.. */\r
- /* 568*/ 0x022f, 1, 0x022e, /* LATIN CAPITAL LETTER O WITH DOT A.. */\r
- /* 571*/ 0x0231, 1, 0x0230, /* LATIN CAPITAL LETTER O WITH DOT A.. */\r
- /* 574*/ 0x0233, 1, 0x0232, /* LATIN CAPITAL LETTER Y WITH MACRON */\r
- /* 577*/ 0x023c, 1, 0x023b, /* LATIN CAPITAL LETTER C WITH STROKE */\r
- /* 580*/ 0x023f, 1, 0x2c7e, /* LATIN CAPITAL LETTER S WITH SWASH.. */\r
- /* 583*/ 0x0240, 1, 0x2c7f, /* LATIN CAPITAL LETTER Z WITH SWASH.. */\r
- /* 586*/ 0x0242, 1, 0x0241, /* LATIN CAPITAL LETTER GLOTTAL STOP */\r
- /* 589*/ 0x0247, 1, 0x0246, /* LATIN CAPITAL LETTER E WITH STROKE */\r
- /* 592*/ 0x0249, 1, 0x0248, /* LATIN CAPITAL LETTER J WITH STROKE */\r
- /* 595*/ 0x024b, 1, 0x024a, /* LATIN CAPITAL LETTER SMALL Q WITH.. */\r
- /* 598*/ 0x024d, 1, 0x024c, /* LATIN CAPITAL LETTER R WITH STROKE */\r
- /* 601*/ 0x024f, 1, 0x024e, /* LATIN CAPITAL LETTER Y WITH STROKE */\r
- /* 604*/ 0x0250, 1, 0x2c6f, /* LATIN CAPITAL LETTER TURNED A */\r
- /* 607*/ 0x0251, 1, 0x2c6d, /* LATIN CAPITAL LETTER ALPHA */\r
- /* 610*/ 0x0252, 1, 0x2c70, /* LATIN CAPITAL LETTER TURNED ALPHA */\r
- /* 613*/ 0x0253, 1, 0x0181, /* LATIN CAPITAL LETTER B WITH HOOK */\r
- /* 616*/ 0x0254, 1, 0x0186, /* LATIN CAPITAL LETTER OPEN O */\r
- /* 619*/ 0x0256, 1, 0x0189, /* LATIN CAPITAL LETTER AFRICAN D */\r
- /* 622*/ 0x0257, 1, 0x018a, /* LATIN CAPITAL LETTER D WITH HOOK */\r
- /* 625*/ 0x0259, 1, 0x018f, /* LATIN CAPITAL LETTER SCHWA */\r
- /* 628*/ 0x025b, 1, 0x0190, /* LATIN CAPITAL LETTER OPEN E */\r
- /* 631*/ 0x025c, 1, 0xa7ab, /* LATIN CAPITAL LETTER REVERSED OPE.. */\r
- /* 634*/ 0x0260, 1, 0x0193, /* LATIN CAPITAL LETTER G WITH HOOK */\r
- /* 637*/ 0x0261, 1, 0xa7ac, /* LATIN CAPITAL LETTER SCRIPT G */\r
- /* 640*/ 0x0263, 1, 0x0194, /* LATIN CAPITAL LETTER GAMMA */\r
- /* 643*/ 0x0265, 1, 0xa78d, /* LATIN CAPITAL LETTER TURNED H */\r
- /* 646*/ 0x0266, 1, 0xa7aa, /* LATIN CAPITAL LETTER H WITH HOOK */\r
- /* 649*/ 0x0268, 1, 0x0197, /* LATIN CAPITAL LETTER I WITH STROKE */\r
- /* 652*/ 0x0269, 1, 0x0196, /* LATIN CAPITAL LETTER IOTA */\r
- /* 655*/ 0x026a, 1, 0xa7ae, /* LATIN CAPITAL LETTER SMALL CAPITA.. */\r
- /* 658*/ 0x026b, 1, 0x2c62, /* LATIN CAPITAL LETTER L WITH MIDDL.. */\r
- /* 661*/ 0x026c, 1, 0xa7ad, /* LATIN CAPITAL LETTER L WITH BELT */\r
- /* 664*/ 0x026f, 1, 0x019c, /* LATIN CAPITAL LETTER TURNED M */\r
- /* 667*/ 0x0271, 1, 0x2c6e, /* LATIN CAPITAL LETTER M WITH HOOK */\r
- /* 670*/ 0x0272, 1, 0x019d, /* LATIN CAPITAL LETTER N WITH LEFT .. */\r
- /* 673*/ 0x0275, 1, 0x019f, /* LATIN CAPITAL LETTER O WITH MIDDL.. */\r
- /* 676*/ 0x027d, 1, 0x2c64, /* LATIN CAPITAL LETTER R WITH TAIL */\r
- /* 679*/ 0x0280, 1, 0x01a6, /* LATIN LETTER YR */\r
- /* 682*/ 0x0282, 1, 0xa7c5, /* LATIN CAPITAL LETTER S WITH HOOK */\r
- /* 685*/ 0x0283, 1, 0x01a9, /* LATIN CAPITAL LETTER ESH */\r
- /* 688*/ 0x0287, 1, 0xa7b1, /* LATIN CAPITAL LETTER TURNED T */\r
- /* 691*/ 0x0288, 1, 0x01ae, /* LATIN CAPITAL LETTER T WITH RETRO.. */\r
- /* 694*/ 0x0289, 1, 0x0244, /* LATIN CAPITAL LETTER U BAR */\r
- /* 697*/ 0x028a, 1, 0x01b1, /* LATIN CAPITAL LETTER UPSILON */\r
- /* 700*/ 0x028b, 1, 0x01b2, /* LATIN CAPITAL LETTER V WITH HOOK */\r
- /* 703*/ 0x028c, 1, 0x0245, /* LATIN CAPITAL LETTER TURNED V */\r
- /* 706*/ 0x0292, 1, 0x01b7, /* LATIN CAPITAL LETTER EZH */\r
- /* 709*/ 0x029d, 1, 0xa7b2, /* LATIN CAPITAL LETTER J WITH CROSS.. */\r
- /* 712*/ 0x029e, 1, 0xa7b0, /* LATIN CAPITAL LETTER TURNED K */\r
- /* 715*/ 0x0371, 1, 0x0370, /* GREEK CAPITAL LETTER HETA */\r
- /* 718*/ 0x0373, 1, 0x0372, /* GREEK CAPITAL LETTER ARCHAIC SAMPI */\r
- /* 721*/ 0x0377, 1, 0x0376, /* GREEK CAPITAL LETTER PAMPHYLIAN D.. */\r
- /* 724*/ 0x037b, 1, 0x03fd, /* GREEK CAPITAL REVERSED LUNATE SIG.. */\r
- /* 727*/ 0x037c, 1, 0x03fe, /* GREEK CAPITAL DOTTED LUNATE SIGMA.. */\r
- /* 730*/ 0x037d, 1, 0x03ff, /* GREEK CAPITAL REVERSED DOTTED LUN.. */\r
- /* 733*/ 0x03ac, 1, 0x0386, /* GREEK CAPITAL LETTER ALPHA WITH T.. */\r
- /* 736*/ 0x03ad, 1, 0x0388, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /* 739*/ 0x03ae, 1, 0x0389, /* GREEK CAPITAL LETTER ETA WITH TON.. */\r
- /* 742*/ 0x03af, 1, 0x038a, /* GREEK CAPITAL LETTER IOTA WITH TO.. */\r
- /* 745*/ 0x03b1, 1, 0x0391, /* GREEK CAPITAL LETTER ALPHA */\r
- /* 748*/ 0x03b2, 2, 0x0392, 0x03d0, /* GREEK CAPITAL LETTER BETA */\r
- /* 752*/ 0x03b3, 1, 0x0393, /* GREEK CAPITAL LETTER GAMMA */\r
- /* 755*/ 0x03b4, 1, 0x0394, /* GREEK CAPITAL LETTER DELTA */\r
- /* 758*/ 0x03b5, 2, 0x0395, 0x03f5, /* GREEK CAPITAL LETTER EPSILON */\r
- /* 762*/ 0x03b6, 1, 0x0396, /* GREEK CAPITAL LETTER ZETA */\r
- /* 765*/ 0x03b7, 1, 0x0397, /* GREEK CAPITAL LETTER ETA */\r
- /* 768*/ 0x03b8, 3, 0x0398, 0x03d1, 0x03f4, /* GREEK CAPITAL LETTER THETA */\r
- /* 773*/ 0x03b9, 3, 0x0345, 0x0399, 0x1fbe, /* COMBINING GREEK YPOGEGRAMMENI */\r
- /* 778*/ 0x03ba, 2, 0x039a, 0x03f0, /* GREEK CAPITAL LETTER KAPPA */\r
- /* 782*/ 0x03bb, 1, 0x039b, /* GREEK CAPITAL LETTER LAMDA */\r
- /* 785*/ 0x03bc, 2, 0x00b5, 0x039c, /* MICRO SIGN */\r
- /* 789*/ 0x03bd, 1, 0x039d, /* GREEK CAPITAL LETTER NU */\r
- /* 792*/ 0x03be, 1, 0x039e, /* GREEK CAPITAL LETTER XI */\r
- /* 795*/ 0x03bf, 1, 0x039f, /* GREEK CAPITAL LETTER OMICRON */\r
- /* 798*/ 0x03c0, 2, 0x03a0, 0x03d6, /* GREEK CAPITAL LETTER PI */\r
- /* 802*/ 0x03c1, 2, 0x03a1, 0x03f1, /* GREEK CAPITAL LETTER RHO */\r
- /* 806*/ 0x03c3, 2, 0x03a3, 0x03c2, /* GREEK CAPITAL LETTER SIGMA */\r
- /* 810*/ 0x03c4, 1, 0x03a4, /* GREEK CAPITAL LETTER TAU */\r
- /* 813*/ 0x03c5, 1, 0x03a5, /* GREEK CAPITAL LETTER UPSILON */\r
- /* 816*/ 0x03c6, 2, 0x03a6, 0x03d5, /* GREEK CAPITAL LETTER PHI */\r
- /* 820*/ 0x03c7, 1, 0x03a7, /* GREEK CAPITAL LETTER CHI */\r
- /* 823*/ 0x03c8, 1, 0x03a8, /* GREEK CAPITAL LETTER PSI */\r
- /* 826*/ 0x03c9, 2, 0x03a9, 0x2126, /* GREEK CAPITAL LETTER OMEGA */\r
- /* 830*/ 0x03ca, 1, 0x03aa, /* GREEK CAPITAL LETTER IOTA WITH DI.. */\r
- /* 833*/ 0x03cb, 1, 0x03ab, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /* 836*/ 0x03cc, 1, 0x038c, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /* 839*/ 0x03cd, 1, 0x038e, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /* 842*/ 0x03ce, 1, 0x038f, /* GREEK CAPITAL LETTER OMEGA WITH T.. */\r
- /* 845*/ 0x03d7, 1, 0x03cf, /* GREEK CAPITAL KAI SYMBOL */\r
- /* 848*/ 0x03d9, 1, 0x03d8, /* GREEK LETTER ARCHAIC KOPPA */\r
- /* 851*/ 0x03db, 1, 0x03da, /* GREEK LETTER STIGMA */\r
- /* 854*/ 0x03dd, 1, 0x03dc, /* GREEK LETTER DIGAMMA */\r
- /* 857*/ 0x03df, 1, 0x03de, /* GREEK LETTER KOPPA */\r
- /* 860*/ 0x03e1, 1, 0x03e0, /* GREEK LETTER SAMPI */\r
- /* 863*/ 0x03e3, 1, 0x03e2, /* COPTIC CAPITAL LETTER SHEI */\r
- /* 866*/ 0x03e5, 1, 0x03e4, /* COPTIC CAPITAL LETTER FEI */\r
- /* 869*/ 0x03e7, 1, 0x03e6, /* COPTIC CAPITAL LETTER KHEI */\r
- /* 872*/ 0x03e9, 1, 0x03e8, /* COPTIC CAPITAL LETTER HORI */\r
- /* 875*/ 0x03eb, 1, 0x03ea, /* COPTIC CAPITAL LETTER GANGIA */\r
- /* 878*/ 0x03ed, 1, 0x03ec, /* COPTIC CAPITAL LETTER SHIMA */\r
- /* 881*/ 0x03ef, 1, 0x03ee, /* COPTIC CAPITAL LETTER DEI */\r
- /* 884*/ 0x03f2, 1, 0x03f9, /* GREEK CAPITAL LUNATE SIGMA SYMBOL */\r
- /* 887*/ 0x03f3, 1, 0x037f, /* GREEK CAPITAL LETTER YOT */\r
- /* 890*/ 0x03f8, 1, 0x03f7, /* GREEK CAPITAL LETTER SHO */\r
- /* 893*/ 0x03fb, 1, 0x03fa, /* GREEK CAPITAL LETTER SAN */\r
- /* 896*/ 0x0430, 1, 0x0410, /* CYRILLIC CAPITAL LETTER A */\r
- /* 899*/ 0x0431, 1, 0x0411, /* CYRILLIC CAPITAL LETTER BE */\r
- /* 902*/ 0x0432, 2, 0x0412, 0x1c80, /* CYRILLIC CAPITAL LETTER VE */\r
- /* 906*/ 0x0433, 1, 0x0413, /* CYRILLIC CAPITAL LETTER GHE */\r
- /* 909*/ 0x0434, 2, 0x0414, 0x1c81, /* CYRILLIC CAPITAL LETTER DE */\r
- /* 913*/ 0x0435, 1, 0x0415, /* CYRILLIC CAPITAL LETTER IE */\r
- /* 916*/ 0x0436, 1, 0x0416, /* CYRILLIC CAPITAL LETTER ZHE */\r
- /* 919*/ 0x0437, 1, 0x0417, /* CYRILLIC CAPITAL LETTER ZE */\r
- /* 922*/ 0x0438, 1, 0x0418, /* CYRILLIC CAPITAL LETTER I */\r
- /* 925*/ 0x0439, 1, 0x0419, /* CYRILLIC CAPITAL LETTER SHORT I */\r
- /* 928*/ 0x043a, 1, 0x041a, /* CYRILLIC CAPITAL LETTER KA */\r
- /* 931*/ 0x043b, 1, 0x041b, /* CYRILLIC CAPITAL LETTER EL */\r
- /* 934*/ 0x043c, 1, 0x041c, /* CYRILLIC CAPITAL LETTER EM */\r
- /* 937*/ 0x043d, 1, 0x041d, /* CYRILLIC CAPITAL LETTER EN */\r
- /* 940*/ 0x043e, 2, 0x041e, 0x1c82, /* CYRILLIC CAPITAL LETTER O */\r
- /* 944*/ 0x043f, 1, 0x041f, /* CYRILLIC CAPITAL LETTER PE */\r
- /* 947*/ 0x0440, 1, 0x0420, /* CYRILLIC CAPITAL LETTER ER */\r
- /* 950*/ 0x0441, 2, 0x0421, 0x1c83, /* CYRILLIC CAPITAL LETTER ES */\r
- /* 954*/ 0x0442, 3, 0x0422, 0x1c84, 0x1c85, /* CYRILLIC CAPITAL LETTER TE */\r
- /* 959*/ 0x0443, 1, 0x0423, /* CYRILLIC CAPITAL LETTER U */\r
- /* 962*/ 0x0444, 1, 0x0424, /* CYRILLIC CAPITAL LETTER EF */\r
- /* 965*/ 0x0445, 1, 0x0425, /* CYRILLIC CAPITAL LETTER HA */\r
- /* 968*/ 0x0446, 1, 0x0426, /* CYRILLIC CAPITAL LETTER TSE */\r
- /* 971*/ 0x0447, 1, 0x0427, /* CYRILLIC CAPITAL LETTER CHE */\r
- /* 974*/ 0x0448, 1, 0x0428, /* CYRILLIC CAPITAL LETTER SHA */\r
- /* 977*/ 0x0449, 1, 0x0429, /* CYRILLIC CAPITAL LETTER SHCHA */\r
- /* 980*/ 0x044a, 2, 0x042a, 0x1c86, /* CYRILLIC CAPITAL LETTER HARD SIGN */\r
- /* 984*/ 0x044b, 1, 0x042b, /* CYRILLIC CAPITAL LETTER YERU */\r
- /* 987*/ 0x044c, 1, 0x042c, /* CYRILLIC CAPITAL LETTER SOFT SIGN */\r
- /* 990*/ 0x044d, 1, 0x042d, /* CYRILLIC CAPITAL LETTER E */\r
- /* 993*/ 0x044e, 1, 0x042e, /* CYRILLIC CAPITAL LETTER YU */\r
- /* 996*/ 0x044f, 1, 0x042f, /* CYRILLIC CAPITAL LETTER YA */\r
- /* 999*/ 0x0450, 1, 0x0400, /* CYRILLIC CAPITAL LETTER IE WITH G.. */\r
- /*1002*/ 0x0451, 1, 0x0401, /* CYRILLIC CAPITAL LETTER IO */\r
- /*1005*/ 0x0452, 1, 0x0402, /* CYRILLIC CAPITAL LETTER DJE */\r
- /*1008*/ 0x0453, 1, 0x0403, /* CYRILLIC CAPITAL LETTER GJE */\r
- /*1011*/ 0x0454, 1, 0x0404, /* CYRILLIC CAPITAL LETTER UKRAINIAN.. */\r
- /*1014*/ 0x0455, 1, 0x0405, /* CYRILLIC CAPITAL LETTER DZE */\r
- /*1017*/ 0x0456, 1, 0x0406, /* CYRILLIC CAPITAL LETTER BYELORUSS.. */\r
- /*1020*/ 0x0457, 1, 0x0407, /* CYRILLIC CAPITAL LETTER YI */\r
- /*1023*/ 0x0458, 1, 0x0408, /* CYRILLIC CAPITAL LETTER JE */\r
- /*1026*/ 0x0459, 1, 0x0409, /* CYRILLIC CAPITAL LETTER LJE */\r
- /*1029*/ 0x045a, 1, 0x040a, /* CYRILLIC CAPITAL LETTER NJE */\r
- /*1032*/ 0x045b, 1, 0x040b, /* CYRILLIC CAPITAL LETTER TSHE */\r
- /*1035*/ 0x045c, 1, 0x040c, /* CYRILLIC CAPITAL LETTER KJE */\r
- /*1038*/ 0x045d, 1, 0x040d, /* CYRILLIC CAPITAL LETTER I WITH GR.. */\r
- /*1041*/ 0x045e, 1, 0x040e, /* CYRILLIC CAPITAL LETTER SHORT U */\r
- /*1044*/ 0x045f, 1, 0x040f, /* CYRILLIC CAPITAL LETTER DZHE */\r
- /*1047*/ 0x0461, 1, 0x0460, /* CYRILLIC CAPITAL LETTER OMEGA */\r
- /*1050*/ 0x0463, 2, 0x0462, 0x1c87, /* CYRILLIC CAPITAL LETTER YAT */\r
- /*1054*/ 0x0465, 1, 0x0464, /* CYRILLIC CAPITAL LETTER IOTIFIED E */\r
- /*1057*/ 0x0467, 1, 0x0466, /* CYRILLIC CAPITAL LETTER LITTLE YUS */\r
- /*1060*/ 0x0469, 1, 0x0468, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */\r
- /*1063*/ 0x046b, 1, 0x046a, /* CYRILLIC CAPITAL LETTER BIG YUS */\r
- /*1066*/ 0x046d, 1, 0x046c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */\r
- /*1069*/ 0x046f, 1, 0x046e, /* CYRILLIC CAPITAL LETTER KSI */\r
- /*1072*/ 0x0471, 1, 0x0470, /* CYRILLIC CAPITAL LETTER PSI */\r
- /*1075*/ 0x0473, 1, 0x0472, /* CYRILLIC CAPITAL LETTER FITA */\r
- /*1078*/ 0x0475, 1, 0x0474, /* CYRILLIC CAPITAL LETTER IZHITSA */\r
- /*1081*/ 0x0477, 1, 0x0476, /* CYRILLIC CAPITAL LETTER IZHITSA W.. */\r
- /*1084*/ 0x0479, 1, 0x0478, /* CYRILLIC CAPITAL LETTER UK */\r
- /*1087*/ 0x047b, 1, 0x047a, /* CYRILLIC CAPITAL LETTER ROUND OME.. */\r
- /*1090*/ 0x047d, 1, 0x047c, /* CYRILLIC CAPITAL LETTER OMEGA WIT.. */\r
- /*1093*/ 0x047f, 1, 0x047e, /* CYRILLIC CAPITAL LETTER OT */\r
- /*1096*/ 0x0481, 1, 0x0480, /* CYRILLIC CAPITAL LETTER KOPPA */\r
- /*1099*/ 0x048b, 1, 0x048a, /* CYRILLIC CAPITAL LETTER SHORT I W.. */\r
- /*1102*/ 0x048d, 1, 0x048c, /* CYRILLIC CAPITAL LETTER SEMISOFT .. */\r
- /*1105*/ 0x048f, 1, 0x048e, /* CYRILLIC CAPITAL LETTER ER WITH T.. */\r
- /*1108*/ 0x0491, 1, 0x0490, /* CYRILLIC CAPITAL LETTER GHE WITH .. */\r
- /*1111*/ 0x0493, 1, 0x0492, /* CYRILLIC CAPITAL LETTER GHE WITH .. */\r
- /*1114*/ 0x0495, 1, 0x0494, /* CYRILLIC CAPITAL LETTER GHE WITH .. */\r
- /*1117*/ 0x0497, 1, 0x0496, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */\r
- /*1120*/ 0x0499, 1, 0x0498, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */\r
- /*1123*/ 0x049b, 1, 0x049a, /* CYRILLIC CAPITAL LETTER KA WITH D.. */\r
- /*1126*/ 0x049d, 1, 0x049c, /* CYRILLIC CAPITAL LETTER KA WITH V.. */\r
- /*1129*/ 0x049f, 1, 0x049e, /* CYRILLIC CAPITAL LETTER KA WITH S.. */\r
- /*1132*/ 0x04a1, 1, 0x04a0, /* CYRILLIC CAPITAL LETTER BASHKIR KA */\r
- /*1135*/ 0x04a3, 1, 0x04a2, /* CYRILLIC CAPITAL LETTER EN WITH D.. */\r
- /*1138*/ 0x04a5, 1, 0x04a4, /* CYRILLIC CAPITAL LIGATURE EN GHE */\r
- /*1141*/ 0x04a7, 1, 0x04a6, /* CYRILLIC CAPITAL LETTER PE WITH M.. */\r
- /*1144*/ 0x04a9, 1, 0x04a8, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */\r
- /*1147*/ 0x04ab, 1, 0x04aa, /* CYRILLIC CAPITAL LETTER ES WITH D.. */\r
- /*1150*/ 0x04ad, 1, 0x04ac, /* CYRILLIC CAPITAL LETTER TE WITH D.. */\r
- /*1153*/ 0x04af, 1, 0x04ae, /* CYRILLIC CAPITAL LETTER STRAIGHT U */\r
- /*1156*/ 0x04b1, 1, 0x04b0, /* CYRILLIC CAPITAL LETTER STRAIGHT .. */\r
- /*1159*/ 0x04b3, 1, 0x04b2, /* CYRILLIC CAPITAL LETTER HA WITH D.. */\r
- /*1162*/ 0x04b5, 1, 0x04b4, /* CYRILLIC CAPITAL LIGATURE TE TSE */\r
- /*1165*/ 0x04b7, 1, 0x04b6, /* CYRILLIC CAPITAL LETTER CHE WITH .. */\r
- /*1168*/ 0x04b9, 1, 0x04b8, /* CYRILLIC CAPITAL LETTER CHE WITH .. */\r
- /*1171*/ 0x04bb, 1, 0x04ba, /* CYRILLIC CAPITAL LETTER SHHA */\r
- /*1174*/ 0x04bd, 1, 0x04bc, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */\r
- /*1177*/ 0x04bf, 1, 0x04be, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */\r
- /*1180*/ 0x04c2, 1, 0x04c1, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */\r
- /*1183*/ 0x04c4, 1, 0x04c3, /* CYRILLIC CAPITAL LETTER KA WITH H.. */\r
- /*1186*/ 0x04c6, 1, 0x04c5, /* CYRILLIC CAPITAL LETTER EL WITH T.. */\r
- /*1189*/ 0x04c8, 1, 0x04c7, /* CYRILLIC CAPITAL LETTER EN WITH H.. */\r
- /*1192*/ 0x04ca, 1, 0x04c9, /* CYRILLIC CAPITAL LETTER EN WITH T.. */\r
- /*1195*/ 0x04cc, 1, 0x04cb, /* CYRILLIC CAPITAL LETTER KHAKASSIA.. */\r
- /*1198*/ 0x04ce, 1, 0x04cd, /* CYRILLIC CAPITAL LETTER EM WITH T.. */\r
- /*1201*/ 0x04cf, 1, 0x04c0, /* CYRILLIC LETTER PALOCHKA */\r
- /*1204*/ 0x04d1, 1, 0x04d0, /* CYRILLIC CAPITAL LETTER A WITH BR.. */\r
- /*1207*/ 0x04d3, 1, 0x04d2, /* CYRILLIC CAPITAL LETTER A WITH DI.. */\r
- /*1210*/ 0x04d5, 1, 0x04d4, /* CYRILLIC CAPITAL LIGATURE A IE */\r
- /*1213*/ 0x04d7, 1, 0x04d6, /* CYRILLIC CAPITAL LETTER IE WITH B.. */\r
- /*1216*/ 0x04d9, 1, 0x04d8, /* CYRILLIC CAPITAL LETTER SCHWA */\r
- /*1219*/ 0x04db, 1, 0x04da, /* CYRILLIC CAPITAL LETTER SCHWA WIT.. */\r
- /*1222*/ 0x04dd, 1, 0x04dc, /* CYRILLIC CAPITAL LETTER ZHE WITH .. */\r
- /*1225*/ 0x04df, 1, 0x04de, /* CYRILLIC CAPITAL LETTER ZE WITH D.. */\r
- /*1228*/ 0x04e1, 1, 0x04e0, /* CYRILLIC CAPITAL LETTER ABKHASIAN.. */\r
- /*1231*/ 0x04e3, 1, 0x04e2, /* CYRILLIC CAPITAL LETTER I WITH MA.. */\r
- /*1234*/ 0x04e5, 1, 0x04e4, /* CYRILLIC CAPITAL LETTER I WITH DI.. */\r
- /*1237*/ 0x04e7, 1, 0x04e6, /* CYRILLIC CAPITAL LETTER O WITH DI.. */\r
- /*1240*/ 0x04e9, 1, 0x04e8, /* CYRILLIC CAPITAL LETTER BARRED O */\r
- /*1243*/ 0x04eb, 1, 0x04ea, /* CYRILLIC CAPITAL LETTER BARRED O .. */\r
- /*1246*/ 0x04ed, 1, 0x04ec, /* CYRILLIC CAPITAL LETTER E WITH DI.. */\r
- /*1249*/ 0x04ef, 1, 0x04ee, /* CYRILLIC CAPITAL LETTER U WITH MA.. */\r
- /*1252*/ 0x04f1, 1, 0x04f0, /* CYRILLIC CAPITAL LETTER U WITH DI.. */\r
- /*1255*/ 0x04f3, 1, 0x04f2, /* CYRILLIC CAPITAL LETTER U WITH DO.. */\r
- /*1258*/ 0x04f5, 1, 0x04f4, /* CYRILLIC CAPITAL LETTER CHE WITH .. */\r
- /*1261*/ 0x04f7, 1, 0x04f6, /* CYRILLIC CAPITAL LETTER GHE WITH .. */\r
- /*1264*/ 0x04f9, 1, 0x04f8, /* CYRILLIC CAPITAL LETTER YERU WITH.. */\r
- /*1267*/ 0x04fb, 1, 0x04fa, /* CYRILLIC CAPITAL LETTER GHE WITH .. */\r
- /*1270*/ 0x04fd, 1, 0x04fc, /* CYRILLIC CAPITAL LETTER HA WITH H.. */\r
- /*1273*/ 0x04ff, 1, 0x04fe, /* CYRILLIC CAPITAL LETTER HA WITH S.. */\r
- /*1276*/ 0x0501, 1, 0x0500, /* CYRILLIC CAPITAL LETTER KOMI DE */\r
- /*1279*/ 0x0503, 1, 0x0502, /* CYRILLIC CAPITAL LETTER KOMI DJE */\r
- /*1282*/ 0x0505, 1, 0x0504, /* CYRILLIC CAPITAL LETTER KOMI ZJE */\r
- /*1285*/ 0x0507, 1, 0x0506, /* CYRILLIC CAPITAL LETTER KOMI DZJE */\r
- /*1288*/ 0x0509, 1, 0x0508, /* CYRILLIC CAPITAL LETTER KOMI LJE */\r
- /*1291*/ 0x050b, 1, 0x050a, /* CYRILLIC CAPITAL LETTER KOMI NJE */\r
- /*1294*/ 0x050d, 1, 0x050c, /* CYRILLIC CAPITAL LETTER KOMI SJE */\r
- /*1297*/ 0x050f, 1, 0x050e, /* CYRILLIC CAPITAL LETTER KOMI TJE */\r
- /*1300*/ 0x0511, 1, 0x0510, /* CYRILLIC CAPITAL LETTER REVERSED .. */\r
- /*1303*/ 0x0513, 1, 0x0512, /* CYRILLIC CAPITAL LETTER EL WITH H.. */\r
- /*1306*/ 0x0515, 1, 0x0514, /* CYRILLIC CAPITAL LETTER LHA */\r
- /*1309*/ 0x0517, 1, 0x0516, /* CYRILLIC CAPITAL LETTER RHA */\r
- /*1312*/ 0x0519, 1, 0x0518, /* CYRILLIC CAPITAL LETTER YAE */\r
- /*1315*/ 0x051b, 1, 0x051a, /* CYRILLIC CAPITAL LETTER QA */\r
- /*1318*/ 0x051d, 1, 0x051c, /* CYRILLIC CAPITAL LETTER WE */\r
- /*1321*/ 0x051f, 1, 0x051e, /* CYRILLIC CAPITAL LETTER ALEUT KA */\r
- /*1324*/ 0x0521, 1, 0x0520, /* CYRILLIC CAPITAL LETTER EL WITH M.. */\r
- /*1327*/ 0x0523, 1, 0x0522, /* CYRILLIC CAPITAL LETTER EN WITH M.. */\r
- /*1330*/ 0x0525, 1, 0x0524, /* CYRILLIC CAPITAL LETTER PE WITH D.. */\r
- /*1333*/ 0x0527, 1, 0x0526, /* CYRILLIC CAPITAL LETTER SHHA WITH.. */\r
- /*1336*/ 0x0529, 1, 0x0528, /* CYRILLIC CAPITAL LETTER EN WITH L.. */\r
- /*1339*/ 0x052b, 1, 0x052a, /* CYRILLIC CAPITAL LETTER DZZHE */\r
- /*1342*/ 0x052d, 1, 0x052c, /* CYRILLIC CAPITAL LETTER DCHE */\r
- /*1345*/ 0x052f, 1, 0x052e, /* CYRILLIC CAPITAL LETTER EL WITH D.. */\r
- /*1348*/ 0x0561, 1, 0x0531, /* ARMENIAN CAPITAL LETTER AYB */\r
- /*1351*/ 0x0562, 1, 0x0532, /* ARMENIAN CAPITAL LETTER BEN */\r
- /*1354*/ 0x0563, 1, 0x0533, /* ARMENIAN CAPITAL LETTER GIM */\r
- /*1357*/ 0x0564, 1, 0x0534, /* ARMENIAN CAPITAL LETTER DA */\r
- /*1360*/ 0x0565, 1, 0x0535, /* ARMENIAN CAPITAL LETTER ECH */\r
- /*1363*/ 0x0566, 1, 0x0536, /* ARMENIAN CAPITAL LETTER ZA */\r
- /*1366*/ 0x0567, 1, 0x0537, /* ARMENIAN CAPITAL LETTER EH */\r
- /*1369*/ 0x0568, 1, 0x0538, /* ARMENIAN CAPITAL LETTER ET */\r
- /*1372*/ 0x0569, 1, 0x0539, /* ARMENIAN CAPITAL LETTER TO */\r
- /*1375*/ 0x056a, 1, 0x053a, /* ARMENIAN CAPITAL LETTER ZHE */\r
- /*1378*/ 0x056b, 1, 0x053b, /* ARMENIAN CAPITAL LETTER INI */\r
- /*1381*/ 0x056c, 1, 0x053c, /* ARMENIAN CAPITAL LETTER LIWN */\r
- /*1384*/ 0x056d, 1, 0x053d, /* ARMENIAN CAPITAL LETTER XEH */\r
- /*1387*/ 0x056e, 1, 0x053e, /* ARMENIAN CAPITAL LETTER CA */\r
- /*1390*/ 0x056f, 1, 0x053f, /* ARMENIAN CAPITAL LETTER KEN */\r
- /*1393*/ 0x0570, 1, 0x0540, /* ARMENIAN CAPITAL LETTER HO */\r
- /*1396*/ 0x0571, 1, 0x0541, /* ARMENIAN CAPITAL LETTER JA */\r
- /*1399*/ 0x0572, 1, 0x0542, /* ARMENIAN CAPITAL LETTER GHAD */\r
- /*1402*/ 0x0573, 1, 0x0543, /* ARMENIAN CAPITAL LETTER CHEH */\r
- /*1405*/ 0x0574, 1, 0x0544, /* ARMENIAN CAPITAL LETTER MEN */\r
- /*1408*/ 0x0575, 1, 0x0545, /* ARMENIAN CAPITAL LETTER YI */\r
- /*1411*/ 0x0576, 1, 0x0546, /* ARMENIAN CAPITAL LETTER NOW */\r
- /*1414*/ 0x0577, 1, 0x0547, /* ARMENIAN CAPITAL LETTER SHA */\r
- /*1417*/ 0x0578, 1, 0x0548, /* ARMENIAN CAPITAL LETTER VO */\r
- /*1420*/ 0x0579, 1, 0x0549, /* ARMENIAN CAPITAL LETTER CHA */\r
- /*1423*/ 0x057a, 1, 0x054a, /* ARMENIAN CAPITAL LETTER PEH */\r
- /*1426*/ 0x057b, 1, 0x054b, /* ARMENIAN CAPITAL LETTER JHEH */\r
- /*1429*/ 0x057c, 1, 0x054c, /* ARMENIAN CAPITAL LETTER RA */\r
- /*1432*/ 0x057d, 1, 0x054d, /* ARMENIAN CAPITAL LETTER SEH */\r
- /*1435*/ 0x057e, 1, 0x054e, /* ARMENIAN CAPITAL LETTER VEW */\r
- /*1438*/ 0x057f, 1, 0x054f, /* ARMENIAN CAPITAL LETTER TIWN */\r
- /*1441*/ 0x0580, 1, 0x0550, /* ARMENIAN CAPITAL LETTER REH */\r
- /*1444*/ 0x0581, 1, 0x0551, /* ARMENIAN CAPITAL LETTER CO */\r
- /*1447*/ 0x0582, 1, 0x0552, /* ARMENIAN CAPITAL LETTER YIWN */\r
- /*1450*/ 0x0583, 1, 0x0553, /* ARMENIAN CAPITAL LETTER PIWR */\r
- /*1453*/ 0x0584, 1, 0x0554, /* ARMENIAN CAPITAL LETTER KEH */\r
- /*1456*/ 0x0585, 1, 0x0555, /* ARMENIAN CAPITAL LETTER OH */\r
- /*1459*/ 0x0586, 1, 0x0556, /* ARMENIAN CAPITAL LETTER FEH */\r
- /*1462*/ 0x10d0, 1, 0x1c90, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1465*/ 0x10d1, 1, 0x1c91, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1468*/ 0x10d2, 1, 0x1c92, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1471*/ 0x10d3, 1, 0x1c93, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1474*/ 0x10d4, 1, 0x1c94, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1477*/ 0x10d5, 1, 0x1c95, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1480*/ 0x10d6, 1, 0x1c96, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1483*/ 0x10d7, 1, 0x1c97, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1486*/ 0x10d8, 1, 0x1c98, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1489*/ 0x10d9, 1, 0x1c99, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1492*/ 0x10da, 1, 0x1c9a, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1495*/ 0x10db, 1, 0x1c9b, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1498*/ 0x10dc, 1, 0x1c9c, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1501*/ 0x10dd, 1, 0x1c9d, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1504*/ 0x10de, 1, 0x1c9e, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1507*/ 0x10df, 1, 0x1c9f, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1510*/ 0x10e0, 1, 0x1ca0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1513*/ 0x10e1, 1, 0x1ca1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1516*/ 0x10e2, 1, 0x1ca2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1519*/ 0x10e3, 1, 0x1ca3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1522*/ 0x10e4, 1, 0x1ca4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1525*/ 0x10e5, 1, 0x1ca5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1528*/ 0x10e6, 1, 0x1ca6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1531*/ 0x10e7, 1, 0x1ca7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1534*/ 0x10e8, 1, 0x1ca8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1537*/ 0x10e9, 1, 0x1ca9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1540*/ 0x10ea, 1, 0x1caa, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1543*/ 0x10eb, 1, 0x1cab, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1546*/ 0x10ec, 1, 0x1cac, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1549*/ 0x10ed, 1, 0x1cad, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1552*/ 0x10ee, 1, 0x1cae, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1555*/ 0x10ef, 1, 0x1caf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1558*/ 0x10f0, 1, 0x1cb0, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1561*/ 0x10f1, 1, 0x1cb1, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1564*/ 0x10f2, 1, 0x1cb2, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1567*/ 0x10f3, 1, 0x1cb3, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1570*/ 0x10f4, 1, 0x1cb4, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1573*/ 0x10f5, 1, 0x1cb5, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1576*/ 0x10f6, 1, 0x1cb6, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1579*/ 0x10f7, 1, 0x1cb7, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1582*/ 0x10f8, 1, 0x1cb8, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1585*/ 0x10f9, 1, 0x1cb9, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1588*/ 0x10fa, 1, 0x1cba, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1591*/ 0x10fd, 1, 0x1cbd, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1594*/ 0x10fe, 1, 0x1cbe, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1597*/ 0x10ff, 1, 0x1cbf, /* GEORGIAN MTAVRULI CAPITAL LETTER .. */\r
- /*1600*/ 0x13a0, 1, 0xab70, /* CHEROKEE SMALL LETTER A */\r
- /*1603*/ 0x13a1, 1, 0xab71, /* CHEROKEE SMALL LETTER E */\r
- /*1606*/ 0x13a2, 1, 0xab72, /* CHEROKEE SMALL LETTER I */\r
- /*1609*/ 0x13a3, 1, 0xab73, /* CHEROKEE SMALL LETTER O */\r
- /*1612*/ 0x13a4, 1, 0xab74, /* CHEROKEE SMALL LETTER U */\r
- /*1615*/ 0x13a5, 1, 0xab75, /* CHEROKEE SMALL LETTER V */\r
- /*1618*/ 0x13a6, 1, 0xab76, /* CHEROKEE SMALL LETTER GA */\r
- /*1621*/ 0x13a7, 1, 0xab77, /* CHEROKEE SMALL LETTER KA */\r
- /*1624*/ 0x13a8, 1, 0xab78, /* CHEROKEE SMALL LETTER GE */\r
- /*1627*/ 0x13a9, 1, 0xab79, /* CHEROKEE SMALL LETTER GI */\r
- /*1630*/ 0x13aa, 1, 0xab7a, /* CHEROKEE SMALL LETTER GO */\r
- /*1633*/ 0x13ab, 1, 0xab7b, /* CHEROKEE SMALL LETTER GU */\r
- /*1636*/ 0x13ac, 1, 0xab7c, /* CHEROKEE SMALL LETTER GV */\r
- /*1639*/ 0x13ad, 1, 0xab7d, /* CHEROKEE SMALL LETTER HA */\r
- /*1642*/ 0x13ae, 1, 0xab7e, /* CHEROKEE SMALL LETTER HE */\r
- /*1645*/ 0x13af, 1, 0xab7f, /* CHEROKEE SMALL LETTER HI */\r
- /*1648*/ 0x13b0, 1, 0xab80, /* CHEROKEE SMALL LETTER HO */\r
- /*1651*/ 0x13b1, 1, 0xab81, /* CHEROKEE SMALL LETTER HU */\r
- /*1654*/ 0x13b2, 1, 0xab82, /* CHEROKEE SMALL LETTER HV */\r
- /*1657*/ 0x13b3, 1, 0xab83, /* CHEROKEE SMALL LETTER LA */\r
- /*1660*/ 0x13b4, 1, 0xab84, /* CHEROKEE SMALL LETTER LE */\r
- /*1663*/ 0x13b5, 1, 0xab85, /* CHEROKEE SMALL LETTER LI */\r
- /*1666*/ 0x13b6, 1, 0xab86, /* CHEROKEE SMALL LETTER LO */\r
- /*1669*/ 0x13b7, 1, 0xab87, /* CHEROKEE SMALL LETTER LU */\r
- /*1672*/ 0x13b8, 1, 0xab88, /* CHEROKEE SMALL LETTER LV */\r
- /*1675*/ 0x13b9, 1, 0xab89, /* CHEROKEE SMALL LETTER MA */\r
- /*1678*/ 0x13ba, 1, 0xab8a, /* CHEROKEE SMALL LETTER ME */\r
- /*1681*/ 0x13bb, 1, 0xab8b, /* CHEROKEE SMALL LETTER MI */\r
- /*1684*/ 0x13bc, 1, 0xab8c, /* CHEROKEE SMALL LETTER MO */\r
- /*1687*/ 0x13bd, 1, 0xab8d, /* CHEROKEE SMALL LETTER MU */\r
- /*1690*/ 0x13be, 1, 0xab8e, /* CHEROKEE SMALL LETTER NA */\r
- /*1693*/ 0x13bf, 1, 0xab8f, /* CHEROKEE SMALL LETTER HNA */\r
- /*1696*/ 0x13c0, 1, 0xab90, /* CHEROKEE SMALL LETTER NAH */\r
- /*1699*/ 0x13c1, 1, 0xab91, /* CHEROKEE SMALL LETTER NE */\r
- /*1702*/ 0x13c2, 1, 0xab92, /* CHEROKEE SMALL LETTER NI */\r
- /*1705*/ 0x13c3, 1, 0xab93, /* CHEROKEE SMALL LETTER NO */\r
- /*1708*/ 0x13c4, 1, 0xab94, /* CHEROKEE SMALL LETTER NU */\r
- /*1711*/ 0x13c5, 1, 0xab95, /* CHEROKEE SMALL LETTER NV */\r
- /*1714*/ 0x13c6, 1, 0xab96, /* CHEROKEE SMALL LETTER QUA */\r
- /*1717*/ 0x13c7, 1, 0xab97, /* CHEROKEE SMALL LETTER QUE */\r
- /*1720*/ 0x13c8, 1, 0xab98, /* CHEROKEE SMALL LETTER QUI */\r
- /*1723*/ 0x13c9, 1, 0xab99, /* CHEROKEE SMALL LETTER QUO */\r
- /*1726*/ 0x13ca, 1, 0xab9a, /* CHEROKEE SMALL LETTER QUU */\r
- /*1729*/ 0x13cb, 1, 0xab9b, /* CHEROKEE SMALL LETTER QUV */\r
- /*1732*/ 0x13cc, 1, 0xab9c, /* CHEROKEE SMALL LETTER SA */\r
- /*1735*/ 0x13cd, 1, 0xab9d, /* CHEROKEE SMALL LETTER S */\r
- /*1738*/ 0x13ce, 1, 0xab9e, /* CHEROKEE SMALL LETTER SE */\r
- /*1741*/ 0x13cf, 1, 0xab9f, /* CHEROKEE SMALL LETTER SI */\r
- /*1744*/ 0x13d0, 1, 0xaba0, /* CHEROKEE SMALL LETTER SO */\r
- /*1747*/ 0x13d1, 1, 0xaba1, /* CHEROKEE SMALL LETTER SU */\r
- /*1750*/ 0x13d2, 1, 0xaba2, /* CHEROKEE SMALL LETTER SV */\r
- /*1753*/ 0x13d3, 1, 0xaba3, /* CHEROKEE SMALL LETTER DA */\r
- /*1756*/ 0x13d4, 1, 0xaba4, /* CHEROKEE SMALL LETTER TA */\r
- /*1759*/ 0x13d5, 1, 0xaba5, /* CHEROKEE SMALL LETTER DE */\r
- /*1762*/ 0x13d6, 1, 0xaba6, /* CHEROKEE SMALL LETTER TE */\r
- /*1765*/ 0x13d7, 1, 0xaba7, /* CHEROKEE SMALL LETTER DI */\r
- /*1768*/ 0x13d8, 1, 0xaba8, /* CHEROKEE SMALL LETTER TI */\r
- /*1771*/ 0x13d9, 1, 0xaba9, /* CHEROKEE SMALL LETTER DO */\r
- /*1774*/ 0x13da, 1, 0xabaa, /* CHEROKEE SMALL LETTER DU */\r
- /*1777*/ 0x13db, 1, 0xabab, /* CHEROKEE SMALL LETTER DV */\r
- /*1780*/ 0x13dc, 1, 0xabac, /* CHEROKEE SMALL LETTER DLA */\r
- /*1783*/ 0x13dd, 1, 0xabad, /* CHEROKEE SMALL LETTER TLA */\r
- /*1786*/ 0x13de, 1, 0xabae, /* CHEROKEE SMALL LETTER TLE */\r
- /*1789*/ 0x13df, 1, 0xabaf, /* CHEROKEE SMALL LETTER TLI */\r
- /*1792*/ 0x13e0, 1, 0xabb0, /* CHEROKEE SMALL LETTER TLO */\r
- /*1795*/ 0x13e1, 1, 0xabb1, /* CHEROKEE SMALL LETTER TLU */\r
- /*1798*/ 0x13e2, 1, 0xabb2, /* CHEROKEE SMALL LETTER TLV */\r
- /*1801*/ 0x13e3, 1, 0xabb3, /* CHEROKEE SMALL LETTER TSA */\r
- /*1804*/ 0x13e4, 1, 0xabb4, /* CHEROKEE SMALL LETTER TSE */\r
- /*1807*/ 0x13e5, 1, 0xabb5, /* CHEROKEE SMALL LETTER TSI */\r
- /*1810*/ 0x13e6, 1, 0xabb6, /* CHEROKEE SMALL LETTER TSO */\r
- /*1813*/ 0x13e7, 1, 0xabb7, /* CHEROKEE SMALL LETTER TSU */\r
- /*1816*/ 0x13e8, 1, 0xabb8, /* CHEROKEE SMALL LETTER TSV */\r
- /*1819*/ 0x13e9, 1, 0xabb9, /* CHEROKEE SMALL LETTER WA */\r
- /*1822*/ 0x13ea, 1, 0xabba, /* CHEROKEE SMALL LETTER WE */\r
- /*1825*/ 0x13eb, 1, 0xabbb, /* CHEROKEE SMALL LETTER WI */\r
- /*1828*/ 0x13ec, 1, 0xabbc, /* CHEROKEE SMALL LETTER WO */\r
- /*1831*/ 0x13ed, 1, 0xabbd, /* CHEROKEE SMALL LETTER WU */\r
- /*1834*/ 0x13ee, 1, 0xabbe, /* CHEROKEE SMALL LETTER WV */\r
- /*1837*/ 0x13ef, 1, 0xabbf, /* CHEROKEE SMALL LETTER YA */\r
- /*1840*/ 0x13f0, 1, 0x13f8, /* CHEROKEE SMALL LETTER YE */\r
- /*1843*/ 0x13f1, 1, 0x13f9, /* CHEROKEE SMALL LETTER YI */\r
- /*1846*/ 0x13f2, 1, 0x13fa, /* CHEROKEE SMALL LETTER YO */\r
- /*1849*/ 0x13f3, 1, 0x13fb, /* CHEROKEE SMALL LETTER YU */\r
- /*1852*/ 0x13f4, 1, 0x13fc, /* CHEROKEE SMALL LETTER YV */\r
- /*1855*/ 0x13f5, 1, 0x13fd, /* CHEROKEE SMALL LETTER MV */\r
- /*1858*/ 0x1d79, 1, 0xa77d, /* LATIN CAPITAL LETTER INSULAR G */\r
- /*1861*/ 0x1d7d, 1, 0x2c63, /* LATIN CAPITAL LETTER P WITH STROKE */\r
- /*1864*/ 0x1d8e, 1, 0xa7c6, /* LATIN CAPITAL LETTER Z WITH PALAT.. */\r
- /*1867*/ 0x1e01, 1, 0x1e00, /* LATIN CAPITAL LETTER A WITH RING .. */\r
- /*1870*/ 0x1e03, 1, 0x1e02, /* LATIN CAPITAL LETTER B WITH DOT A.. */\r
- /*1873*/ 0x1e05, 1, 0x1e04, /* LATIN CAPITAL LETTER B WITH DOT B.. */\r
- /*1876*/ 0x1e07, 1, 0x1e06, /* LATIN CAPITAL LETTER B WITH LINE .. */\r
- /*1879*/ 0x1e09, 1, 0x1e08, /* LATIN CAPITAL LETTER C WITH CEDIL.. */\r
- /*1882*/ 0x1e0b, 1, 0x1e0a, /* LATIN CAPITAL LETTER D WITH DOT A.. */\r
- /*1885*/ 0x1e0d, 1, 0x1e0c, /* LATIN CAPITAL LETTER D WITH DOT B.. */\r
- /*1888*/ 0x1e0f, 1, 0x1e0e, /* LATIN CAPITAL LETTER D WITH LINE .. */\r
- /*1891*/ 0x1e11, 1, 0x1e10, /* LATIN CAPITAL LETTER D WITH CEDIL.. */\r
- /*1894*/ 0x1e13, 1, 0x1e12, /* LATIN CAPITAL LETTER D WITH CIRCU.. */\r
- /*1897*/ 0x1e15, 1, 0x1e14, /* LATIN CAPITAL LETTER E WITH MACRO.. */\r
- /*1900*/ 0x1e17, 1, 0x1e16, /* LATIN CAPITAL LETTER E WITH MACRO.. */\r
- /*1903*/ 0x1e19, 1, 0x1e18, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*1906*/ 0x1e1b, 1, 0x1e1a, /* LATIN CAPITAL LETTER E WITH TILDE.. */\r
- /*1909*/ 0x1e1d, 1, 0x1e1c, /* LATIN CAPITAL LETTER E WITH CEDIL.. */\r
- /*1912*/ 0x1e1f, 1, 0x1e1e, /* LATIN CAPITAL LETTER F WITH DOT A.. */\r
- /*1915*/ 0x1e21, 1, 0x1e20, /* LATIN CAPITAL LETTER G WITH MACRON */\r
- /*1918*/ 0x1e23, 1, 0x1e22, /* LATIN CAPITAL LETTER H WITH DOT A.. */\r
- /*1921*/ 0x1e25, 1, 0x1e24, /* LATIN CAPITAL LETTER H WITH DOT B.. */\r
- /*1924*/ 0x1e27, 1, 0x1e26, /* LATIN CAPITAL LETTER H WITH DIAER.. */\r
- /*1927*/ 0x1e29, 1, 0x1e28, /* LATIN CAPITAL LETTER H WITH CEDIL.. */\r
- /*1930*/ 0x1e2b, 1, 0x1e2a, /* LATIN CAPITAL LETTER H WITH BREVE.. */\r
- /*1933*/ 0x1e2d, 1, 0x1e2c, /* LATIN CAPITAL LETTER I WITH TILDE.. */\r
- /*1936*/ 0x1e2f, 1, 0x1e2e, /* LATIN CAPITAL LETTER I WITH DIAER.. */\r
- /*1939*/ 0x1e31, 1, 0x1e30, /* LATIN CAPITAL LETTER K WITH ACUTE */\r
- /*1942*/ 0x1e33, 1, 0x1e32, /* LATIN CAPITAL LETTER K WITH DOT B.. */\r
- /*1945*/ 0x1e35, 1, 0x1e34, /* LATIN CAPITAL LETTER K WITH LINE .. */\r
- /*1948*/ 0x1e37, 1, 0x1e36, /* LATIN CAPITAL LETTER L WITH DOT B.. */\r
- /*1951*/ 0x1e39, 1, 0x1e38, /* LATIN CAPITAL LETTER L WITH DOT B.. */\r
- /*1954*/ 0x1e3b, 1, 0x1e3a, /* LATIN CAPITAL LETTER L WITH LINE .. */\r
- /*1957*/ 0x1e3d, 1, 0x1e3c, /* LATIN CAPITAL LETTER L WITH CIRCU.. */\r
- /*1960*/ 0x1e3f, 1, 0x1e3e, /* LATIN CAPITAL LETTER M WITH ACUTE */\r
- /*1963*/ 0x1e41, 1, 0x1e40, /* LATIN CAPITAL LETTER M WITH DOT A.. */\r
- /*1966*/ 0x1e43, 1, 0x1e42, /* LATIN CAPITAL LETTER M WITH DOT B.. */\r
- /*1969*/ 0x1e45, 1, 0x1e44, /* LATIN CAPITAL LETTER N WITH DOT A.. */\r
- /*1972*/ 0x1e47, 1, 0x1e46, /* LATIN CAPITAL LETTER N WITH DOT B.. */\r
- /*1975*/ 0x1e49, 1, 0x1e48, /* LATIN CAPITAL LETTER N WITH LINE .. */\r
- /*1978*/ 0x1e4b, 1, 0x1e4a, /* LATIN CAPITAL LETTER N WITH CIRCU.. */\r
- /*1981*/ 0x1e4d, 1, 0x1e4c, /* LATIN CAPITAL LETTER O WITH TILDE.. */\r
- /*1984*/ 0x1e4f, 1, 0x1e4e, /* LATIN CAPITAL LETTER O WITH TILDE.. */\r
- /*1987*/ 0x1e51, 1, 0x1e50, /* LATIN CAPITAL LETTER O WITH MACRO.. */\r
- /*1990*/ 0x1e53, 1, 0x1e52, /* LATIN CAPITAL LETTER O WITH MACRO.. */\r
- /*1993*/ 0x1e55, 1, 0x1e54, /* LATIN CAPITAL LETTER P WITH ACUTE */\r
- /*1996*/ 0x1e57, 1, 0x1e56, /* LATIN CAPITAL LETTER P WITH DOT A.. */\r
- /*1999*/ 0x1e59, 1, 0x1e58, /* LATIN CAPITAL LETTER R WITH DOT A.. */\r
- /*2002*/ 0x1e5b, 1, 0x1e5a, /* LATIN CAPITAL LETTER R WITH DOT B.. */\r
- /*2005*/ 0x1e5d, 1, 0x1e5c, /* LATIN CAPITAL LETTER R WITH DOT B.. */\r
- /*2008*/ 0x1e5f, 1, 0x1e5e, /* LATIN CAPITAL LETTER R WITH LINE .. */\r
- /*2011*/ 0x1e61, 2, 0x1e60, 0x1e9b, /* LATIN CAPITAL LETTER S WITH DOT A.. */\r
- /*2015*/ 0x1e63, 1, 0x1e62, /* LATIN CAPITAL LETTER S WITH DOT B.. */\r
- /*2018*/ 0x1e65, 1, 0x1e64, /* LATIN CAPITAL LETTER S WITH ACUTE.. */\r
- /*2021*/ 0x1e67, 1, 0x1e66, /* LATIN CAPITAL LETTER S WITH CARON.. */\r
- /*2024*/ 0x1e69, 1, 0x1e68, /* LATIN CAPITAL LETTER S WITH DOT B.. */\r
- /*2027*/ 0x1e6b, 1, 0x1e6a, /* LATIN CAPITAL LETTER T WITH DOT A.. */\r
- /*2030*/ 0x1e6d, 1, 0x1e6c, /* LATIN CAPITAL LETTER T WITH DOT B.. */\r
- /*2033*/ 0x1e6f, 1, 0x1e6e, /* LATIN CAPITAL LETTER T WITH LINE .. */\r
- /*2036*/ 0x1e71, 1, 0x1e70, /* LATIN CAPITAL LETTER T WITH CIRCU.. */\r
- /*2039*/ 0x1e73, 1, 0x1e72, /* LATIN CAPITAL LETTER U WITH DIAER.. */\r
- /*2042*/ 0x1e75, 1, 0x1e74, /* LATIN CAPITAL LETTER U WITH TILDE.. */\r
- /*2045*/ 0x1e77, 1, 0x1e76, /* LATIN CAPITAL LETTER U WITH CIRCU.. */\r
- /*2048*/ 0x1e79, 1, 0x1e78, /* LATIN CAPITAL LETTER U WITH TILDE.. */\r
- /*2051*/ 0x1e7b, 1, 0x1e7a, /* LATIN CAPITAL LETTER U WITH MACRO.. */\r
- /*2054*/ 0x1e7d, 1, 0x1e7c, /* LATIN CAPITAL LETTER V WITH TILDE */\r
- /*2057*/ 0x1e7f, 1, 0x1e7e, /* LATIN CAPITAL LETTER V WITH DOT B.. */\r
- /*2060*/ 0x1e81, 1, 0x1e80, /* LATIN CAPITAL LETTER W WITH GRAVE */\r
- /*2063*/ 0x1e83, 1, 0x1e82, /* LATIN CAPITAL LETTER W WITH ACUTE */\r
- /*2066*/ 0x1e85, 1, 0x1e84, /* LATIN CAPITAL LETTER W WITH DIAER.. */\r
- /*2069*/ 0x1e87, 1, 0x1e86, /* LATIN CAPITAL LETTER W WITH DOT A.. */\r
- /*2072*/ 0x1e89, 1, 0x1e88, /* LATIN CAPITAL LETTER W WITH DOT B.. */\r
- /*2075*/ 0x1e8b, 1, 0x1e8a, /* LATIN CAPITAL LETTER X WITH DOT A.. */\r
- /*2078*/ 0x1e8d, 1, 0x1e8c, /* LATIN CAPITAL LETTER X WITH DIAER.. */\r
- /*2081*/ 0x1e8f, 1, 0x1e8e, /* LATIN CAPITAL LETTER Y WITH DOT A.. */\r
- /*2084*/ 0x1e91, 1, 0x1e90, /* LATIN CAPITAL LETTER Z WITH CIRCU.. */\r
- /*2087*/ 0x1e93, 1, 0x1e92, /* LATIN CAPITAL LETTER Z WITH DOT B.. */\r
- /*2090*/ 0x1e95, 1, 0x1e94, /* LATIN CAPITAL LETTER Z WITH LINE .. */\r
- /*2093*/ 0x1ea1, 1, 0x1ea0, /* LATIN CAPITAL LETTER A WITH DOT B.. */\r
- /*2096*/ 0x1ea3, 1, 0x1ea2, /* LATIN CAPITAL LETTER A WITH HOOK .. */\r
- /*2099*/ 0x1ea5, 1, 0x1ea4, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /*2102*/ 0x1ea7, 1, 0x1ea6, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /*2105*/ 0x1ea9, 1, 0x1ea8, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /*2108*/ 0x1eab, 1, 0x1eaa, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /*2111*/ 0x1ead, 1, 0x1eac, /* LATIN CAPITAL LETTER A WITH CIRCU.. */\r
- /*2114*/ 0x1eaf, 1, 0x1eae, /* LATIN CAPITAL LETTER A WITH BREVE.. */\r
- /*2117*/ 0x1eb1, 1, 0x1eb0, /* LATIN CAPITAL LETTER A WITH BREVE.. */\r
- /*2120*/ 0x1eb3, 1, 0x1eb2, /* LATIN CAPITAL LETTER A WITH BREVE.. */\r
- /*2123*/ 0x1eb5, 1, 0x1eb4, /* LATIN CAPITAL LETTER A WITH BREVE.. */\r
- /*2126*/ 0x1eb7, 1, 0x1eb6, /* LATIN CAPITAL LETTER A WITH BREVE.. */\r
- /*2129*/ 0x1eb9, 1, 0x1eb8, /* LATIN CAPITAL LETTER E WITH DOT B.. */\r
- /*2132*/ 0x1ebb, 1, 0x1eba, /* LATIN CAPITAL LETTER E WITH HOOK .. */\r
- /*2135*/ 0x1ebd, 1, 0x1ebc, /* LATIN CAPITAL LETTER E WITH TILDE */\r
- /*2138*/ 0x1ebf, 1, 0x1ebe, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*2141*/ 0x1ec1, 1, 0x1ec0, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*2144*/ 0x1ec3, 1, 0x1ec2, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*2147*/ 0x1ec5, 1, 0x1ec4, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*2150*/ 0x1ec7, 1, 0x1ec6, /* LATIN CAPITAL LETTER E WITH CIRCU.. */\r
- /*2153*/ 0x1ec9, 1, 0x1ec8, /* LATIN CAPITAL LETTER I WITH HOOK .. */\r
- /*2156*/ 0x1ecb, 1, 0x1eca, /* LATIN CAPITAL LETTER I WITH DOT B.. */\r
- /*2159*/ 0x1ecd, 1, 0x1ecc, /* LATIN CAPITAL LETTER O WITH DOT B.. */\r
- /*2162*/ 0x1ecf, 1, 0x1ece, /* LATIN CAPITAL LETTER O WITH HOOK .. */\r
- /*2165*/ 0x1ed1, 1, 0x1ed0, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /*2168*/ 0x1ed3, 1, 0x1ed2, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /*2171*/ 0x1ed5, 1, 0x1ed4, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /*2174*/ 0x1ed7, 1, 0x1ed6, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /*2177*/ 0x1ed9, 1, 0x1ed8, /* LATIN CAPITAL LETTER O WITH CIRCU.. */\r
- /*2180*/ 0x1edb, 1, 0x1eda, /* LATIN CAPITAL LETTER O WITH HORN .. */\r
- /*2183*/ 0x1edd, 1, 0x1edc, /* LATIN CAPITAL LETTER O WITH HORN .. */\r
- /*2186*/ 0x1edf, 1, 0x1ede, /* LATIN CAPITAL LETTER O WITH HORN .. */\r
- /*2189*/ 0x1ee1, 1, 0x1ee0, /* LATIN CAPITAL LETTER O WITH HORN .. */\r
- /*2192*/ 0x1ee3, 1, 0x1ee2, /* LATIN CAPITAL LETTER O WITH HORN .. */\r
- /*2195*/ 0x1ee5, 1, 0x1ee4, /* LATIN CAPITAL LETTER U WITH DOT B.. */\r
- /*2198*/ 0x1ee7, 1, 0x1ee6, /* LATIN CAPITAL LETTER U WITH HOOK .. */\r
- /*2201*/ 0x1ee9, 1, 0x1ee8, /* LATIN CAPITAL LETTER U WITH HORN .. */\r
- /*2204*/ 0x1eeb, 1, 0x1eea, /* LATIN CAPITAL LETTER U WITH HORN .. */\r
- /*2207*/ 0x1eed, 1, 0x1eec, /* LATIN CAPITAL LETTER U WITH HORN .. */\r
- /*2210*/ 0x1eef, 1, 0x1eee, /* LATIN CAPITAL LETTER U WITH HORN .. */\r
- /*2213*/ 0x1ef1, 1, 0x1ef0, /* LATIN CAPITAL LETTER U WITH HORN .. */\r
- /*2216*/ 0x1ef3, 1, 0x1ef2, /* LATIN CAPITAL LETTER Y WITH GRAVE */\r
- /*2219*/ 0x1ef5, 1, 0x1ef4, /* LATIN CAPITAL LETTER Y WITH DOT B.. */\r
- /*2222*/ 0x1ef7, 1, 0x1ef6, /* LATIN CAPITAL LETTER Y WITH HOOK .. */\r
- /*2225*/ 0x1ef9, 1, 0x1ef8, /* LATIN CAPITAL LETTER Y WITH TILDE */\r
- /*2228*/ 0x1efb, 1, 0x1efa, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */\r
- /*2231*/ 0x1efd, 1, 0x1efc, /* LATIN CAPITAL LETTER MIDDLE-WELSH.. */\r
- /*2234*/ 0x1eff, 1, 0x1efe, /* LATIN CAPITAL LETTER Y WITH LOOP */\r
- /*2237*/ 0x1f00, 1, 0x1f08, /* GREEK CAPITAL LETTER ALPHA WITH P.. */\r
- /*2240*/ 0x1f01, 1, 0x1f09, /* GREEK CAPITAL LETTER ALPHA WITH D.. */\r
- /*2243*/ 0x1f02, 1, 0x1f0a, /* GREEK CAPITAL LETTER ALPHA WITH P.. */\r
- /*2246*/ 0x1f03, 1, 0x1f0b, /* GREEK CAPITAL LETTER ALPHA WITH D.. */\r
- /*2249*/ 0x1f04, 1, 0x1f0c, /* GREEK CAPITAL LETTER ALPHA WITH P.. */\r
- /*2252*/ 0x1f05, 1, 0x1f0d, /* GREEK CAPITAL LETTER ALPHA WITH D.. */\r
- /*2255*/ 0x1f06, 1, 0x1f0e, /* GREEK CAPITAL LETTER ALPHA WITH P.. */\r
- /*2258*/ 0x1f07, 1, 0x1f0f, /* GREEK CAPITAL LETTER ALPHA WITH D.. */\r
- /*2261*/ 0x1f10, 1, 0x1f18, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2264*/ 0x1f11, 1, 0x1f19, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2267*/ 0x1f12, 1, 0x1f1a, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2270*/ 0x1f13, 1, 0x1f1b, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2273*/ 0x1f14, 1, 0x1f1c, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2276*/ 0x1f15, 1, 0x1f1d, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2279*/ 0x1f20, 1, 0x1f28, /* GREEK CAPITAL LETTER ETA WITH PSI.. */\r
- /*2282*/ 0x1f21, 1, 0x1f29, /* GREEK CAPITAL LETTER ETA WITH DAS.. */\r
- /*2285*/ 0x1f22, 1, 0x1f2a, /* GREEK CAPITAL LETTER ETA WITH PSI.. */\r
- /*2288*/ 0x1f23, 1, 0x1f2b, /* GREEK CAPITAL LETTER ETA WITH DAS.. */\r
- /*2291*/ 0x1f24, 1, 0x1f2c, /* GREEK CAPITAL LETTER ETA WITH PSI.. */\r
- /*2294*/ 0x1f25, 1, 0x1f2d, /* GREEK CAPITAL LETTER ETA WITH DAS.. */\r
- /*2297*/ 0x1f26, 1, 0x1f2e, /* GREEK CAPITAL LETTER ETA WITH PSI.. */\r
- /*2300*/ 0x1f27, 1, 0x1f2f, /* GREEK CAPITAL LETTER ETA WITH DAS.. */\r
- /*2303*/ 0x1f30, 1, 0x1f38, /* GREEK CAPITAL LETTER IOTA WITH PS.. */\r
- /*2306*/ 0x1f31, 1, 0x1f39, /* GREEK CAPITAL LETTER IOTA WITH DA.. */\r
- /*2309*/ 0x1f32, 1, 0x1f3a, /* GREEK CAPITAL LETTER IOTA WITH PS.. */\r
- /*2312*/ 0x1f33, 1, 0x1f3b, /* GREEK CAPITAL LETTER IOTA WITH DA.. */\r
- /*2315*/ 0x1f34, 1, 0x1f3c, /* GREEK CAPITAL LETTER IOTA WITH PS.. */\r
- /*2318*/ 0x1f35, 1, 0x1f3d, /* GREEK CAPITAL LETTER IOTA WITH DA.. */\r
- /*2321*/ 0x1f36, 1, 0x1f3e, /* GREEK CAPITAL LETTER IOTA WITH PS.. */\r
- /*2324*/ 0x1f37, 1, 0x1f3f, /* GREEK CAPITAL LETTER IOTA WITH DA.. */\r
- /*2327*/ 0x1f40, 1, 0x1f48, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2330*/ 0x1f41, 1, 0x1f49, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2333*/ 0x1f42, 1, 0x1f4a, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2336*/ 0x1f43, 1, 0x1f4b, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2339*/ 0x1f44, 1, 0x1f4c, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2342*/ 0x1f45, 1, 0x1f4d, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2345*/ 0x1f51, 1, 0x1f59, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2348*/ 0x1f53, 1, 0x1f5b, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2351*/ 0x1f55, 1, 0x1f5d, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2354*/ 0x1f57, 1, 0x1f5f, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2357*/ 0x1f60, 1, 0x1f68, /* GREEK CAPITAL LETTER OMEGA WITH P.. */\r
- /*2360*/ 0x1f61, 1, 0x1f69, /* GREEK CAPITAL LETTER OMEGA WITH D.. */\r
- /*2363*/ 0x1f62, 1, 0x1f6a, /* GREEK CAPITAL LETTER OMEGA WITH P.. */\r
- /*2366*/ 0x1f63, 1, 0x1f6b, /* GREEK CAPITAL LETTER OMEGA WITH D.. */\r
- /*2369*/ 0x1f64, 1, 0x1f6c, /* GREEK CAPITAL LETTER OMEGA WITH P.. */\r
- /*2372*/ 0x1f65, 1, 0x1f6d, /* GREEK CAPITAL LETTER OMEGA WITH D.. */\r
- /*2375*/ 0x1f66, 1, 0x1f6e, /* GREEK CAPITAL LETTER OMEGA WITH P.. */\r
- /*2378*/ 0x1f67, 1, 0x1f6f, /* GREEK CAPITAL LETTER OMEGA WITH D.. */\r
- /*2381*/ 0x1f70, 1, 0x1fba, /* GREEK CAPITAL LETTER ALPHA WITH V.. */\r
- /*2384*/ 0x1f71, 1, 0x1fbb, /* GREEK CAPITAL LETTER ALPHA WITH O.. */\r
- /*2387*/ 0x1f72, 1, 0x1fc8, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2390*/ 0x1f73, 1, 0x1fc9, /* GREEK CAPITAL LETTER EPSILON WITH.. */\r
- /*2393*/ 0x1f74, 1, 0x1fca, /* GREEK CAPITAL LETTER ETA WITH VAR.. */\r
- /*2396*/ 0x1f75, 1, 0x1fcb, /* GREEK CAPITAL LETTER ETA WITH OXIA */\r
- /*2399*/ 0x1f76, 1, 0x1fda, /* GREEK CAPITAL LETTER IOTA WITH VA.. */\r
- /*2402*/ 0x1f77, 1, 0x1fdb, /* GREEK CAPITAL LETTER IOTA WITH OX.. */\r
- /*2405*/ 0x1f78, 1, 0x1ff8, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2408*/ 0x1f79, 1, 0x1ff9, /* GREEK CAPITAL LETTER OMICRON WITH.. */\r
- /*2411*/ 0x1f7a, 1, 0x1fea, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2414*/ 0x1f7b, 1, 0x1feb, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2417*/ 0x1f7c, 1, 0x1ffa, /* GREEK CAPITAL LETTER OMEGA WITH V.. */\r
- /*2420*/ 0x1f7d, 1, 0x1ffb, /* GREEK CAPITAL LETTER OMEGA WITH O.. */\r
- /*2423*/ 0x1fb0, 1, 0x1fb8, /* GREEK CAPITAL LETTER ALPHA WITH V.. */\r
- /*2426*/ 0x1fb1, 1, 0x1fb9, /* GREEK CAPITAL LETTER ALPHA WITH M.. */\r
- /*2429*/ 0x1fd0, 1, 0x1fd8, /* GREEK CAPITAL LETTER IOTA WITH VR.. */\r
- /*2432*/ 0x1fd1, 1, 0x1fd9, /* GREEK CAPITAL LETTER IOTA WITH MA.. */\r
- /*2435*/ 0x1fe0, 1, 0x1fe8, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2438*/ 0x1fe1, 1, 0x1fe9, /* GREEK CAPITAL LETTER UPSILON WITH.. */\r
- /*2441*/ 0x1fe5, 1, 0x1fec, /* GREEK CAPITAL LETTER RHO WITH DAS.. */\r
- /*2444*/ 0x214e, 1, 0x2132, /* TURNED CAPITAL F */\r
- /*2447*/ 0x2170, 1, 0x2160, /* ROMAN NUMERAL ONE */\r
- /*2450*/ 0x2171, 1, 0x2161, /* ROMAN NUMERAL TWO */\r
- /*2453*/ 0x2172, 1, 0x2162, /* ROMAN NUMERAL THREE */\r
- /*2456*/ 0x2173, 1, 0x2163, /* ROMAN NUMERAL FOUR */\r
- /*2459*/ 0x2174, 1, 0x2164, /* ROMAN NUMERAL FIVE */\r
- /*2462*/ 0x2175, 1, 0x2165, /* ROMAN NUMERAL SIX */\r
- /*2465*/ 0x2176, 1, 0x2166, /* ROMAN NUMERAL SEVEN */\r
- /*2468*/ 0x2177, 1, 0x2167, /* ROMAN NUMERAL EIGHT */\r
- /*2471*/ 0x2178, 1, 0x2168, /* ROMAN NUMERAL NINE */\r
- /*2474*/ 0x2179, 1, 0x2169, /* ROMAN NUMERAL TEN */\r
- /*2477*/ 0x217a, 1, 0x216a, /* ROMAN NUMERAL ELEVEN */\r
- /*2480*/ 0x217b, 1, 0x216b, /* ROMAN NUMERAL TWELVE */\r
- /*2483*/ 0x217c, 1, 0x216c, /* ROMAN NUMERAL FIFTY */\r
- /*2486*/ 0x217d, 1, 0x216d, /* ROMAN NUMERAL ONE HUNDRED */\r
- /*2489*/ 0x217e, 1, 0x216e, /* ROMAN NUMERAL FIVE HUNDRED */\r
- /*2492*/ 0x217f, 1, 0x216f, /* ROMAN NUMERAL ONE THOUSAND */\r
- /*2495*/ 0x2184, 1, 0x2183, /* ROMAN NUMERAL REVERSED ONE HUNDRED */\r
- /*2498*/ 0x24d0, 1, 0x24b6, /* CIRCLED LATIN CAPITAL LETTER A */\r
- /*2501*/ 0x24d1, 1, 0x24b7, /* CIRCLED LATIN CAPITAL LETTER B */\r
- /*2504*/ 0x24d2, 1, 0x24b8, /* CIRCLED LATIN CAPITAL LETTER C */\r
- /*2507*/ 0x24d3, 1, 0x24b9, /* CIRCLED LATIN CAPITAL LETTER D */\r
- /*2510*/ 0x24d4, 1, 0x24ba, /* CIRCLED LATIN CAPITAL LETTER E */\r
- /*2513*/ 0x24d5, 1, 0x24bb, /* CIRCLED LATIN CAPITAL LETTER F */\r
- /*2516*/ 0x24d6, 1, 0x24bc, /* CIRCLED LATIN CAPITAL LETTER G */\r
- /*2519*/ 0x24d7, 1, 0x24bd, /* CIRCLED LATIN CAPITAL LETTER H */\r
- /*2522*/ 0x24d8, 1, 0x24be, /* CIRCLED LATIN CAPITAL LETTER I */\r
- /*2525*/ 0x24d9, 1, 0x24bf, /* CIRCLED LATIN CAPITAL LETTER J */\r
- /*2528*/ 0x24da, 1, 0x24c0, /* CIRCLED LATIN CAPITAL LETTER K */\r
- /*2531*/ 0x24db, 1, 0x24c1, /* CIRCLED LATIN CAPITAL LETTER L */\r
- /*2534*/ 0x24dc, 1, 0x24c2, /* CIRCLED LATIN CAPITAL LETTER M */\r
- /*2537*/ 0x24dd, 1, 0x24c3, /* CIRCLED LATIN CAPITAL LETTER N */\r
- /*2540*/ 0x24de, 1, 0x24c4, /* CIRCLED LATIN CAPITAL LETTER O */\r
- /*2543*/ 0x24df, 1, 0x24c5, /* CIRCLED LATIN CAPITAL LETTER P */\r
- /*2546*/ 0x24e0, 1, 0x24c6, /* CIRCLED LATIN CAPITAL LETTER Q */\r
- /*2549*/ 0x24e1, 1, 0x24c7, /* CIRCLED LATIN CAPITAL LETTER R */\r
- /*2552*/ 0x24e2, 1, 0x24c8, /* CIRCLED LATIN CAPITAL LETTER S */\r
- /*2555*/ 0x24e3, 1, 0x24c9, /* CIRCLED LATIN CAPITAL LETTER T */\r
- /*2558*/ 0x24e4, 1, 0x24ca, /* CIRCLED LATIN CAPITAL LETTER U */\r
- /*2561*/ 0x24e5, 1, 0x24cb, /* CIRCLED LATIN CAPITAL LETTER V */\r
- /*2564*/ 0x24e6, 1, 0x24cc, /* CIRCLED LATIN CAPITAL LETTER W */\r
- /*2567*/ 0x24e7, 1, 0x24cd, /* CIRCLED LATIN CAPITAL LETTER X */\r
- /*2570*/ 0x24e8, 1, 0x24ce, /* CIRCLED LATIN CAPITAL LETTER Y */\r
- /*2573*/ 0x24e9, 1, 0x24cf, /* CIRCLED LATIN CAPITAL LETTER Z */\r
- /*2576*/ 0x2c30, 1, 0x2c00, /* GLAGOLITIC CAPITAL LETTER AZU */\r
- /*2579*/ 0x2c31, 1, 0x2c01, /* GLAGOLITIC CAPITAL LETTER BUKY */\r
- /*2582*/ 0x2c32, 1, 0x2c02, /* GLAGOLITIC CAPITAL LETTER VEDE */\r
- /*2585*/ 0x2c33, 1, 0x2c03, /* GLAGOLITIC CAPITAL LETTER GLAGOLI */\r
- /*2588*/ 0x2c34, 1, 0x2c04, /* GLAGOLITIC CAPITAL LETTER DOBRO */\r
- /*2591*/ 0x2c35, 1, 0x2c05, /* GLAGOLITIC CAPITAL LETTER YESTU */\r
- /*2594*/ 0x2c36, 1, 0x2c06, /* GLAGOLITIC CAPITAL LETTER ZHIVETE */\r
- /*2597*/ 0x2c37, 1, 0x2c07, /* GLAGOLITIC CAPITAL LETTER DZELO */\r
- /*2600*/ 0x2c38, 1, 0x2c08, /* GLAGOLITIC CAPITAL LETTER ZEMLJA */\r
- /*2603*/ 0x2c39, 1, 0x2c09, /* GLAGOLITIC CAPITAL LETTER IZHE */\r
- /*2606*/ 0x2c3a, 1, 0x2c0a, /* GLAGOLITIC CAPITAL LETTER INITIAL.. */\r
- /*2609*/ 0x2c3b, 1, 0x2c0b, /* GLAGOLITIC CAPITAL LETTER I */\r
- /*2612*/ 0x2c3c, 1, 0x2c0c, /* GLAGOLITIC CAPITAL LETTER DJERVI */\r
- /*2615*/ 0x2c3d, 1, 0x2c0d, /* GLAGOLITIC CAPITAL LETTER KAKO */\r
- /*2618*/ 0x2c3e, 1, 0x2c0e, /* GLAGOLITIC CAPITAL LETTER LJUDIJE */\r
- /*2621*/ 0x2c3f, 1, 0x2c0f, /* GLAGOLITIC CAPITAL LETTER MYSLITE */\r
- /*2624*/ 0x2c40, 1, 0x2c10, /* GLAGOLITIC CAPITAL LETTER NASHI */\r
- /*2627*/ 0x2c41, 1, 0x2c11, /* GLAGOLITIC CAPITAL LETTER ONU */\r
- /*2630*/ 0x2c42, 1, 0x2c12, /* GLAGOLITIC CAPITAL LETTER POKOJI */\r
- /*2633*/ 0x2c43, 1, 0x2c13, /* GLAGOLITIC CAPITAL LETTER RITSI */\r
- /*2636*/ 0x2c44, 1, 0x2c14, /* GLAGOLITIC CAPITAL LETTER SLOVO */\r
- /*2639*/ 0x2c45, 1, 0x2c15, /* GLAGOLITIC CAPITAL LETTER TVRIDO */\r
- /*2642*/ 0x2c46, 1, 0x2c16, /* GLAGOLITIC CAPITAL LETTER UKU */\r
- /*2645*/ 0x2c47, 1, 0x2c17, /* GLAGOLITIC CAPITAL LETTER FRITU */\r
- /*2648*/ 0x2c48, 1, 0x2c18, /* GLAGOLITIC CAPITAL LETTER HERU */\r
- /*2651*/ 0x2c49, 1, 0x2c19, /* GLAGOLITIC CAPITAL LETTER OTU */\r
- /*2654*/ 0x2c4a, 1, 0x2c1a, /* GLAGOLITIC CAPITAL LETTER PE */\r
- /*2657*/ 0x2c4b, 1, 0x2c1b, /* GLAGOLITIC CAPITAL LETTER SHTA */\r
- /*2660*/ 0x2c4c, 1, 0x2c1c, /* GLAGOLITIC CAPITAL LETTER TSI */\r
- /*2663*/ 0x2c4d, 1, 0x2c1d, /* GLAGOLITIC CAPITAL LETTER CHRIVI */\r
- /*2666*/ 0x2c4e, 1, 0x2c1e, /* GLAGOLITIC CAPITAL LETTER SHA */\r
- /*2669*/ 0x2c4f, 1, 0x2c1f, /* GLAGOLITIC CAPITAL LETTER YERU */\r
- /*2672*/ 0x2c50, 1, 0x2c20, /* GLAGOLITIC CAPITAL LETTER YERI */\r
- /*2675*/ 0x2c51, 1, 0x2c21, /* GLAGOLITIC CAPITAL LETTER YATI */\r
- /*2678*/ 0x2c52, 1, 0x2c22, /* GLAGOLITIC CAPITAL LETTER SPIDERY.. */\r
- /*2681*/ 0x2c53, 1, 0x2c23, /* GLAGOLITIC CAPITAL LETTER YU */\r
- /*2684*/ 0x2c54, 1, 0x2c24, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */\r
- /*2687*/ 0x2c55, 1, 0x2c25, /* GLAGOLITIC CAPITAL LETTER SMALL Y.. */\r
- /*2690*/ 0x2c56, 1, 0x2c26, /* GLAGOLITIC CAPITAL LETTER YO */\r
- /*2693*/ 0x2c57, 1, 0x2c27, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */\r
- /*2696*/ 0x2c58, 1, 0x2c28, /* GLAGOLITIC CAPITAL LETTER BIG YUS */\r
- /*2699*/ 0x2c59, 1, 0x2c29, /* GLAGOLITIC CAPITAL LETTER IOTATED.. */\r
- /*2702*/ 0x2c5a, 1, 0x2c2a, /* GLAGOLITIC CAPITAL LETTER FITA */\r
- /*2705*/ 0x2c5b, 1, 0x2c2b, /* GLAGOLITIC CAPITAL LETTER IZHITSA */\r
- /*2708*/ 0x2c5c, 1, 0x2c2c, /* GLAGOLITIC CAPITAL LETTER SHTAPIC */\r
- /*2711*/ 0x2c5d, 1, 0x2c2d, /* GLAGOLITIC CAPITAL LETTER TROKUTA.. */\r
- /*2714*/ 0x2c5e, 1, 0x2c2e, /* GLAGOLITIC CAPITAL LETTER LATINAT.. */\r
- /*2717*/ 0x2c61, 1, 0x2c60, /* LATIN CAPITAL LETTER L WITH DOUBL.. */\r
- /*2720*/ 0x2c65, 1, 0x023a, /* LATIN CAPITAL LETTER A WITH STROKE */\r
- /*2723*/ 0x2c66, 1, 0x023e, /* LATIN CAPITAL LETTER T WITH DIAGO.. */\r
- /*2726*/ 0x2c68, 1, 0x2c67, /* LATIN CAPITAL LETTER H WITH DESCE.. */\r
- /*2729*/ 0x2c6a, 1, 0x2c69, /* LATIN CAPITAL LETTER K WITH DESCE.. */\r
- /*2732*/ 0x2c6c, 1, 0x2c6b, /* LATIN CAPITAL LETTER Z WITH DESCE.. */\r
- /*2735*/ 0x2c73, 1, 0x2c72, /* LATIN CAPITAL LETTER W WITH HOOK */\r
- /*2738*/ 0x2c76, 1, 0x2c75, /* LATIN CAPITAL LETTER HALF H */\r
- /*2741*/ 0x2c81, 1, 0x2c80, /* COPTIC CAPITAL LETTER ALFA */\r
- /*2744*/ 0x2c83, 1, 0x2c82, /* COPTIC CAPITAL LETTER VIDA */\r
- /*2747*/ 0x2c85, 1, 0x2c84, /* COPTIC CAPITAL LETTER GAMMA */\r
- /*2750*/ 0x2c87, 1, 0x2c86, /* COPTIC CAPITAL LETTER DALDA */\r
- /*2753*/ 0x2c89, 1, 0x2c88, /* COPTIC CAPITAL LETTER EIE */\r
- /*2756*/ 0x2c8b, 1, 0x2c8a, /* COPTIC CAPITAL LETTER SOU */\r
- /*2759*/ 0x2c8d, 1, 0x2c8c, /* COPTIC CAPITAL LETTER ZATA */\r
- /*2762*/ 0x2c8f, 1, 0x2c8e, /* COPTIC CAPITAL LETTER HATE */\r
- /*2765*/ 0x2c91, 1, 0x2c90, /* COPTIC CAPITAL LETTER THETHE */\r
- /*2768*/ 0x2c93, 1, 0x2c92, /* COPTIC CAPITAL LETTER IAUDA */\r
- /*2771*/ 0x2c95, 1, 0x2c94, /* COPTIC CAPITAL LETTER KAPA */\r
- /*2774*/ 0x2c97, 1, 0x2c96, /* COPTIC CAPITAL LETTER LAULA */\r
- /*2777*/ 0x2c99, 1, 0x2c98, /* COPTIC CAPITAL LETTER MI */\r
- /*2780*/ 0x2c9b, 1, 0x2c9a, /* COPTIC CAPITAL LETTER NI */\r
- /*2783*/ 0x2c9d, 1, 0x2c9c, /* COPTIC CAPITAL LETTER KSI */\r
- /*2786*/ 0x2c9f, 1, 0x2c9e, /* COPTIC CAPITAL LETTER O */\r
- /*2789*/ 0x2ca1, 1, 0x2ca0, /* COPTIC CAPITAL LETTER PI */\r
- /*2792*/ 0x2ca3, 1, 0x2ca2, /* COPTIC CAPITAL LETTER RO */\r
- /*2795*/ 0x2ca5, 1, 0x2ca4, /* COPTIC CAPITAL LETTER SIMA */\r
- /*2798*/ 0x2ca7, 1, 0x2ca6, /* COPTIC CAPITAL LETTER TAU */\r
- /*2801*/ 0x2ca9, 1, 0x2ca8, /* COPTIC CAPITAL LETTER UA */\r
- /*2804*/ 0x2cab, 1, 0x2caa, /* COPTIC CAPITAL LETTER FI */\r
- /*2807*/ 0x2cad, 1, 0x2cac, /* COPTIC CAPITAL LETTER KHI */\r
- /*2810*/ 0x2caf, 1, 0x2cae, /* COPTIC CAPITAL LETTER PSI */\r
- /*2813*/ 0x2cb1, 1, 0x2cb0, /* COPTIC CAPITAL LETTER OOU */\r
- /*2816*/ 0x2cb3, 1, 0x2cb2, /* COPTIC CAPITAL LETTER DIALECT-P A.. */\r
- /*2819*/ 0x2cb5, 1, 0x2cb4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2822*/ 0x2cb7, 1, 0x2cb6, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */\r
- /*2825*/ 0x2cb9, 1, 0x2cb8, /* COPTIC CAPITAL LETTER DIALECT-P K.. */\r
- /*2828*/ 0x2cbb, 1, 0x2cba, /* COPTIC CAPITAL LETTER DIALECT-P NI */\r
- /*2831*/ 0x2cbd, 1, 0x2cbc, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */\r
- /*2834*/ 0x2cbf, 1, 0x2cbe, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2837*/ 0x2cc1, 1, 0x2cc0, /* COPTIC CAPITAL LETTER SAMPI */\r
- /*2840*/ 0x2cc3, 1, 0x2cc2, /* COPTIC CAPITAL LETTER CROSSED SHEI */\r
- /*2843*/ 0x2cc5, 1, 0x2cc4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2846*/ 0x2cc7, 1, 0x2cc6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2849*/ 0x2cc9, 1, 0x2cc8, /* COPTIC CAPITAL LETTER AKHMIMIC KH.. */\r
- /*2852*/ 0x2ccb, 1, 0x2cca, /* COPTIC CAPITAL LETTER DIALECT-P H.. */\r
- /*2855*/ 0x2ccd, 1, 0x2ccc, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2858*/ 0x2ccf, 1, 0x2cce, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2861*/ 0x2cd1, 1, 0x2cd0, /* COPTIC CAPITAL LETTER L-SHAPED HA */\r
- /*2864*/ 0x2cd3, 1, 0x2cd2, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2867*/ 0x2cd5, 1, 0x2cd4, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2870*/ 0x2cd7, 1, 0x2cd6, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2873*/ 0x2cd9, 1, 0x2cd8, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2876*/ 0x2cdb, 1, 0x2cda, /* COPTIC CAPITAL LETTER OLD COPTIC .. */\r
- /*2879*/ 0x2cdd, 1, 0x2cdc, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */\r
- /*2882*/ 0x2cdf, 1, 0x2cde, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */\r
- /*2885*/ 0x2ce1, 1, 0x2ce0, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */\r
- /*2888*/ 0x2ce3, 1, 0x2ce2, /* COPTIC CAPITAL LETTER OLD NUBIAN .. */\r
- /*2891*/ 0x2cec, 1, 0x2ceb, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */\r
- /*2894*/ 0x2cee, 1, 0x2ced, /* COPTIC CAPITAL LETTER CRYPTOGRAMM.. */\r
- /*2897*/ 0x2cf3, 1, 0x2cf2, /* COPTIC CAPITAL LETTER BOHAIRIC KH.. */\r
- /*2900*/ 0x2d00, 1, 0x10a0, /* GEORGIAN CAPITAL LETTER AN */\r
- /*2903*/ 0x2d01, 1, 0x10a1, /* GEORGIAN CAPITAL LETTER BAN */\r
- /*2906*/ 0x2d02, 1, 0x10a2, /* GEORGIAN CAPITAL LETTER GAN */\r
- /*2909*/ 0x2d03, 1, 0x10a3, /* GEORGIAN CAPITAL LETTER DON */\r
- /*2912*/ 0x2d04, 1, 0x10a4, /* GEORGIAN CAPITAL LETTER EN */\r
- /*2915*/ 0x2d05, 1, 0x10a5, /* GEORGIAN CAPITAL LETTER VIN */\r
- /*2918*/ 0x2d06, 1, 0x10a6, /* GEORGIAN CAPITAL LETTER ZEN */\r
- /*2921*/ 0x2d07, 1, 0x10a7, /* GEORGIAN CAPITAL LETTER TAN */\r
- /*2924*/ 0x2d08, 1, 0x10a8, /* GEORGIAN CAPITAL LETTER IN */\r
- /*2927*/ 0x2d09, 1, 0x10a9, /* GEORGIAN CAPITAL LETTER KAN */\r
- /*2930*/ 0x2d0a, 1, 0x10aa, /* GEORGIAN CAPITAL LETTER LAS */\r
- /*2933*/ 0x2d0b, 1, 0x10ab, /* GEORGIAN CAPITAL LETTER MAN */\r
- /*2936*/ 0x2d0c, 1, 0x10ac, /* GEORGIAN CAPITAL LETTER NAR */\r
- /*2939*/ 0x2d0d, 1, 0x10ad, /* GEORGIAN CAPITAL LETTER ON */\r
- /*2942*/ 0x2d0e, 1, 0x10ae, /* GEORGIAN CAPITAL LETTER PAR */\r
- /*2945*/ 0x2d0f, 1, 0x10af, /* GEORGIAN CAPITAL LETTER ZHAR */\r
- /*2948*/ 0x2d10, 1, 0x10b0, /* GEORGIAN CAPITAL LETTER RAE */\r
- /*2951*/ 0x2d11, 1, 0x10b1, /* GEORGIAN CAPITAL LETTER SAN */\r
- /*2954*/ 0x2d12, 1, 0x10b2, /* GEORGIAN CAPITAL LETTER TAR */\r
- /*2957*/ 0x2d13, 1, 0x10b3, /* GEORGIAN CAPITAL LETTER UN */\r
- /*2960*/ 0x2d14, 1, 0x10b4, /* GEORGIAN CAPITAL LETTER PHAR */\r
- /*2963*/ 0x2d15, 1, 0x10b5, /* GEORGIAN CAPITAL LETTER KHAR */\r
- /*2966*/ 0x2d16, 1, 0x10b6, /* GEORGIAN CAPITAL LETTER GHAN */\r
- /*2969*/ 0x2d17, 1, 0x10b7, /* GEORGIAN CAPITAL LETTER QAR */\r
- /*2972*/ 0x2d18, 1, 0x10b8, /* GEORGIAN CAPITAL LETTER SHIN */\r
- /*2975*/ 0x2d19, 1, 0x10b9, /* GEORGIAN CAPITAL LETTER CHIN */\r
- /*2978*/ 0x2d1a, 1, 0x10ba, /* GEORGIAN CAPITAL LETTER CAN */\r
- /*2981*/ 0x2d1b, 1, 0x10bb, /* GEORGIAN CAPITAL LETTER JIL */\r
- /*2984*/ 0x2d1c, 1, 0x10bc, /* GEORGIAN CAPITAL LETTER CIL */\r
- /*2987*/ 0x2d1d, 1, 0x10bd, /* GEORGIAN CAPITAL LETTER CHAR */\r
- /*2990*/ 0x2d1e, 1, 0x10be, /* GEORGIAN CAPITAL LETTER XAN */\r
- /*2993*/ 0x2d1f, 1, 0x10bf, /* GEORGIAN CAPITAL LETTER JHAN */\r
- /*2996*/ 0x2d20, 1, 0x10c0, /* GEORGIAN CAPITAL LETTER HAE */\r
- /*2999*/ 0x2d21, 1, 0x10c1, /* GEORGIAN CAPITAL LETTER HE */\r
- /*3002*/ 0x2d22, 1, 0x10c2, /* GEORGIAN CAPITAL LETTER HIE */\r
- /*3005*/ 0x2d23, 1, 0x10c3, /* GEORGIAN CAPITAL LETTER WE */\r
- /*3008*/ 0x2d24, 1, 0x10c4, /* GEORGIAN CAPITAL LETTER HAR */\r
- /*3011*/ 0x2d25, 1, 0x10c5, /* GEORGIAN CAPITAL LETTER HOE */\r
- /*3014*/ 0x2d27, 1, 0x10c7, /* GEORGIAN CAPITAL LETTER YN */\r
- /*3017*/ 0x2d2d, 1, 0x10cd, /* GEORGIAN CAPITAL LETTER AEN */\r
- /*3020*/ 0xa641, 1, 0xa640, /* CYRILLIC CAPITAL LETTER ZEMLYA */\r
- /*3023*/ 0xa643, 1, 0xa642, /* CYRILLIC CAPITAL LETTER DZELO */\r
- /*3026*/ 0xa645, 1, 0xa644, /* CYRILLIC CAPITAL LETTER REVERSED .. */\r
- /*3029*/ 0xa647, 1, 0xa646, /* CYRILLIC CAPITAL LETTER IOTA */\r
- /*3032*/ 0xa649, 1, 0xa648, /* CYRILLIC CAPITAL LETTER DJERV */\r
- /*3035*/ 0xa64b, 2, 0x1c88, 0xa64a, /* CYRILLIC SMALL LETTER UNBLENDED UK */\r
- /*3039*/ 0xa64d, 1, 0xa64c, /* CYRILLIC CAPITAL LETTER BROAD OME.. */\r
- /*3042*/ 0xa64f, 1, 0xa64e, /* CYRILLIC CAPITAL LETTER NEUTRAL Y.. */\r
- /*3045*/ 0xa651, 1, 0xa650, /* CYRILLIC CAPITAL LETTER YERU WITH.. */\r
- /*3048*/ 0xa653, 1, 0xa652, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */\r
- /*3051*/ 0xa655, 1, 0xa654, /* CYRILLIC CAPITAL LETTER REVERSED .. */\r
- /*3054*/ 0xa657, 1, 0xa656, /* CYRILLIC CAPITAL LETTER IOTIFIED A */\r
- /*3057*/ 0xa659, 1, 0xa658, /* CYRILLIC CAPITAL LETTER CLOSED LI.. */\r
- /*3060*/ 0xa65b, 1, 0xa65a, /* CYRILLIC CAPITAL LETTER BLENDED Y.. */\r
- /*3063*/ 0xa65d, 1, 0xa65c, /* CYRILLIC CAPITAL LETTER IOTIFIED .. */\r
- /*3066*/ 0xa65f, 1, 0xa65e, /* CYRILLIC CAPITAL LETTER YN */\r
- /*3069*/ 0xa661, 1, 0xa660, /* CYRILLIC CAPITAL LETTER REVERSED .. */\r
- /*3072*/ 0xa663, 1, 0xa662, /* CYRILLIC CAPITAL LETTER SOFT DE */\r
- /*3075*/ 0xa665, 1, 0xa664, /* CYRILLIC CAPITAL LETTER SOFT EL */\r
- /*3078*/ 0xa667, 1, 0xa666, /* CYRILLIC CAPITAL LETTER SOFT EM */\r
- /*3081*/ 0xa669, 1, 0xa668, /* CYRILLIC CAPITAL LETTER MONOCULAR.. */\r
- /*3084*/ 0xa66b, 1, 0xa66a, /* CYRILLIC CAPITAL LETTER BINOCULAR.. */\r
- /*3087*/ 0xa66d, 1, 0xa66c, /* CYRILLIC CAPITAL LETTER DOUBLE MO.. */\r
- /*3090*/ 0xa681, 1, 0xa680, /* CYRILLIC CAPITAL LETTER DWE */\r
- /*3093*/ 0xa683, 1, 0xa682, /* CYRILLIC CAPITAL LETTER DZWE */\r
- /*3096*/ 0xa685, 1, 0xa684, /* CYRILLIC CAPITAL LETTER ZHWE */\r
- /*3099*/ 0xa687, 1, 0xa686, /* CYRILLIC CAPITAL LETTER CCHE */\r
- /*3102*/ 0xa689, 1, 0xa688, /* CYRILLIC CAPITAL LETTER DZZE */\r
- /*3105*/ 0xa68b, 1, 0xa68a, /* CYRILLIC CAPITAL LETTER TE WITH M.. */\r
- /*3108*/ 0xa68d, 1, 0xa68c, /* CYRILLIC CAPITAL LETTER TWE */\r
- /*3111*/ 0xa68f, 1, 0xa68e, /* CYRILLIC CAPITAL LETTER TSWE */\r
- /*3114*/ 0xa691, 1, 0xa690, /* CYRILLIC CAPITAL LETTER TSSE */\r
- /*3117*/ 0xa693, 1, 0xa692, /* CYRILLIC CAPITAL LETTER TCHE */\r
- /*3120*/ 0xa695, 1, 0xa694, /* CYRILLIC CAPITAL LETTER HWE */\r
- /*3123*/ 0xa697, 1, 0xa696, /* CYRILLIC CAPITAL LETTER SHWE */\r
- /*3126*/ 0xa699, 1, 0xa698, /* CYRILLIC CAPITAL LETTER DOUBLE O */\r
- /*3129*/ 0xa69b, 1, 0xa69a, /* CYRILLIC CAPITAL LETTER CROSSED O */\r
- /*3132*/ 0xa723, 1, 0xa722, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */\r
- /*3135*/ 0xa725, 1, 0xa724, /* LATIN CAPITAL LETTER EGYPTOLOGICA.. */\r
- /*3138*/ 0xa727, 1, 0xa726, /* LATIN CAPITAL LETTER HENG */\r
- /*3141*/ 0xa729, 1, 0xa728, /* LATIN CAPITAL LETTER TZ */\r
- /*3144*/ 0xa72b, 1, 0xa72a, /* LATIN CAPITAL LETTER TRESILLO */\r
- /*3147*/ 0xa72d, 1, 0xa72c, /* LATIN CAPITAL LETTER CUATRILLO */\r
- /*3150*/ 0xa72f, 1, 0xa72e, /* LATIN CAPITAL LETTER CUATRILLO WI.. */\r
- /*3153*/ 0xa733, 1, 0xa732, /* LATIN CAPITAL LETTER AA */\r
- /*3156*/ 0xa735, 1, 0xa734, /* LATIN CAPITAL LETTER AO */\r
- /*3159*/ 0xa737, 1, 0xa736, /* LATIN CAPITAL LETTER AU */\r
- /*3162*/ 0xa739, 1, 0xa738, /* LATIN CAPITAL LETTER AV */\r
- /*3165*/ 0xa73b, 1, 0xa73a, /* LATIN CAPITAL LETTER AV WITH HORI.. */\r
- /*3168*/ 0xa73d, 1, 0xa73c, /* LATIN CAPITAL LETTER AY */\r
- /*3171*/ 0xa73f, 1, 0xa73e, /* LATIN CAPITAL LETTER REVERSED C W.. */\r
- /*3174*/ 0xa741, 1, 0xa740, /* LATIN CAPITAL LETTER K WITH STROKE */\r
- /*3177*/ 0xa743, 1, 0xa742, /* LATIN CAPITAL LETTER K WITH DIAGO.. */\r
- /*3180*/ 0xa745, 1, 0xa744, /* LATIN CAPITAL LETTER K WITH STROK.. */\r
- /*3183*/ 0xa747, 1, 0xa746, /* LATIN CAPITAL LETTER BROKEN L */\r
- /*3186*/ 0xa749, 1, 0xa748, /* LATIN CAPITAL LETTER L WITH HIGH .. */\r
- /*3189*/ 0xa74b, 1, 0xa74a, /* LATIN CAPITAL LETTER O WITH LONG .. */\r
- /*3192*/ 0xa74d, 1, 0xa74c, /* LATIN CAPITAL LETTER O WITH LOOP */\r
- /*3195*/ 0xa74f, 1, 0xa74e, /* LATIN CAPITAL LETTER OO */\r
- /*3198*/ 0xa751, 1, 0xa750, /* LATIN CAPITAL LETTER P WITH STROK.. */\r
- /*3201*/ 0xa753, 1, 0xa752, /* LATIN CAPITAL LETTER P WITH FLOUR.. */\r
- /*3204*/ 0xa755, 1, 0xa754, /* LATIN CAPITAL LETTER P WITH SQUIR.. */\r
- /*3207*/ 0xa757, 1, 0xa756, /* LATIN CAPITAL LETTER Q WITH STROK.. */\r
- /*3210*/ 0xa759, 1, 0xa758, /* LATIN CAPITAL LETTER Q WITH DIAGO.. */\r
- /*3213*/ 0xa75b, 1, 0xa75a, /* LATIN CAPITAL LETTER R ROTUNDA */\r
- /*3216*/ 0xa75d, 1, 0xa75c, /* LATIN CAPITAL LETTER RUM ROTUNDA */\r
- /*3219*/ 0xa75f, 1, 0xa75e, /* LATIN CAPITAL LETTER V WITH DIAGO.. */\r
- /*3222*/ 0xa761, 1, 0xa760, /* LATIN CAPITAL LETTER VY */\r
- /*3225*/ 0xa763, 1, 0xa762, /* LATIN CAPITAL LETTER VISIGOTHIC Z */\r
- /*3228*/ 0xa765, 1, 0xa764, /* LATIN CAPITAL LETTER THORN WITH S.. */\r
- /*3231*/ 0xa767, 1, 0xa766, /* LATIN CAPITAL LETTER THORN WITH S.. */\r
- /*3234*/ 0xa769, 1, 0xa768, /* LATIN CAPITAL LETTER VEND */\r
- /*3237*/ 0xa76b, 1, 0xa76a, /* LATIN CAPITAL LETTER ET */\r
- /*3240*/ 0xa76d, 1, 0xa76c, /* LATIN CAPITAL LETTER IS */\r
- /*3243*/ 0xa76f, 1, 0xa76e, /* LATIN CAPITAL LETTER CON */\r
- /*3246*/ 0xa77a, 1, 0xa779, /* LATIN CAPITAL LETTER INSULAR D */\r
- /*3249*/ 0xa77c, 1, 0xa77b, /* LATIN CAPITAL LETTER INSULAR F */\r
- /*3252*/ 0xa77f, 1, 0xa77e, /* LATIN CAPITAL LETTER TURNED INSUL.. */\r
- /*3255*/ 0xa781, 1, 0xa780, /* LATIN CAPITAL LETTER TURNED L */\r
- /*3258*/ 0xa783, 1, 0xa782, /* LATIN CAPITAL LETTER INSULAR R */\r
- /*3261*/ 0xa785, 1, 0xa784, /* LATIN CAPITAL LETTER INSULAR S */\r
- /*3264*/ 0xa787, 1, 0xa786, /* LATIN CAPITAL LETTER INSULAR T */\r
- /*3267*/ 0xa78c, 1, 0xa78b, /* LATIN CAPITAL LETTER SALTILLO */\r
- /*3270*/ 0xa791, 1, 0xa790, /* LATIN CAPITAL LETTER N WITH DESCE.. */\r
- /*3273*/ 0xa793, 1, 0xa792, /* LATIN CAPITAL LETTER C WITH BAR */\r
- /*3276*/ 0xa794, 1, 0xa7c4, /* LATIN CAPITAL LETTER C WITH PALAT.. */\r
- /*3279*/ 0xa797, 1, 0xa796, /* LATIN CAPITAL LETTER B WITH FLOUR.. */\r
- /*3282*/ 0xa799, 1, 0xa798, /* LATIN CAPITAL LETTER F WITH STROKE */\r
- /*3285*/ 0xa79b, 1, 0xa79a, /* LATIN CAPITAL LETTER VOLAPUK AE */\r
- /*3288*/ 0xa79d, 1, 0xa79c, /* LATIN CAPITAL LETTER VOLAPUK OE */\r
- /*3291*/ 0xa79f, 1, 0xa79e, /* LATIN CAPITAL LETTER VOLAPUK UE */\r
- /*3294*/ 0xa7a1, 1, 0xa7a0, /* LATIN CAPITAL LETTER G WITH OBLIQ.. */\r
- /*3297*/ 0xa7a3, 1, 0xa7a2, /* LATIN CAPITAL LETTER K WITH OBLIQ.. */\r
- /*3300*/ 0xa7a5, 1, 0xa7a4, /* LATIN CAPITAL LETTER N WITH OBLIQ.. */\r
- /*3303*/ 0xa7a7, 1, 0xa7a6, /* LATIN CAPITAL LETTER R WITH OBLIQ.. */\r
- /*3306*/ 0xa7a9, 1, 0xa7a8, /* LATIN CAPITAL LETTER S WITH OBLIQ.. */\r
- /*3309*/ 0xa7b5, 1, 0xa7b4, /* LATIN CAPITAL LETTER BETA */\r
- /*3312*/ 0xa7b7, 1, 0xa7b6, /* LATIN CAPITAL LETTER OMEGA */\r
- /*3315*/ 0xa7b9, 1, 0xa7b8, /* LATIN CAPITAL LETTER U WITH STROKE */\r
- /*3318*/ 0xa7bb, 1, 0xa7ba, /* LATIN CAPITAL LETTER GLOTTAL A */\r
- /*3321*/ 0xa7bd, 1, 0xa7bc, /* LATIN CAPITAL LETTER GLOTTAL I */\r
- /*3324*/ 0xa7bf, 1, 0xa7be, /* LATIN CAPITAL LETTER GLOTTAL U */\r
- /*3327*/ 0xa7c3, 1, 0xa7c2, /* LATIN CAPITAL LETTER ANGLICANA W */\r
- /*3330*/ 0xab53, 1, 0xa7b3, /* LATIN CAPITAL LETTER CHI */\r
- /*3333*/ 0xff41, 1, 0xff21, /* FULLWIDTH LATIN CAPITAL LETTER A */\r
- /*3336*/ 0xff42, 1, 0xff22, /* FULLWIDTH LATIN CAPITAL LETTER B */\r
- /*3339*/ 0xff43, 1, 0xff23, /* FULLWIDTH LATIN CAPITAL LETTER C */\r
- /*3342*/ 0xff44, 1, 0xff24, /* FULLWIDTH LATIN CAPITAL LETTER D */\r
- /*3345*/ 0xff45, 1, 0xff25, /* FULLWIDTH LATIN CAPITAL LETTER E */\r
- /*3348*/ 0xff46, 1, 0xff26, /* FULLWIDTH LATIN CAPITAL LETTER F */\r
- /*3351*/ 0xff47, 1, 0xff27, /* FULLWIDTH LATIN CAPITAL LETTER G */\r
- /*3354*/ 0xff48, 1, 0xff28, /* FULLWIDTH LATIN CAPITAL LETTER H */\r
- /*3357*/ 0xff49, 1, 0xff29, /* FULLWIDTH LATIN CAPITAL LETTER I */\r
- /*3360*/ 0xff4a, 1, 0xff2a, /* FULLWIDTH LATIN CAPITAL LETTER J */\r
- /*3363*/ 0xff4b, 1, 0xff2b, /* FULLWIDTH LATIN CAPITAL LETTER K */\r
- /*3366*/ 0xff4c, 1, 0xff2c, /* FULLWIDTH LATIN CAPITAL LETTER L */\r
- /*3369*/ 0xff4d, 1, 0xff2d, /* FULLWIDTH LATIN CAPITAL LETTER M */\r
- /*3372*/ 0xff4e, 1, 0xff2e, /* FULLWIDTH LATIN CAPITAL LETTER N */\r
- /*3375*/ 0xff4f, 1, 0xff2f, /* FULLWIDTH LATIN CAPITAL LETTER O */\r
- /*3378*/ 0xff50, 1, 0xff30, /* FULLWIDTH LATIN CAPITAL LETTER P */\r
- /*3381*/ 0xff51, 1, 0xff31, /* FULLWIDTH LATIN CAPITAL LETTER Q */\r
- /*3384*/ 0xff52, 1, 0xff32, /* FULLWIDTH LATIN CAPITAL LETTER R */\r
- /*3387*/ 0xff53, 1, 0xff33, /* FULLWIDTH LATIN CAPITAL LETTER S */\r
- /*3390*/ 0xff54, 1, 0xff34, /* FULLWIDTH LATIN CAPITAL LETTER T */\r
- /*3393*/ 0xff55, 1, 0xff35, /* FULLWIDTH LATIN CAPITAL LETTER U */\r
- /*3396*/ 0xff56, 1, 0xff36, /* FULLWIDTH LATIN CAPITAL LETTER V */\r
- /*3399*/ 0xff57, 1, 0xff37, /* FULLWIDTH LATIN CAPITAL LETTER W */\r
- /*3402*/ 0xff58, 1, 0xff38, /* FULLWIDTH LATIN CAPITAL LETTER X */\r
- /*3405*/ 0xff59, 1, 0xff39, /* FULLWIDTH LATIN CAPITAL LETTER Y */\r
- /*3408*/ 0xff5a, 1, 0xff3a, /* FULLWIDTH LATIN CAPITAL LETTER Z */\r
- /*3411*/ 0x010428, 1, 0x010400, /* DESERET CAPITAL LETTER LONG I */\r
- /*3414*/ 0x010429, 1, 0x010401, /* DESERET CAPITAL LETTER LONG E */\r
- /*3417*/ 0x01042a, 1, 0x010402, /* DESERET CAPITAL LETTER LONG A */\r
- /*3420*/ 0x01042b, 1, 0x010403, /* DESERET CAPITAL LETTER LONG AH */\r
- /*3423*/ 0x01042c, 1, 0x010404, /* DESERET CAPITAL LETTER LONG O */\r
- /*3426*/ 0x01042d, 1, 0x010405, /* DESERET CAPITAL LETTER LONG OO */\r
- /*3429*/ 0x01042e, 1, 0x010406, /* DESERET CAPITAL LETTER SHORT I */\r
- /*3432*/ 0x01042f, 1, 0x010407, /* DESERET CAPITAL LETTER SHORT E */\r
- /*3435*/ 0x010430, 1, 0x010408, /* DESERET CAPITAL LETTER SHORT A */\r
- /*3438*/ 0x010431, 1, 0x010409, /* DESERET CAPITAL LETTER SHORT AH */\r
- /*3441*/ 0x010432, 1, 0x01040a, /* DESERET CAPITAL LETTER SHORT O */\r
- /*3444*/ 0x010433, 1, 0x01040b, /* DESERET CAPITAL LETTER SHORT OO */\r
- /*3447*/ 0x010434, 1, 0x01040c, /* DESERET CAPITAL LETTER AY */\r
- /*3450*/ 0x010435, 1, 0x01040d, /* DESERET CAPITAL LETTER OW */\r
- /*3453*/ 0x010436, 1, 0x01040e, /* DESERET CAPITAL LETTER WU */\r
- /*3456*/ 0x010437, 1, 0x01040f, /* DESERET CAPITAL LETTER YEE */\r
- /*3459*/ 0x010438, 1, 0x010410, /* DESERET CAPITAL LETTER H */\r
- /*3462*/ 0x010439, 1, 0x010411, /* DESERET CAPITAL LETTER PEE */\r
- /*3465*/ 0x01043a, 1, 0x010412, /* DESERET CAPITAL LETTER BEE */\r
- /*3468*/ 0x01043b, 1, 0x010413, /* DESERET CAPITAL LETTER TEE */\r
- /*3471*/ 0x01043c, 1, 0x010414, /* DESERET CAPITAL LETTER DEE */\r
- /*3474*/ 0x01043d, 1, 0x010415, /* DESERET CAPITAL LETTER CHEE */\r
- /*3477*/ 0x01043e, 1, 0x010416, /* DESERET CAPITAL LETTER JEE */\r
- /*3480*/ 0x01043f, 1, 0x010417, /* DESERET CAPITAL LETTER KAY */\r
- /*3483*/ 0x010440, 1, 0x010418, /* DESERET CAPITAL LETTER GAY */\r
- /*3486*/ 0x010441, 1, 0x010419, /* DESERET CAPITAL LETTER EF */\r
- /*3489*/ 0x010442, 1, 0x01041a, /* DESERET CAPITAL LETTER VEE */\r
- /*3492*/ 0x010443, 1, 0x01041b, /* DESERET CAPITAL LETTER ETH */\r
- /*3495*/ 0x010444, 1, 0x01041c, /* DESERET CAPITAL LETTER THEE */\r
- /*3498*/ 0x010445, 1, 0x01041d, /* DESERET CAPITAL LETTER ES */\r
- /*3501*/ 0x010446, 1, 0x01041e, /* DESERET CAPITAL LETTER ZEE */\r
- /*3504*/ 0x010447, 1, 0x01041f, /* DESERET CAPITAL LETTER ESH */\r
- /*3507*/ 0x010448, 1, 0x010420, /* DESERET CAPITAL LETTER ZHEE */\r
- /*3510*/ 0x010449, 1, 0x010421, /* DESERET CAPITAL LETTER ER */\r
- /*3513*/ 0x01044a, 1, 0x010422, /* DESERET CAPITAL LETTER EL */\r
- /*3516*/ 0x01044b, 1, 0x010423, /* DESERET CAPITAL LETTER EM */\r
- /*3519*/ 0x01044c, 1, 0x010424, /* DESERET CAPITAL LETTER EN */\r
- /*3522*/ 0x01044d, 1, 0x010425, /* DESERET CAPITAL LETTER ENG */\r
- /*3525*/ 0x01044e, 1, 0x010426, /* DESERET CAPITAL LETTER OI */\r
- /*3528*/ 0x01044f, 1, 0x010427, /* DESERET CAPITAL LETTER EW */\r
- /*3531*/ 0x0104d8, 1, 0x0104b0, /* OSAGE CAPITAL LETTER A */\r
- /*3534*/ 0x0104d9, 1, 0x0104b1, /* OSAGE CAPITAL LETTER AI */\r
- /*3537*/ 0x0104da, 1, 0x0104b2, /* OSAGE CAPITAL LETTER AIN */\r
- /*3540*/ 0x0104db, 1, 0x0104b3, /* OSAGE CAPITAL LETTER AH */\r
- /*3543*/ 0x0104dc, 1, 0x0104b4, /* OSAGE CAPITAL LETTER BRA */\r
- /*3546*/ 0x0104dd, 1, 0x0104b5, /* OSAGE CAPITAL LETTER CHA */\r
- /*3549*/ 0x0104de, 1, 0x0104b6, /* OSAGE CAPITAL LETTER EHCHA */\r
- /*3552*/ 0x0104df, 1, 0x0104b7, /* OSAGE CAPITAL LETTER E */\r
- /*3555*/ 0x0104e0, 1, 0x0104b8, /* OSAGE CAPITAL LETTER EIN */\r
- /*3558*/ 0x0104e1, 1, 0x0104b9, /* OSAGE CAPITAL LETTER HA */\r
- /*3561*/ 0x0104e2, 1, 0x0104ba, /* OSAGE CAPITAL LETTER HYA */\r
- /*3564*/ 0x0104e3, 1, 0x0104bb, /* OSAGE CAPITAL LETTER I */\r
- /*3567*/ 0x0104e4, 1, 0x0104bc, /* OSAGE CAPITAL LETTER KA */\r
- /*3570*/ 0x0104e5, 1, 0x0104bd, /* OSAGE CAPITAL LETTER EHKA */\r
- /*3573*/ 0x0104e6, 1, 0x0104be, /* OSAGE CAPITAL LETTER KYA */\r
- /*3576*/ 0x0104e7, 1, 0x0104bf, /* OSAGE CAPITAL LETTER LA */\r
- /*3579*/ 0x0104e8, 1, 0x0104c0, /* OSAGE CAPITAL LETTER MA */\r
- /*3582*/ 0x0104e9, 1, 0x0104c1, /* OSAGE CAPITAL LETTER NA */\r
- /*3585*/ 0x0104ea, 1, 0x0104c2, /* OSAGE CAPITAL LETTER O */\r
- /*3588*/ 0x0104eb, 1, 0x0104c3, /* OSAGE CAPITAL LETTER OIN */\r
- /*3591*/ 0x0104ec, 1, 0x0104c4, /* OSAGE CAPITAL LETTER PA */\r
- /*3594*/ 0x0104ed, 1, 0x0104c5, /* OSAGE CAPITAL LETTER EHPA */\r
- /*3597*/ 0x0104ee, 1, 0x0104c6, /* OSAGE CAPITAL LETTER SA */\r
- /*3600*/ 0x0104ef, 1, 0x0104c7, /* OSAGE CAPITAL LETTER SHA */\r
- /*3603*/ 0x0104f0, 1, 0x0104c8, /* OSAGE CAPITAL LETTER TA */\r
- /*3606*/ 0x0104f1, 1, 0x0104c9, /* OSAGE CAPITAL LETTER EHTA */\r
- /*3609*/ 0x0104f2, 1, 0x0104ca, /* OSAGE CAPITAL LETTER TSA */\r
- /*3612*/ 0x0104f3, 1, 0x0104cb, /* OSAGE CAPITAL LETTER EHTSA */\r
- /*3615*/ 0x0104f4, 1, 0x0104cc, /* OSAGE CAPITAL LETTER TSHA */\r
- /*3618*/ 0x0104f5, 1, 0x0104cd, /* OSAGE CAPITAL LETTER DHA */\r
- /*3621*/ 0x0104f6, 1, 0x0104ce, /* OSAGE CAPITAL LETTER U */\r
- /*3624*/ 0x0104f7, 1, 0x0104cf, /* OSAGE CAPITAL LETTER WA */\r
- /*3627*/ 0x0104f8, 1, 0x0104d0, /* OSAGE CAPITAL LETTER KHA */\r
- /*3630*/ 0x0104f9, 1, 0x0104d1, /* OSAGE CAPITAL LETTER GHA */\r
- /*3633*/ 0x0104fa, 1, 0x0104d2, /* OSAGE CAPITAL LETTER ZA */\r
- /*3636*/ 0x0104fb, 1, 0x0104d3, /* OSAGE CAPITAL LETTER ZHA */\r
- /*3639*/ 0x010cc0, 1, 0x010c80, /* OLD HUNGARIAN CAPITAL LETTER A */\r
- /*3642*/ 0x010cc1, 1, 0x010c81, /* OLD HUNGARIAN CAPITAL LETTER AA */\r
- /*3645*/ 0x010cc2, 1, 0x010c82, /* OLD HUNGARIAN CAPITAL LETTER EB */\r
- /*3648*/ 0x010cc3, 1, 0x010c83, /* OLD HUNGARIAN CAPITAL LETTER AMB */\r
- /*3651*/ 0x010cc4, 1, 0x010c84, /* OLD HUNGARIAN CAPITAL LETTER EC */\r
- /*3654*/ 0x010cc5, 1, 0x010c85, /* OLD HUNGARIAN CAPITAL LETTER ENC */\r
- /*3657*/ 0x010cc6, 1, 0x010c86, /* OLD HUNGARIAN CAPITAL LETTER ECS */\r
- /*3660*/ 0x010cc7, 1, 0x010c87, /* OLD HUNGARIAN CAPITAL LETTER ED */\r
- /*3663*/ 0x010cc8, 1, 0x010c88, /* OLD HUNGARIAN CAPITAL LETTER AND */\r
- /*3666*/ 0x010cc9, 1, 0x010c89, /* OLD HUNGARIAN CAPITAL LETTER E */\r
- /*3669*/ 0x010cca, 1, 0x010c8a, /* OLD HUNGARIAN CAPITAL LETTER CLOS.. */\r
- /*3672*/ 0x010ccb, 1, 0x010c8b, /* OLD HUNGARIAN CAPITAL LETTER EE */\r
- /*3675*/ 0x010ccc, 1, 0x010c8c, /* OLD HUNGARIAN CAPITAL LETTER EF */\r
- /*3678*/ 0x010ccd, 1, 0x010c8d, /* OLD HUNGARIAN CAPITAL LETTER EG */\r
- /*3681*/ 0x010cce, 1, 0x010c8e, /* OLD HUNGARIAN CAPITAL LETTER EGY */\r
- /*3684*/ 0x010ccf, 1, 0x010c8f, /* OLD HUNGARIAN CAPITAL LETTER EH */\r
- /*3687*/ 0x010cd0, 1, 0x010c90, /* OLD HUNGARIAN CAPITAL LETTER I */\r
- /*3690*/ 0x010cd1, 1, 0x010c91, /* OLD HUNGARIAN CAPITAL LETTER II */\r
- /*3693*/ 0x010cd2, 1, 0x010c92, /* OLD HUNGARIAN CAPITAL LETTER EJ */\r
- /*3696*/ 0x010cd3, 1, 0x010c93, /* OLD HUNGARIAN CAPITAL LETTER EK */\r
- /*3699*/ 0x010cd4, 1, 0x010c94, /* OLD HUNGARIAN CAPITAL LETTER AK */\r
- /*3702*/ 0x010cd5, 1, 0x010c95, /* OLD HUNGARIAN CAPITAL LETTER UNK */\r
- /*3705*/ 0x010cd6, 1, 0x010c96, /* OLD HUNGARIAN CAPITAL LETTER EL */\r
- /*3708*/ 0x010cd7, 1, 0x010c97, /* OLD HUNGARIAN CAPITAL LETTER ELY */\r
- /*3711*/ 0x010cd8, 1, 0x010c98, /* OLD HUNGARIAN CAPITAL LETTER EM */\r
- /*3714*/ 0x010cd9, 1, 0x010c99, /* OLD HUNGARIAN CAPITAL LETTER EN */\r
- /*3717*/ 0x010cda, 1, 0x010c9a, /* OLD HUNGARIAN CAPITAL LETTER ENY */\r
- /*3720*/ 0x010cdb, 1, 0x010c9b, /* OLD HUNGARIAN CAPITAL LETTER O */\r
- /*3723*/ 0x010cdc, 1, 0x010c9c, /* OLD HUNGARIAN CAPITAL LETTER OO */\r
- /*3726*/ 0x010cdd, 1, 0x010c9d, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */\r
- /*3729*/ 0x010cde, 1, 0x010c9e, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */\r
- /*3732*/ 0x010cdf, 1, 0x010c9f, /* OLD HUNGARIAN CAPITAL LETTER OEE */\r
- /*3735*/ 0x010ce0, 1, 0x010ca0, /* OLD HUNGARIAN CAPITAL LETTER EP */\r
- /*3738*/ 0x010ce1, 1, 0x010ca1, /* OLD HUNGARIAN CAPITAL LETTER EMP */\r
- /*3741*/ 0x010ce2, 1, 0x010ca2, /* OLD HUNGARIAN CAPITAL LETTER ER */\r
- /*3744*/ 0x010ce3, 1, 0x010ca3, /* OLD HUNGARIAN CAPITAL LETTER SHOR.. */\r
- /*3747*/ 0x010ce4, 1, 0x010ca4, /* OLD HUNGARIAN CAPITAL LETTER ES */\r
- /*3750*/ 0x010ce5, 1, 0x010ca5, /* OLD HUNGARIAN CAPITAL LETTER ESZ */\r
- /*3753*/ 0x010ce6, 1, 0x010ca6, /* OLD HUNGARIAN CAPITAL LETTER ET */\r
- /*3756*/ 0x010ce7, 1, 0x010ca7, /* OLD HUNGARIAN CAPITAL LETTER ENT */\r
- /*3759*/ 0x010ce8, 1, 0x010ca8, /* OLD HUNGARIAN CAPITAL LETTER ETY */\r
- /*3762*/ 0x010ce9, 1, 0x010ca9, /* OLD HUNGARIAN CAPITAL LETTER ECH */\r
- /*3765*/ 0x010cea, 1, 0x010caa, /* OLD HUNGARIAN CAPITAL LETTER U */\r
- /*3768*/ 0x010ceb, 1, 0x010cab, /* OLD HUNGARIAN CAPITAL LETTER UU */\r
- /*3771*/ 0x010cec, 1, 0x010cac, /* OLD HUNGARIAN CAPITAL LETTER NIKO.. */\r
- /*3774*/ 0x010ced, 1, 0x010cad, /* OLD HUNGARIAN CAPITAL LETTER RUDI.. */\r
- /*3777*/ 0x010cee, 1, 0x010cae, /* OLD HUNGARIAN CAPITAL LETTER EV */\r
- /*3780*/ 0x010cef, 1, 0x010caf, /* OLD HUNGARIAN CAPITAL LETTER EZ */\r
- /*3783*/ 0x010cf0, 1, 0x010cb0, /* OLD HUNGARIAN CAPITAL LETTER EZS */\r
- /*3786*/ 0x010cf1, 1, 0x010cb1, /* OLD HUNGARIAN CAPITAL LETTER ENT-.. */\r
- /*3789*/ 0x010cf2, 1, 0x010cb2, /* OLD HUNGARIAN CAPITAL LETTER US */\r
- /*3792*/ 0x0118c0, 1, 0x0118a0, /* WARANG CITI CAPITAL LETTER NGAA */\r
- /*3795*/ 0x0118c1, 1, 0x0118a1, /* WARANG CITI CAPITAL LETTER A */\r
- /*3798*/ 0x0118c2, 1, 0x0118a2, /* WARANG CITI CAPITAL LETTER WI */\r
- /*3801*/ 0x0118c3, 1, 0x0118a3, /* WARANG CITI CAPITAL LETTER YU */\r
- /*3804*/ 0x0118c4, 1, 0x0118a4, /* WARANG CITI CAPITAL LETTER YA */\r
- /*3807*/ 0x0118c5, 1, 0x0118a5, /* WARANG CITI CAPITAL LETTER YO */\r
- /*3810*/ 0x0118c6, 1, 0x0118a6, /* WARANG CITI CAPITAL LETTER II */\r
- /*3813*/ 0x0118c7, 1, 0x0118a7, /* WARANG CITI CAPITAL LETTER UU */\r
- /*3816*/ 0x0118c8, 1, 0x0118a8, /* WARANG CITI CAPITAL LETTER E */\r
- /*3819*/ 0x0118c9, 1, 0x0118a9, /* WARANG CITI CAPITAL LETTER O */\r
- /*3822*/ 0x0118ca, 1, 0x0118aa, /* WARANG CITI CAPITAL LETTER ANG */\r
- /*3825*/ 0x0118cb, 1, 0x0118ab, /* WARANG CITI CAPITAL LETTER GA */\r
- /*3828*/ 0x0118cc, 1, 0x0118ac, /* WARANG CITI CAPITAL LETTER KO */\r
- /*3831*/ 0x0118cd, 1, 0x0118ad, /* WARANG CITI CAPITAL LETTER ENY */\r
- /*3834*/ 0x0118ce, 1, 0x0118ae, /* WARANG CITI CAPITAL LETTER YUJ */\r
- /*3837*/ 0x0118cf, 1, 0x0118af, /* WARANG CITI CAPITAL LETTER UC */\r
- /*3840*/ 0x0118d0, 1, 0x0118b0, /* WARANG CITI CAPITAL LETTER ENN */\r
- /*3843*/ 0x0118d1, 1, 0x0118b1, /* WARANG CITI CAPITAL LETTER ODD */\r
- /*3846*/ 0x0118d2, 1, 0x0118b2, /* WARANG CITI CAPITAL LETTER TTE */\r
- /*3849*/ 0x0118d3, 1, 0x0118b3, /* WARANG CITI CAPITAL LETTER NUNG */\r
- /*3852*/ 0x0118d4, 1, 0x0118b4, /* WARANG CITI CAPITAL LETTER DA */\r
- /*3855*/ 0x0118d5, 1, 0x0118b5, /* WARANG CITI CAPITAL LETTER AT */\r
- /*3858*/ 0x0118d6, 1, 0x0118b6, /* WARANG CITI CAPITAL LETTER AM */\r
- /*3861*/ 0x0118d7, 1, 0x0118b7, /* WARANG CITI CAPITAL LETTER BU */\r
- /*3864*/ 0x0118d8, 1, 0x0118b8, /* WARANG CITI CAPITAL LETTER PU */\r
- /*3867*/ 0x0118d9, 1, 0x0118b9, /* WARANG CITI CAPITAL LETTER HIYO */\r
- /*3870*/ 0x0118da, 1, 0x0118ba, /* WARANG CITI CAPITAL LETTER HOLO */\r
- /*3873*/ 0x0118db, 1, 0x0118bb, /* WARANG CITI CAPITAL LETTER HORR */\r
- /*3876*/ 0x0118dc, 1, 0x0118bc, /* WARANG CITI CAPITAL LETTER HAR */\r
- /*3879*/ 0x0118dd, 1, 0x0118bd, /* WARANG CITI CAPITAL LETTER SSUU */\r
- /*3882*/ 0x0118de, 1, 0x0118be, /* WARANG CITI CAPITAL LETTER SII */\r
- /*3885*/ 0x0118df, 1, 0x0118bf, /* WARANG CITI CAPITAL LETTER VIYO */\r
- /*3888*/ 0x016e60, 1, 0x016e40, /* MEDEFAIDRIN CAPITAL LETTER M */\r
- /*3891*/ 0x016e61, 1, 0x016e41, /* MEDEFAIDRIN CAPITAL LETTER S */\r
- /*3894*/ 0x016e62, 1, 0x016e42, /* MEDEFAIDRIN CAPITAL LETTER V */\r
- /*3897*/ 0x016e63, 1, 0x016e43, /* MEDEFAIDRIN CAPITAL LETTER W */\r
- /*3900*/ 0x016e64, 1, 0x016e44, /* MEDEFAIDRIN CAPITAL LETTER ATIU */\r
- /*3903*/ 0x016e65, 1, 0x016e45, /* MEDEFAIDRIN CAPITAL LETTER Z */\r
- /*3906*/ 0x016e66, 1, 0x016e46, /* MEDEFAIDRIN CAPITAL LETTER KP */\r
- /*3909*/ 0x016e67, 1, 0x016e47, /* MEDEFAIDRIN CAPITAL LETTER P */\r
- /*3912*/ 0x016e68, 1, 0x016e48, /* MEDEFAIDRIN CAPITAL LETTER T */\r
- /*3915*/ 0x016e69, 1, 0x016e49, /* MEDEFAIDRIN CAPITAL LETTER G */\r
- /*3918*/ 0x016e6a, 1, 0x016e4a, /* MEDEFAIDRIN CAPITAL LETTER F */\r
- /*3921*/ 0x016e6b, 1, 0x016e4b, /* MEDEFAIDRIN CAPITAL LETTER I */\r
- /*3924*/ 0x016e6c, 1, 0x016e4c, /* MEDEFAIDRIN CAPITAL LETTER K */\r
- /*3927*/ 0x016e6d, 1, 0x016e4d, /* MEDEFAIDRIN CAPITAL LETTER A */\r
- /*3930*/ 0x016e6e, 1, 0x016e4e, /* MEDEFAIDRIN CAPITAL LETTER J */\r
- /*3933*/ 0x016e6f, 1, 0x016e4f, /* MEDEFAIDRIN CAPITAL LETTER E */\r
- /*3936*/ 0x016e70, 1, 0x016e50, /* MEDEFAIDRIN CAPITAL LETTER B */\r
- /*3939*/ 0x016e71, 1, 0x016e51, /* MEDEFAIDRIN CAPITAL LETTER C */\r
- /*3942*/ 0x016e72, 1, 0x016e52, /* MEDEFAIDRIN CAPITAL LETTER U */\r
- /*3945*/ 0x016e73, 1, 0x016e53, /* MEDEFAIDRIN CAPITAL LETTER YU */\r
- /*3948*/ 0x016e74, 1, 0x016e54, /* MEDEFAIDRIN CAPITAL LETTER L */\r
- /*3951*/ 0x016e75, 1, 0x016e55, /* MEDEFAIDRIN CAPITAL LETTER Q */\r
- /*3954*/ 0x016e76, 1, 0x016e56, /* MEDEFAIDRIN CAPITAL LETTER HP */\r
- /*3957*/ 0x016e77, 1, 0x016e57, /* MEDEFAIDRIN CAPITAL LETTER NY */\r
- /*3960*/ 0x016e78, 1, 0x016e58, /* MEDEFAIDRIN CAPITAL LETTER X */\r
- /*3963*/ 0x016e79, 1, 0x016e59, /* MEDEFAIDRIN CAPITAL LETTER D */\r
- /*3966*/ 0x016e7a, 1, 0x016e5a, /* MEDEFAIDRIN CAPITAL LETTER OE */\r
- /*3969*/ 0x016e7b, 1, 0x016e5b, /* MEDEFAIDRIN CAPITAL LETTER N */\r
- /*3972*/ 0x016e7c, 1, 0x016e5c, /* MEDEFAIDRIN CAPITAL LETTER R */\r
- /*3975*/ 0x016e7d, 1, 0x016e5d, /* MEDEFAIDRIN CAPITAL LETTER O */\r
- /*3978*/ 0x016e7e, 1, 0x016e5e, /* MEDEFAIDRIN CAPITAL LETTER AI */\r
- /*3981*/ 0x016e7f, 1, 0x016e5f, /* MEDEFAIDRIN CAPITAL LETTER Y */\r
- /*3984*/ 0x01e922, 1, 0x01e900, /* ADLAM CAPITAL LETTER ALIF */\r
- /*3987*/ 0x01e923, 1, 0x01e901, /* ADLAM CAPITAL LETTER DAALI */\r
- /*3990*/ 0x01e924, 1, 0x01e902, /* ADLAM CAPITAL LETTER LAAM */\r
- /*3993*/ 0x01e925, 1, 0x01e903, /* ADLAM CAPITAL LETTER MIIM */\r
- /*3996*/ 0x01e926, 1, 0x01e904, /* ADLAM CAPITAL LETTER BA */\r
- /*3999*/ 0x01e927, 1, 0x01e905, /* ADLAM CAPITAL LETTER SINNYIIYHE */\r
- /*4002*/ 0x01e928, 1, 0x01e906, /* ADLAM CAPITAL LETTER PE */\r
- /*4005*/ 0x01e929, 1, 0x01e907, /* ADLAM CAPITAL LETTER BHE */\r
- /*4008*/ 0x01e92a, 1, 0x01e908, /* ADLAM CAPITAL LETTER RA */\r
- /*4011*/ 0x01e92b, 1, 0x01e909, /* ADLAM CAPITAL LETTER E */\r
- /*4014*/ 0x01e92c, 1, 0x01e90a, /* ADLAM CAPITAL LETTER FA */\r
- /*4017*/ 0x01e92d, 1, 0x01e90b, /* ADLAM CAPITAL LETTER I */\r
- /*4020*/ 0x01e92e, 1, 0x01e90c, /* ADLAM CAPITAL LETTER O */\r
- /*4023*/ 0x01e92f, 1, 0x01e90d, /* ADLAM CAPITAL LETTER DHA */\r
- /*4026*/ 0x01e930, 1, 0x01e90e, /* ADLAM CAPITAL LETTER YHE */\r
- /*4029*/ 0x01e931, 1, 0x01e90f, /* ADLAM CAPITAL LETTER WAW */\r
- /*4032*/ 0x01e932, 1, 0x01e910, /* ADLAM CAPITAL LETTER NUN */\r
- /*4035*/ 0x01e933, 1, 0x01e911, /* ADLAM CAPITAL LETTER KAF */\r
- /*4038*/ 0x01e934, 1, 0x01e912, /* ADLAM CAPITAL LETTER YA */\r
- /*4041*/ 0x01e935, 1, 0x01e913, /* ADLAM CAPITAL LETTER U */\r
- /*4044*/ 0x01e936, 1, 0x01e914, /* ADLAM CAPITAL LETTER JIIM */\r
- /*4047*/ 0x01e937, 1, 0x01e915, /* ADLAM CAPITAL LETTER CHI */\r
- /*4050*/ 0x01e938, 1, 0x01e916, /* ADLAM CAPITAL LETTER HA */\r
- /*4053*/ 0x01e939, 1, 0x01e917, /* ADLAM CAPITAL LETTER QAAF */\r
- /*4056*/ 0x01e93a, 1, 0x01e918, /* ADLAM CAPITAL LETTER GA */\r
- /*4059*/ 0x01e93b, 1, 0x01e919, /* ADLAM CAPITAL LETTER NYA */\r
- /*4062*/ 0x01e93c, 1, 0x01e91a, /* ADLAM CAPITAL LETTER TU */\r
- /*4065*/ 0x01e93d, 1, 0x01e91b, /* ADLAM CAPITAL LETTER NHA */\r
- /*4068*/ 0x01e93e, 1, 0x01e91c, /* ADLAM CAPITAL LETTER VA */\r
- /*4071*/ 0x01e93f, 1, 0x01e91d, /* ADLAM CAPITAL LETTER KHA */\r
- /*4074*/ 0x01e940, 1, 0x01e91e, /* ADLAM CAPITAL LETTER GBE */\r
- /*4077*/ 0x01e941, 1, 0x01e91f, /* ADLAM CAPITAL LETTER ZAL */\r
- /*4080*/ 0x01e942, 1, 0x01e920, /* ADLAM CAPITAL LETTER KPO */\r
- /*4083*/ 0x01e943, 1, 0x01e921, /* ADLAM CAPITAL LETTER SHA */\r
-#define FOLDS1_NORMAL_END_INDEX 4086\r
- /* ----- LOCALE ----- */\r
- /*4086*/ 0x0069, 1, 0x0049, /* LATIN CAPITAL LETTER I */\r
-#define FOLDS1_END_INDEX 4089\r
-};\r
-\r
-OnigCodePoint OnigUnicodeFolds2[] = {\r
- /* LATIN SMALL LETTER A WITH RIGHT HALF RING */\r
- /* 0*/ 0x0061, 0x02be, 1, 0x1e9a,\r
- /* LATIN SMALL LIGATURE FF */\r
- /* 4*/ 0x0066, 0x0066, 1, 0xfb00,\r
- /* LATIN SMALL LIGATURE FI */\r
- /* 8*/ 0x0066, 0x0069, 1, 0xfb01,\r
- /* LATIN SMALL LIGATURE FL */\r
- /* 12*/ 0x0066, 0x006c, 1, 0xfb02,\r
- /* LATIN SMALL LETTER H WITH LINE BELOW */\r
- /* 16*/ 0x0068, 0x0331, 1, 0x1e96,\r
- /* LATIN SMALL LETTER J WITH CARON */\r
- /* 20*/ 0x006a, 0x030c, 1, 0x01f0,\r
- /* LATIN SMALL LETTER SHARP S */\r
- /* 24*/ 0x0073, 0x0073, 2, 0x00df, 0x1e9e,\r
- /* LATIN SMALL LIGATURE LONG S T */\r
- /* 29*/ 0x0073, 0x0074, 2, 0xfb05, 0xfb06,\r
- /* LATIN SMALL LETTER T WITH DIAERESIS */\r
- /* 34*/ 0x0074, 0x0308, 1, 0x1e97,\r
- /* LATIN SMALL LETTER W WITH RING ABOVE */\r
- /* 38*/ 0x0077, 0x030a, 1, 0x1e98,\r
- /* LATIN SMALL LETTER Y WITH RING ABOVE */\r
- /* 42*/ 0x0079, 0x030a, 1, 0x1e99,\r
- /* LATIN SMALL LETTER N PRECEDED BY APOSTROPHE */\r
- /* 46*/ 0x02bc, 0x006e, 1, 0x0149,\r
- /* GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI */\r
- /* 50*/ 0x03ac, 0x03b9, 1, 0x1fb4,\r
- /* GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI */\r
- /* 54*/ 0x03ae, 0x03b9, 1, 0x1fc4,\r
- /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI */\r
- /* 58*/ 0x03b1, 0x0342, 1, 0x1fb6,\r
- /* GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI */\r
- /* 62*/ 0x03b1, 0x03b9, 2, 0x1fb3, 0x1fbc,\r
- /* GREEK SMALL LETTER ETA WITH PERISPOMENI */\r
- /* 67*/ 0x03b7, 0x0342, 1, 0x1fc6,\r
- /* GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI */\r
- /* 71*/ 0x03b7, 0x03b9, 2, 0x1fc3, 0x1fcc,\r
- /* GREEK SMALL LETTER IOTA WITH PERISPOMENI */\r
- /* 76*/ 0x03b9, 0x0342, 1, 0x1fd6,\r
- /* GREEK SMALL LETTER RHO WITH PSILI */\r
- /* 80*/ 0x03c1, 0x0313, 1, 0x1fe4,\r
- /* GREEK SMALL LETTER UPSILON WITH PSILI */\r
- /* 84*/ 0x03c5, 0x0313, 1, 0x1f50,\r
- /* GREEK SMALL LETTER UPSILON WITH PERISPOMENI */\r
- /* 88*/ 0x03c5, 0x0342, 1, 0x1fe6,\r
- /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI */\r
- /* 92*/ 0x03c9, 0x0342, 1, 0x1ff6,\r
- /* GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI */\r
- /* 96*/ 0x03c9, 0x03b9, 2, 0x1ff3, 0x1ffc,\r
- /* GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI */\r
- /* 101*/ 0x03ce, 0x03b9, 1, 0x1ff4,\r
- /* ARMENIAN SMALL LIGATURE ECH YIWN */\r
- /* 105*/ 0x0565, 0x0582, 1, 0x0587,\r
- /* ARMENIAN SMALL LIGATURE MEN ECH */\r
- /* 109*/ 0x0574, 0x0565, 1, 0xfb14,\r
- /* ARMENIAN SMALL LIGATURE MEN INI */\r
- /* 113*/ 0x0574, 0x056b, 1, 0xfb15,\r
- /* ARMENIAN SMALL LIGATURE MEN XEH */\r
- /* 117*/ 0x0574, 0x056d, 1, 0xfb17,\r
- /* ARMENIAN SMALL LIGATURE MEN NOW */\r
- /* 121*/ 0x0574, 0x0576, 1, 0xfb13,\r
- /* ARMENIAN SMALL LIGATURE VEW NOW */\r
- /* 125*/ 0x057e, 0x0576, 1, 0xfb16,\r
- /* GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI */\r
- /* 129*/ 0x1f00, 0x03b9, 2, 0x1f80, 0x1f88,\r
- /* GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI */\r
- /* 134*/ 0x1f01, 0x03b9, 2, 0x1f81, 0x1f89,\r
- /* GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI */\r
- /* 139*/ 0x1f02, 0x03b9, 2, 0x1f82, 0x1f8a,\r
- /* GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI */\r
- /* 144*/ 0x1f03, 0x03b9, 2, 0x1f83, 0x1f8b,\r
- /* GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI */\r
- /* 149*/ 0x1f04, 0x03b9, 2, 0x1f84, 0x1f8c,\r
- /* GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI */\r
- /* 154*/ 0x1f05, 0x03b9, 2, 0x1f85, 0x1f8d,\r
- /* GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 159*/ 0x1f06, 0x03b9, 2, 0x1f86, 0x1f8e,\r
- /* GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 164*/ 0x1f07, 0x03b9, 2, 0x1f87, 0x1f8f,\r
- /* GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI */\r
- /* 169*/ 0x1f20, 0x03b9, 2, 0x1f90, 0x1f98,\r
- /* GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI */\r
- /* 174*/ 0x1f21, 0x03b9, 2, 0x1f91, 0x1f99,\r
- /* GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI */\r
- /* 179*/ 0x1f22, 0x03b9, 2, 0x1f92, 0x1f9a,\r
- /* GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI */\r
- /* 184*/ 0x1f23, 0x03b9, 2, 0x1f93, 0x1f9b,\r
- /* GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI */\r
- /* 189*/ 0x1f24, 0x03b9, 2, 0x1f94, 0x1f9c,\r
- /* GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI */\r
- /* 194*/ 0x1f25, 0x03b9, 2, 0x1f95, 0x1f9d,\r
- /* GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 199*/ 0x1f26, 0x03b9, 2, 0x1f96, 0x1f9e,\r
- /* GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 204*/ 0x1f27, 0x03b9, 2, 0x1f97, 0x1f9f,\r
- /* GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI */\r
- /* 209*/ 0x1f60, 0x03b9, 2, 0x1fa0, 0x1fa8,\r
- /* GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI */\r
- /* 214*/ 0x1f61, 0x03b9, 2, 0x1fa1, 0x1fa9,\r
- /* GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI */\r
- /* 219*/ 0x1f62, 0x03b9, 2, 0x1fa2, 0x1faa,\r
- /* GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI */\r
- /* 224*/ 0x1f63, 0x03b9, 2, 0x1fa3, 0x1fab,\r
- /* GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI */\r
- /* 229*/ 0x1f64, 0x03b9, 2, 0x1fa4, 0x1fac,\r
- /* GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI */\r
- /* 234*/ 0x1f65, 0x03b9, 2, 0x1fa5, 0x1fad,\r
- /* GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 239*/ 0x1f66, 0x03b9, 2, 0x1fa6, 0x1fae,\r
- /* GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 244*/ 0x1f67, 0x03b9, 2, 0x1fa7, 0x1faf,\r
- /* GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI */\r
- /* 249*/ 0x1f70, 0x03b9, 1, 0x1fb2,\r
- /* GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI */\r
- /* 253*/ 0x1f74, 0x03b9, 1, 0x1fc2,\r
- /* GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI */\r
- /* 257*/ 0x1f7c, 0x03b9, 1, 0x1ff2,\r
-#define FOLDS2_NORMAL_END_INDEX 261\r
- /* ----- LOCALE ----- */\r
- /* LATIN CAPITAL LETTER I WITH DOT ABOVE */\r
- /* 261*/ 0x0069, 0x0307, 1, 0x0130,\r
-#define FOLDS2_END_INDEX 265\r
-};\r
-\r
-OnigCodePoint OnigUnicodeFolds3[] = {\r
- /* LATIN SMALL LIGATURE FFI */\r
- /* 0*/ 0x0066, 0x0066, 0x0069, 1, 0xfb03,\r
- /* LATIN SMALL LIGATURE FFL */\r
- /* 5*/ 0x0066, 0x0066, 0x006c, 1, 0xfb04,\r
- /* GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 10*/ 0x03b1, 0x0342, 0x03b9, 1, 0x1fb7,\r
- /* GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 15*/ 0x03b7, 0x0342, 0x03b9, 1, 0x1fc7,\r
- /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA */\r
- /* 20*/ 0x03b9, 0x0308, 0x0300, 1, 0x1fd2,\r
- /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */\r
- /* 25*/ 0x03b9, 0x0308, 0x0301, 2, 0x0390, 0x1fd3,\r
- /* GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI */\r
- /* 31*/ 0x03b9, 0x0308, 0x0342, 1, 0x1fd7,\r
- /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA */\r
- /* 36*/ 0x03c5, 0x0308, 0x0300, 1, 0x1fe2,\r
- /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */\r
- /* 41*/ 0x03c5, 0x0308, 0x0301, 2, 0x03b0, 0x1fe3,\r
- /* GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI */\r
- /* 47*/ 0x03c5, 0x0308, 0x0342, 1, 0x1fe7,\r
- /* GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA */\r
- /* 52*/ 0x03c5, 0x0313, 0x0300, 1, 0x1f52,\r
- /* GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA */\r
- /* 57*/ 0x03c5, 0x0313, 0x0301, 1, 0x1f54,\r
- /* GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI */\r
- /* 62*/ 0x03c5, 0x0313, 0x0342, 1, 0x1f56,\r
- /* GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI */\r
- /* 67*/ 0x03c9, 0x0342, 0x03b9, 1, 0x1ff7,\r
-#define FOLDS3_NORMAL_END_INDEX 72\r
- /* ----- LOCALE ----- */\r
-#define FOLDS3_END_INDEX 72\r
-};\r
+++ /dev/null
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool -N unicode_lookup_property_name --output-file gperf1.tmp unicode_property_data.gperf */\r
-/* Computed positions: -k'1-3,5-6,12,16,$' */\r
-\r
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \\r
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \\r
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \\r
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \\r
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \\r
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \\r
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \\r
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \\r
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \\r
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \\r
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \\r
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \\r
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \\r
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \\r
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \\r
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \\r
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \\r
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \\r
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \\r
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \\r
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \\r
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \\r
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))\r
-/* The character set is not based on ISO-646. */\r
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."\r
-#endif\r
-\r
-\r
-\r
-/* Generated by make_unicode_property_data.py. */\r
-\r
-\r
-/* PROPERTY: 'NEWLINE': POSIX [[:NEWLINE:]] */\r
-static const OnigCodePoint\r
-CR_NEWLINE[] = { 1,\r
-0x000a, 0x000a,\r
-}; /* END of CR_NEWLINE */\r
-\r
-/* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */\r
-static const OnigCodePoint\r
-CR_Alpha[] = { 679,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0345, 0x0345,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05b0, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0657,\r
-0x0659, 0x065f,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06e1, 0x06e8,\r
-0x06ed, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x073f,\r
-0x074d, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0817,\r
-0x081a, 0x082c,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d4, 0x08df,\r
-0x08e3, 0x08e9,\r
-0x08f0, 0x093b,\r
-0x093d, 0x094c,\r
-0x094e, 0x0950,\r
-0x0955, 0x0963,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09ce, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4c,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a70, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0af9, 0x0afc,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0c00, 0x0c03,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4c,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccc,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e46,\r
-0x0e4d, 0x0e4d,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb9,\r
-0x0ebb, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ecd, 0x0ecd,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f81,\r
-0x0f88, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x1000, 0x1036,\r
-0x1038, 0x1038,\r
-0x103b, 0x103f,\r
-0x1050, 0x108f,\r
-0x109a, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1713,\r
-0x1720, 0x1733,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17b3,\r
-0x17b6, 0x17c8,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x1938,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a61, 0x1a74,\r
-0x1aa7, 0x1aa7,\r
-0x1b00, 0x1b33,\r
-0x1b35, 0x1b43,\r
-0x1b45, 0x1b4b,\r
-0x1b80, 0x1ba9,\r
-0x1bac, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1be7, 0x1bf1,\r
-0x1c00, 0x1c36,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1de7, 0x1df4,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa674, 0xa67b,\r
-0xa67f, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa805,\r
-0xa807, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c3,\r
-0xa8c5, 0xa8c5,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8ff,\r
-0xa90a, 0xa92a,\r
-0xa930, 0xa952,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9b2,\r
-0xa9b4, 0xa9bf,\r
-0xa9cf, 0xa9cf,\r
-0xa9e0, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaabe,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf5,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11045,\r
-0x11082, 0x110b8,\r
-0x110d0, 0x110e8,\r
-0x11100, 0x11132,\r
-0x11144, 0x11146,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11180, 0x111bf,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11234,\r
-0x11237, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112e8,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134c,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11400, 0x11441,\r
-0x11443, 0x11445,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114c1,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115be,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x1163e,\r
-0x11640, 0x11640,\r
-0x11644, 0x11644,\r
-0x11680, 0x116b5,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172a,\r
-0x11800, 0x11838,\r
-0x118a0, 0x118df,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119df,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a32,\r
-0x11a35, 0x11a3e,\r
-0x11a50, 0x11a97,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c3e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d41,\r
-0x11d43, 0x11d43,\r
-0x11d46, 0x11d47,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d96,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9e, 0x1bc9e,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e947, 0x1e947,\r
-0x1e94b, 0x1e94b,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Alpha */\r
-\r
-/* PROPERTY: 'Blank': POSIX [[:Blank:]] */\r
-static const OnigCodePoint\r
-CR_Blank[] = { 8,\r
-0x0009, 0x0009,\r
-0x0020, 0x0020,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Blank */\r
-\r
-/* PROPERTY: 'Cntrl': POSIX [[:Cntrl:]] */\r
-static const OnigCodePoint\r
-CR_Cntrl[] = { 2,\r
-0x0000, 0x001f,\r
-0x007f, 0x009f,\r
-}; /* END of CR_Cntrl */\r
-\r
-/* PROPERTY: 'Digit': POSIX [[:Digit:]] */\r
-static const OnigCodePoint\r
-CR_Digit[] = { 59,\r
-0x0030, 0x0039,\r
-0x0660, 0x0669,\r
-0x06f0, 0x06f9,\r
-0x07c0, 0x07c9,\r
-0x0966, 0x096f,\r
-0x09e6, 0x09ef,\r
-0x0a66, 0x0a6f,\r
-0x0ae6, 0x0aef,\r
-0x0b66, 0x0b6f,\r
-0x0be6, 0x0bef,\r
-0x0c66, 0x0c6f,\r
-0x0ce6, 0x0cef,\r
-0x0d66, 0x0d6f,\r
-0x0de6, 0x0def,\r
-0x0e50, 0x0e59,\r
-0x0ed0, 0x0ed9,\r
-0x0f20, 0x0f29,\r
-0x1040, 0x1049,\r
-0x1090, 0x1099,\r
-0x17e0, 0x17e9,\r
-0x1810, 0x1819,\r
-0x1946, 0x194f,\r
-0x19d0, 0x19d9,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1b50, 0x1b59,\r
-0x1bb0, 0x1bb9,\r
-0x1c40, 0x1c49,\r
-0x1c50, 0x1c59,\r
-0xa620, 0xa629,\r
-0xa8d0, 0xa8d9,\r
-0xa900, 0xa909,\r
-0xa9d0, 0xa9d9,\r
-0xa9f0, 0xa9f9,\r
-0xaa50, 0xaa59,\r
-0xabf0, 0xabf9,\r
-0xff10, 0xff19,\r
-0x104a0, 0x104a9,\r
-0x10d30, 0x10d39,\r
-0x11066, 0x1106f,\r
-0x110f0, 0x110f9,\r
-0x11136, 0x1113f,\r
-0x111d0, 0x111d9,\r
-0x112f0, 0x112f9,\r
-0x11450, 0x11459,\r
-0x114d0, 0x114d9,\r
-0x11650, 0x11659,\r
-0x116c0, 0x116c9,\r
-0x11730, 0x11739,\r
-0x118e0, 0x118e9,\r
-0x11c50, 0x11c59,\r
-0x11d50, 0x11d59,\r
-0x11da0, 0x11da9,\r
-0x16a60, 0x16a69,\r
-0x16b50, 0x16b59,\r
-0x1d7ce, 0x1d7ff,\r
-0x1e140, 0x1e149,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e950, 0x1e959,\r
-}; /* END of CR_Digit */\r
-\r
-/* PROPERTY: 'Graph': POSIX [[:Graph:]] */\r
-static const OnigCodePoint\r
-CR_Graph[] = { 671,\r
-0x0021, 0x007e,\r
-0x00a1, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0600, 0x061c,\r
-0x061e, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x082d,\r
-0x0830, 0x083e,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e3a,\r
-0x0e3f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x167f,\r
-0x1681, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1736,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a1b,\r
-0x1a1e, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-0x1b80, 0x1bf3,\r
-0x1bfc, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd0, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x200b, 0x2027,\r
-0x202a, 0x202e,\r
-0x2030, 0x205e,\r
-0x2060, 0x2064,\r
-0x2066, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x20d0, 0x20f0,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3001, 0x303f,\r
-0x3041, 0x3096,\r
-0x3099, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-0xa8e0, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa980, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaac2,\r
-0xaadb, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xe000, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe00, 0xfe19,\r
-0xfe20, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x110c1,\r
-0x110cd, 0x110cd,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-0x11150, 0x11176,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-0x11a00, 0x11a47,\r
-0x11a50, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d1e8,\r
-0x1d200, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Graph */\r
-\r
-/* PROPERTY: 'Lower': POSIX [[:Lower:]] */\r
-static const OnigCodePoint\r
-CR_Lower[] = { 649,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00df, 0x00f6,\r
-0x00f8, 0x00ff,\r
-0x0101, 0x0101,\r
-0x0103, 0x0103,\r
-0x0105, 0x0105,\r
-0x0107, 0x0107,\r
-0x0109, 0x0109,\r
-0x010b, 0x010b,\r
-0x010d, 0x010d,\r
-0x010f, 0x010f,\r
-0x0111, 0x0111,\r
-0x0113, 0x0113,\r
-0x0115, 0x0115,\r
-0x0117, 0x0117,\r
-0x0119, 0x0119,\r
-0x011b, 0x011b,\r
-0x011d, 0x011d,\r
-0x011f, 0x011f,\r
-0x0121, 0x0121,\r
-0x0123, 0x0123,\r
-0x0125, 0x0125,\r
-0x0127, 0x0127,\r
-0x0129, 0x0129,\r
-0x012b, 0x012b,\r
-0x012d, 0x012d,\r
-0x012f, 0x012f,\r
-0x0131, 0x0131,\r
-0x0133, 0x0133,\r
-0x0135, 0x0135,\r
-0x0137, 0x0138,\r
-0x013a, 0x013a,\r
-0x013c, 0x013c,\r
-0x013e, 0x013e,\r
-0x0140, 0x0140,\r
-0x0142, 0x0142,\r
-0x0144, 0x0144,\r
-0x0146, 0x0146,\r
-0x0148, 0x0149,\r
-0x014b, 0x014b,\r
-0x014d, 0x014d,\r
-0x014f, 0x014f,\r
-0x0151, 0x0151,\r
-0x0153, 0x0153,\r
-0x0155, 0x0155,\r
-0x0157, 0x0157,\r
-0x0159, 0x0159,\r
-0x015b, 0x015b,\r
-0x015d, 0x015d,\r
-0x015f, 0x015f,\r
-0x0161, 0x0161,\r
-0x0163, 0x0163,\r
-0x0165, 0x0165,\r
-0x0167, 0x0167,\r
-0x0169, 0x0169,\r
-0x016b, 0x016b,\r
-0x016d, 0x016d,\r
-0x016f, 0x016f,\r
-0x0171, 0x0171,\r
-0x0173, 0x0173,\r
-0x0175, 0x0175,\r
-0x0177, 0x0177,\r
-0x017a, 0x017a,\r
-0x017c, 0x017c,\r
-0x017e, 0x0180,\r
-0x0183, 0x0183,\r
-0x0185, 0x0185,\r
-0x0188, 0x0188,\r
-0x018c, 0x018d,\r
-0x0192, 0x0192,\r
-0x0195, 0x0195,\r
-0x0199, 0x019b,\r
-0x019e, 0x019e,\r
-0x01a1, 0x01a1,\r
-0x01a3, 0x01a3,\r
-0x01a5, 0x01a5,\r
-0x01a8, 0x01a8,\r
-0x01aa, 0x01ab,\r
-0x01ad, 0x01ad,\r
-0x01b0, 0x01b0,\r
-0x01b4, 0x01b4,\r
-0x01b6, 0x01b6,\r
-0x01b9, 0x01ba,\r
-0x01bd, 0x01bf,\r
-0x01c6, 0x01c6,\r
-0x01c9, 0x01c9,\r
-0x01cc, 0x01cc,\r
-0x01ce, 0x01ce,\r
-0x01d0, 0x01d0,\r
-0x01d2, 0x01d2,\r
-0x01d4, 0x01d4,\r
-0x01d6, 0x01d6,\r
-0x01d8, 0x01d8,\r
-0x01da, 0x01da,\r
-0x01dc, 0x01dd,\r
-0x01df, 0x01df,\r
-0x01e1, 0x01e1,\r
-0x01e3, 0x01e3,\r
-0x01e5, 0x01e5,\r
-0x01e7, 0x01e7,\r
-0x01e9, 0x01e9,\r
-0x01eb, 0x01eb,\r
-0x01ed, 0x01ed,\r
-0x01ef, 0x01f0,\r
-0x01f3, 0x01f3,\r
-0x01f5, 0x01f5,\r
-0x01f9, 0x01f9,\r
-0x01fb, 0x01fb,\r
-0x01fd, 0x01fd,\r
-0x01ff, 0x01ff,\r
-0x0201, 0x0201,\r
-0x0203, 0x0203,\r
-0x0205, 0x0205,\r
-0x0207, 0x0207,\r
-0x0209, 0x0209,\r
-0x020b, 0x020b,\r
-0x020d, 0x020d,\r
-0x020f, 0x020f,\r
-0x0211, 0x0211,\r
-0x0213, 0x0213,\r
-0x0215, 0x0215,\r
-0x0217, 0x0217,\r
-0x0219, 0x0219,\r
-0x021b, 0x021b,\r
-0x021d, 0x021d,\r
-0x021f, 0x021f,\r
-0x0221, 0x0221,\r
-0x0223, 0x0223,\r
-0x0225, 0x0225,\r
-0x0227, 0x0227,\r
-0x0229, 0x0229,\r
-0x022b, 0x022b,\r
-0x022d, 0x022d,\r
-0x022f, 0x022f,\r
-0x0231, 0x0231,\r
-0x0233, 0x0239,\r
-0x023c, 0x023c,\r
-0x023f, 0x0240,\r
-0x0242, 0x0242,\r
-0x0247, 0x0247,\r
-0x0249, 0x0249,\r
-0x024b, 0x024b,\r
-0x024d, 0x024d,\r
-0x024f, 0x0293,\r
-0x0295, 0x02b8,\r
-0x02c0, 0x02c1,\r
-0x02e0, 0x02e4,\r
-0x0345, 0x0345,\r
-0x0371, 0x0371,\r
-0x0373, 0x0373,\r
-0x0377, 0x0377,\r
-0x037a, 0x037d,\r
-0x0390, 0x0390,\r
-0x03ac, 0x03ce,\r
-0x03d0, 0x03d1,\r
-0x03d5, 0x03d7,\r
-0x03d9, 0x03d9,\r
-0x03db, 0x03db,\r
-0x03dd, 0x03dd,\r
-0x03df, 0x03df,\r
-0x03e1, 0x03e1,\r
-0x03e3, 0x03e3,\r
-0x03e5, 0x03e5,\r
-0x03e7, 0x03e7,\r
-0x03e9, 0x03e9,\r
-0x03eb, 0x03eb,\r
-0x03ed, 0x03ed,\r
-0x03ef, 0x03f3,\r
-0x03f5, 0x03f5,\r
-0x03f8, 0x03f8,\r
-0x03fb, 0x03fc,\r
-0x0430, 0x045f,\r
-0x0461, 0x0461,\r
-0x0463, 0x0463,\r
-0x0465, 0x0465,\r
-0x0467, 0x0467,\r
-0x0469, 0x0469,\r
-0x046b, 0x046b,\r
-0x046d, 0x046d,\r
-0x046f, 0x046f,\r
-0x0471, 0x0471,\r
-0x0473, 0x0473,\r
-0x0475, 0x0475,\r
-0x0477, 0x0477,\r
-0x0479, 0x0479,\r
-0x047b, 0x047b,\r
-0x047d, 0x047d,\r
-0x047f, 0x047f,\r
-0x0481, 0x0481,\r
-0x048b, 0x048b,\r
-0x048d, 0x048d,\r
-0x048f, 0x048f,\r
-0x0491, 0x0491,\r
-0x0493, 0x0493,\r
-0x0495, 0x0495,\r
-0x0497, 0x0497,\r
-0x0499, 0x0499,\r
-0x049b, 0x049b,\r
-0x049d, 0x049d,\r
-0x049f, 0x049f,\r
-0x04a1, 0x04a1,\r
-0x04a3, 0x04a3,\r
-0x04a5, 0x04a5,\r
-0x04a7, 0x04a7,\r
-0x04a9, 0x04a9,\r
-0x04ab, 0x04ab,\r
-0x04ad, 0x04ad,\r
-0x04af, 0x04af,\r
-0x04b1, 0x04b1,\r
-0x04b3, 0x04b3,\r
-0x04b5, 0x04b5,\r
-0x04b7, 0x04b7,\r
-0x04b9, 0x04b9,\r
-0x04bb, 0x04bb,\r
-0x04bd, 0x04bd,\r
-0x04bf, 0x04bf,\r
-0x04c2, 0x04c2,\r
-0x04c4, 0x04c4,\r
-0x04c6, 0x04c6,\r
-0x04c8, 0x04c8,\r
-0x04ca, 0x04ca,\r
-0x04cc, 0x04cc,\r
-0x04ce, 0x04cf,\r
-0x04d1, 0x04d1,\r
-0x04d3, 0x04d3,\r
-0x04d5, 0x04d5,\r
-0x04d7, 0x04d7,\r
-0x04d9, 0x04d9,\r
-0x04db, 0x04db,\r
-0x04dd, 0x04dd,\r
-0x04df, 0x04df,\r
-0x04e1, 0x04e1,\r
-0x04e3, 0x04e3,\r
-0x04e5, 0x04e5,\r
-0x04e7, 0x04e7,\r
-0x04e9, 0x04e9,\r
-0x04eb, 0x04eb,\r
-0x04ed, 0x04ed,\r
-0x04ef, 0x04ef,\r
-0x04f1, 0x04f1,\r
-0x04f3, 0x04f3,\r
-0x04f5, 0x04f5,\r
-0x04f7, 0x04f7,\r
-0x04f9, 0x04f9,\r
-0x04fb, 0x04fb,\r
-0x04fd, 0x04fd,\r
-0x04ff, 0x04ff,\r
-0x0501, 0x0501,\r
-0x0503, 0x0503,\r
-0x0505, 0x0505,\r
-0x0507, 0x0507,\r
-0x0509, 0x0509,\r
-0x050b, 0x050b,\r
-0x050d, 0x050d,\r
-0x050f, 0x050f,\r
-0x0511, 0x0511,\r
-0x0513, 0x0513,\r
-0x0515, 0x0515,\r
-0x0517, 0x0517,\r
-0x0519, 0x0519,\r
-0x051b, 0x051b,\r
-0x051d, 0x051d,\r
-0x051f, 0x051f,\r
-0x0521, 0x0521,\r
-0x0523, 0x0523,\r
-0x0525, 0x0525,\r
-0x0527, 0x0527,\r
-0x0529, 0x0529,\r
-0x052b, 0x052b,\r
-0x052d, 0x052d,\r
-0x052f, 0x052f,\r
-0x0560, 0x0588,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1d00, 0x1dbf,\r
-0x1e01, 0x1e01,\r
-0x1e03, 0x1e03,\r
-0x1e05, 0x1e05,\r
-0x1e07, 0x1e07,\r
-0x1e09, 0x1e09,\r
-0x1e0b, 0x1e0b,\r
-0x1e0d, 0x1e0d,\r
-0x1e0f, 0x1e0f,\r
-0x1e11, 0x1e11,\r
-0x1e13, 0x1e13,\r
-0x1e15, 0x1e15,\r
-0x1e17, 0x1e17,\r
-0x1e19, 0x1e19,\r
-0x1e1b, 0x1e1b,\r
-0x1e1d, 0x1e1d,\r
-0x1e1f, 0x1e1f,\r
-0x1e21, 0x1e21,\r
-0x1e23, 0x1e23,\r
-0x1e25, 0x1e25,\r
-0x1e27, 0x1e27,\r
-0x1e29, 0x1e29,\r
-0x1e2b, 0x1e2b,\r
-0x1e2d, 0x1e2d,\r
-0x1e2f, 0x1e2f,\r
-0x1e31, 0x1e31,\r
-0x1e33, 0x1e33,\r
-0x1e35, 0x1e35,\r
-0x1e37, 0x1e37,\r
-0x1e39, 0x1e39,\r
-0x1e3b, 0x1e3b,\r
-0x1e3d, 0x1e3d,\r
-0x1e3f, 0x1e3f,\r
-0x1e41, 0x1e41,\r
-0x1e43, 0x1e43,\r
-0x1e45, 0x1e45,\r
-0x1e47, 0x1e47,\r
-0x1e49, 0x1e49,\r
-0x1e4b, 0x1e4b,\r
-0x1e4d, 0x1e4d,\r
-0x1e4f, 0x1e4f,\r
-0x1e51, 0x1e51,\r
-0x1e53, 0x1e53,\r
-0x1e55, 0x1e55,\r
-0x1e57, 0x1e57,\r
-0x1e59, 0x1e59,\r
-0x1e5b, 0x1e5b,\r
-0x1e5d, 0x1e5d,\r
-0x1e5f, 0x1e5f,\r
-0x1e61, 0x1e61,\r
-0x1e63, 0x1e63,\r
-0x1e65, 0x1e65,\r
-0x1e67, 0x1e67,\r
-0x1e69, 0x1e69,\r
-0x1e6b, 0x1e6b,\r
-0x1e6d, 0x1e6d,\r
-0x1e6f, 0x1e6f,\r
-0x1e71, 0x1e71,\r
-0x1e73, 0x1e73,\r
-0x1e75, 0x1e75,\r
-0x1e77, 0x1e77,\r
-0x1e79, 0x1e79,\r
-0x1e7b, 0x1e7b,\r
-0x1e7d, 0x1e7d,\r
-0x1e7f, 0x1e7f,\r
-0x1e81, 0x1e81,\r
-0x1e83, 0x1e83,\r
-0x1e85, 0x1e85,\r
-0x1e87, 0x1e87,\r
-0x1e89, 0x1e89,\r
-0x1e8b, 0x1e8b,\r
-0x1e8d, 0x1e8d,\r
-0x1e8f, 0x1e8f,\r
-0x1e91, 0x1e91,\r
-0x1e93, 0x1e93,\r
-0x1e95, 0x1e9d,\r
-0x1e9f, 0x1e9f,\r
-0x1ea1, 0x1ea1,\r
-0x1ea3, 0x1ea3,\r
-0x1ea5, 0x1ea5,\r
-0x1ea7, 0x1ea7,\r
-0x1ea9, 0x1ea9,\r
-0x1eab, 0x1eab,\r
-0x1ead, 0x1ead,\r
-0x1eaf, 0x1eaf,\r
-0x1eb1, 0x1eb1,\r
-0x1eb3, 0x1eb3,\r
-0x1eb5, 0x1eb5,\r
-0x1eb7, 0x1eb7,\r
-0x1eb9, 0x1eb9,\r
-0x1ebb, 0x1ebb,\r
-0x1ebd, 0x1ebd,\r
-0x1ebf, 0x1ebf,\r
-0x1ec1, 0x1ec1,\r
-0x1ec3, 0x1ec3,\r
-0x1ec5, 0x1ec5,\r
-0x1ec7, 0x1ec7,\r
-0x1ec9, 0x1ec9,\r
-0x1ecb, 0x1ecb,\r
-0x1ecd, 0x1ecd,\r
-0x1ecf, 0x1ecf,\r
-0x1ed1, 0x1ed1,\r
-0x1ed3, 0x1ed3,\r
-0x1ed5, 0x1ed5,\r
-0x1ed7, 0x1ed7,\r
-0x1ed9, 0x1ed9,\r
-0x1edb, 0x1edb,\r
-0x1edd, 0x1edd,\r
-0x1edf, 0x1edf,\r
-0x1ee1, 0x1ee1,\r
-0x1ee3, 0x1ee3,\r
-0x1ee5, 0x1ee5,\r
-0x1ee7, 0x1ee7,\r
-0x1ee9, 0x1ee9,\r
-0x1eeb, 0x1eeb,\r
-0x1eed, 0x1eed,\r
-0x1eef, 0x1eef,\r
-0x1ef1, 0x1ef1,\r
-0x1ef3, 0x1ef3,\r
-0x1ef5, 0x1ef5,\r
-0x1ef7, 0x1ef7,\r
-0x1ef9, 0x1ef9,\r
-0x1efb, 0x1efb,\r
-0x1efd, 0x1efd,\r
-0x1eff, 0x1f07,\r
-0x1f10, 0x1f15,\r
-0x1f20, 0x1f27,\r
-0x1f30, 0x1f37,\r
-0x1f40, 0x1f45,\r
-0x1f50, 0x1f57,\r
-0x1f60, 0x1f67,\r
-0x1f70, 0x1f7d,\r
-0x1f80, 0x1f87,\r
-0x1f90, 0x1f97,\r
-0x1fa0, 0x1fa7,\r
-0x1fb0, 0x1fb4,\r
-0x1fb6, 0x1fb7,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fc7,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fd7,\r
-0x1fe0, 0x1fe7,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ff7,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x210a, 0x210a,\r
-0x210e, 0x210f,\r
-0x2113, 0x2113,\r
-0x212f, 0x212f,\r
-0x2134, 0x2134,\r
-0x2139, 0x2139,\r
-0x213c, 0x213d,\r
-0x2146, 0x2149,\r
-0x214e, 0x214e,\r
-0x2170, 0x217f,\r
-0x2184, 0x2184,\r
-0x24d0, 0x24e9,\r
-0x2c30, 0x2c5e,\r
-0x2c61, 0x2c61,\r
-0x2c65, 0x2c66,\r
-0x2c68, 0x2c68,\r
-0x2c6a, 0x2c6a,\r
-0x2c6c, 0x2c6c,\r
-0x2c71, 0x2c71,\r
-0x2c73, 0x2c74,\r
-0x2c76, 0x2c7d,\r
-0x2c81, 0x2c81,\r
-0x2c83, 0x2c83,\r
-0x2c85, 0x2c85,\r
-0x2c87, 0x2c87,\r
-0x2c89, 0x2c89,\r
-0x2c8b, 0x2c8b,\r
-0x2c8d, 0x2c8d,\r
-0x2c8f, 0x2c8f,\r
-0x2c91, 0x2c91,\r
-0x2c93, 0x2c93,\r
-0x2c95, 0x2c95,\r
-0x2c97, 0x2c97,\r
-0x2c99, 0x2c99,\r
-0x2c9b, 0x2c9b,\r
-0x2c9d, 0x2c9d,\r
-0x2c9f, 0x2c9f,\r
-0x2ca1, 0x2ca1,\r
-0x2ca3, 0x2ca3,\r
-0x2ca5, 0x2ca5,\r
-0x2ca7, 0x2ca7,\r
-0x2ca9, 0x2ca9,\r
-0x2cab, 0x2cab,\r
-0x2cad, 0x2cad,\r
-0x2caf, 0x2caf,\r
-0x2cb1, 0x2cb1,\r
-0x2cb3, 0x2cb3,\r
-0x2cb5, 0x2cb5,\r
-0x2cb7, 0x2cb7,\r
-0x2cb9, 0x2cb9,\r
-0x2cbb, 0x2cbb,\r
-0x2cbd, 0x2cbd,\r
-0x2cbf, 0x2cbf,\r
-0x2cc1, 0x2cc1,\r
-0x2cc3, 0x2cc3,\r
-0x2cc5, 0x2cc5,\r
-0x2cc7, 0x2cc7,\r
-0x2cc9, 0x2cc9,\r
-0x2ccb, 0x2ccb,\r
-0x2ccd, 0x2ccd,\r
-0x2ccf, 0x2ccf,\r
-0x2cd1, 0x2cd1,\r
-0x2cd3, 0x2cd3,\r
-0x2cd5, 0x2cd5,\r
-0x2cd7, 0x2cd7,\r
-0x2cd9, 0x2cd9,\r
-0x2cdb, 0x2cdb,\r
-0x2cdd, 0x2cdd,\r
-0x2cdf, 0x2cdf,\r
-0x2ce1, 0x2ce1,\r
-0x2ce3, 0x2ce4,\r
-0x2cec, 0x2cec,\r
-0x2cee, 0x2cee,\r
-0x2cf3, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa641, 0xa641,\r
-0xa643, 0xa643,\r
-0xa645, 0xa645,\r
-0xa647, 0xa647,\r
-0xa649, 0xa649,\r
-0xa64b, 0xa64b,\r
-0xa64d, 0xa64d,\r
-0xa64f, 0xa64f,\r
-0xa651, 0xa651,\r
-0xa653, 0xa653,\r
-0xa655, 0xa655,\r
-0xa657, 0xa657,\r
-0xa659, 0xa659,\r
-0xa65b, 0xa65b,\r
-0xa65d, 0xa65d,\r
-0xa65f, 0xa65f,\r
-0xa661, 0xa661,\r
-0xa663, 0xa663,\r
-0xa665, 0xa665,\r
-0xa667, 0xa667,\r
-0xa669, 0xa669,\r
-0xa66b, 0xa66b,\r
-0xa66d, 0xa66d,\r
-0xa681, 0xa681,\r
-0xa683, 0xa683,\r
-0xa685, 0xa685,\r
-0xa687, 0xa687,\r
-0xa689, 0xa689,\r
-0xa68b, 0xa68b,\r
-0xa68d, 0xa68d,\r
-0xa68f, 0xa68f,\r
-0xa691, 0xa691,\r
-0xa693, 0xa693,\r
-0xa695, 0xa695,\r
-0xa697, 0xa697,\r
-0xa699, 0xa699,\r
-0xa69b, 0xa69d,\r
-0xa723, 0xa723,\r
-0xa725, 0xa725,\r
-0xa727, 0xa727,\r
-0xa729, 0xa729,\r
-0xa72b, 0xa72b,\r
-0xa72d, 0xa72d,\r
-0xa72f, 0xa731,\r
-0xa733, 0xa733,\r
-0xa735, 0xa735,\r
-0xa737, 0xa737,\r
-0xa739, 0xa739,\r
-0xa73b, 0xa73b,\r
-0xa73d, 0xa73d,\r
-0xa73f, 0xa73f,\r
-0xa741, 0xa741,\r
-0xa743, 0xa743,\r
-0xa745, 0xa745,\r
-0xa747, 0xa747,\r
-0xa749, 0xa749,\r
-0xa74b, 0xa74b,\r
-0xa74d, 0xa74d,\r
-0xa74f, 0xa74f,\r
-0xa751, 0xa751,\r
-0xa753, 0xa753,\r
-0xa755, 0xa755,\r
-0xa757, 0xa757,\r
-0xa759, 0xa759,\r
-0xa75b, 0xa75b,\r
-0xa75d, 0xa75d,\r
-0xa75f, 0xa75f,\r
-0xa761, 0xa761,\r
-0xa763, 0xa763,\r
-0xa765, 0xa765,\r
-0xa767, 0xa767,\r
-0xa769, 0xa769,\r
-0xa76b, 0xa76b,\r
-0xa76d, 0xa76d,\r
-0xa76f, 0xa778,\r
-0xa77a, 0xa77a,\r
-0xa77c, 0xa77c,\r
-0xa77f, 0xa77f,\r
-0xa781, 0xa781,\r
-0xa783, 0xa783,\r
-0xa785, 0xa785,\r
-0xa787, 0xa787,\r
-0xa78c, 0xa78c,\r
-0xa78e, 0xa78e,\r
-0xa791, 0xa791,\r
-0xa793, 0xa795,\r
-0xa797, 0xa797,\r
-0xa799, 0xa799,\r
-0xa79b, 0xa79b,\r
-0xa79d, 0xa79d,\r
-0xa79f, 0xa79f,\r
-0xa7a1, 0xa7a1,\r
-0xa7a3, 0xa7a3,\r
-0xa7a5, 0xa7a5,\r
-0xa7a7, 0xa7a7,\r
-0xa7a9, 0xa7a9,\r
-0xa7af, 0xa7af,\r
-0xa7b5, 0xa7b5,\r
-0xa7b7, 0xa7b7,\r
-0xa7b9, 0xa7b9,\r
-0xa7bb, 0xa7bb,\r
-0xa7bd, 0xa7bd,\r
-0xa7bf, 0xa7bf,\r
-0xa7c3, 0xa7c3,\r
-0xa7f8, 0xa7fa,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff41, 0xff5a,\r
-0x10428, 0x1044f,\r
-0x104d8, 0x104fb,\r
-0x10cc0, 0x10cf2,\r
-0x118c0, 0x118df,\r
-0x16e60, 0x16e7f,\r
-0x1d41a, 0x1d433,\r
-0x1d44e, 0x1d454,\r
-0x1d456, 0x1d467,\r
-0x1d482, 0x1d49b,\r
-0x1d4b6, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d4cf,\r
-0x1d4ea, 0x1d503,\r
-0x1d51e, 0x1d537,\r
-0x1d552, 0x1d56b,\r
-0x1d586, 0x1d59f,\r
-0x1d5ba, 0x1d5d3,\r
-0x1d5ee, 0x1d607,\r
-0x1d622, 0x1d63b,\r
-0x1d656, 0x1d66f,\r
-0x1d68a, 0x1d6a5,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6e1,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d71b,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d755,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d78f,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7c9,\r
-0x1d7cb, 0x1d7cb,\r
-0x1e922, 0x1e943,\r
-}; /* END of CR_Lower */\r
-\r
-/* PROPERTY: 'Print': POSIX [[:Print:]] */\r
-static const OnigCodePoint\r
-CR_Print[] = { 668,\r
-0x0020, 0x007e,\r
-0x00a0, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0600, 0x061c,\r
-0x061e, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x082d,\r
-0x0830, 0x083e,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e3a,\r
-0x0e3f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1736,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a1b,\r
-0x1a1e, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-0x1b80, 0x1bf3,\r
-0x1bfc, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd0, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x2000, 0x2027,\r
-0x202a, 0x2064,\r
-0x2066, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x20d0, 0x20f0,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3000, 0x303f,\r
-0x3041, 0x3096,\r
-0x3099, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-0xa8e0, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa980, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaac2,\r
-0xaadb, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xe000, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe00, 0xfe19,\r
-0xfe20, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x110c1,\r
-0x110cd, 0x110cd,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-0x11150, 0x11176,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-0x11a00, 0x11a47,\r
-0x11a50, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d1e8,\r
-0x1d200, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Print */\r
-\r
-/* PROPERTY: 'Punct': POSIX [[:Punct:]] */\r
-static const OnigCodePoint\r
-CR_Punct[] = { 182,\r
-0x0021, 0x0023,\r
-0x0025, 0x002a,\r
-0x002c, 0x002f,\r
-0x003a, 0x003b,\r
-0x003f, 0x0040,\r
-0x005b, 0x005d,\r
-0x005f, 0x005f,\r
-0x007b, 0x007b,\r
-0x007d, 0x007d,\r
-0x00a1, 0x00a1,\r
-0x00a7, 0x00a7,\r
-0x00ab, 0x00ab,\r
-0x00b6, 0x00b7,\r
-0x00bb, 0x00bb,\r
-0x00bf, 0x00bf,\r
-0x037e, 0x037e,\r
-0x0387, 0x0387,\r
-0x055a, 0x055f,\r
-0x0589, 0x058a,\r
-0x05be, 0x05be,\r
-0x05c0, 0x05c0,\r
-0x05c3, 0x05c3,\r
-0x05c6, 0x05c6,\r
-0x05f3, 0x05f4,\r
-0x0609, 0x060a,\r
-0x060c, 0x060d,\r
-0x061b, 0x061b,\r
-0x061e, 0x061f,\r
-0x066a, 0x066d,\r
-0x06d4, 0x06d4,\r
-0x0700, 0x070d,\r
-0x07f7, 0x07f9,\r
-0x0830, 0x083e,\r
-0x085e, 0x085e,\r
-0x0964, 0x0965,\r
-0x0970, 0x0970,\r
-0x09fd, 0x09fd,\r
-0x0a76, 0x0a76,\r
-0x0af0, 0x0af0,\r
-0x0c77, 0x0c77,\r
-0x0c84, 0x0c84,\r
-0x0df4, 0x0df4,\r
-0x0e4f, 0x0e4f,\r
-0x0e5a, 0x0e5b,\r
-0x0f04, 0x0f12,\r
-0x0f14, 0x0f14,\r
-0x0f3a, 0x0f3d,\r
-0x0f85, 0x0f85,\r
-0x0fd0, 0x0fd4,\r
-0x0fd9, 0x0fda,\r
-0x104a, 0x104f,\r
-0x10fb, 0x10fb,\r
-0x1360, 0x1368,\r
-0x1400, 0x1400,\r
-0x166e, 0x166e,\r
-0x169b, 0x169c,\r
-0x16eb, 0x16ed,\r
-0x1735, 0x1736,\r
-0x17d4, 0x17d6,\r
-0x17d8, 0x17da,\r
-0x1800, 0x180a,\r
-0x1944, 0x1945,\r
-0x1a1e, 0x1a1f,\r
-0x1aa0, 0x1aa6,\r
-0x1aa8, 0x1aad,\r
-0x1b5a, 0x1b60,\r
-0x1bfc, 0x1bff,\r
-0x1c3b, 0x1c3f,\r
-0x1c7e, 0x1c7f,\r
-0x1cc0, 0x1cc7,\r
-0x1cd3, 0x1cd3,\r
-0x2010, 0x2027,\r
-0x2030, 0x2043,\r
-0x2045, 0x2051,\r
-0x2053, 0x205e,\r
-0x207d, 0x207e,\r
-0x208d, 0x208e,\r
-0x2308, 0x230b,\r
-0x2329, 0x232a,\r
-0x2768, 0x2775,\r
-0x27c5, 0x27c6,\r
-0x27e6, 0x27ef,\r
-0x2983, 0x2998,\r
-0x29d8, 0x29db,\r
-0x29fc, 0x29fd,\r
-0x2cf9, 0x2cfc,\r
-0x2cfe, 0x2cff,\r
-0x2d70, 0x2d70,\r
-0x2e00, 0x2e2e,\r
-0x2e30, 0x2e4f,\r
-0x3001, 0x3003,\r
-0x3008, 0x3011,\r
-0x3014, 0x301f,\r
-0x3030, 0x3030,\r
-0x303d, 0x303d,\r
-0x30a0, 0x30a0,\r
-0x30fb, 0x30fb,\r
-0xa4fe, 0xa4ff,\r
-0xa60d, 0xa60f,\r
-0xa673, 0xa673,\r
-0xa67e, 0xa67e,\r
-0xa6f2, 0xa6f7,\r
-0xa874, 0xa877,\r
-0xa8ce, 0xa8cf,\r
-0xa8f8, 0xa8fa,\r
-0xa8fc, 0xa8fc,\r
-0xa92e, 0xa92f,\r
-0xa95f, 0xa95f,\r
-0xa9c1, 0xa9cd,\r
-0xa9de, 0xa9df,\r
-0xaa5c, 0xaa5f,\r
-0xaade, 0xaadf,\r
-0xaaf0, 0xaaf1,\r
-0xabeb, 0xabeb,\r
-0xfd3e, 0xfd3f,\r
-0xfe10, 0xfe19,\r
-0xfe30, 0xfe52,\r
-0xfe54, 0xfe61,\r
-0xfe63, 0xfe63,\r
-0xfe68, 0xfe68,\r
-0xfe6a, 0xfe6b,\r
-0xff01, 0xff03,\r
-0xff05, 0xff0a,\r
-0xff0c, 0xff0f,\r
-0xff1a, 0xff1b,\r
-0xff1f, 0xff20,\r
-0xff3b, 0xff3d,\r
-0xff3f, 0xff3f,\r
-0xff5b, 0xff5b,\r
-0xff5d, 0xff5d,\r
-0xff5f, 0xff65,\r
-0x10100, 0x10102,\r
-0x1039f, 0x1039f,\r
-0x103d0, 0x103d0,\r
-0x1056f, 0x1056f,\r
-0x10857, 0x10857,\r
-0x1091f, 0x1091f,\r
-0x1093f, 0x1093f,\r
-0x10a50, 0x10a58,\r
-0x10a7f, 0x10a7f,\r
-0x10af0, 0x10af6,\r
-0x10b39, 0x10b3f,\r
-0x10b99, 0x10b9c,\r
-0x10f55, 0x10f59,\r
-0x11047, 0x1104d,\r
-0x110bb, 0x110bc,\r
-0x110be, 0x110c1,\r
-0x11140, 0x11143,\r
-0x11174, 0x11175,\r
-0x111c5, 0x111c8,\r
-0x111cd, 0x111cd,\r
-0x111db, 0x111db,\r
-0x111dd, 0x111df,\r
-0x11238, 0x1123d,\r
-0x112a9, 0x112a9,\r
-0x1144b, 0x1144f,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145d,\r
-0x114c6, 0x114c6,\r
-0x115c1, 0x115d7,\r
-0x11641, 0x11643,\r
-0x11660, 0x1166c,\r
-0x1173c, 0x1173e,\r
-0x1183b, 0x1183b,\r
-0x119e2, 0x119e2,\r
-0x11a3f, 0x11a46,\r
-0x11a9a, 0x11a9c,\r
-0x11a9e, 0x11aa2,\r
-0x11c41, 0x11c45,\r
-0x11c70, 0x11c71,\r
-0x11ef7, 0x11ef8,\r
-0x11fff, 0x11fff,\r
-0x12470, 0x12474,\r
-0x16a6e, 0x16a6f,\r
-0x16af5, 0x16af5,\r
-0x16b37, 0x16b3b,\r
-0x16b44, 0x16b44,\r
-0x16e97, 0x16e9a,\r
-0x16fe2, 0x16fe2,\r
-0x1bc9f, 0x1bc9f,\r
-0x1da87, 0x1da8b,\r
-0x1e95e, 0x1e95f,\r
-}; /* END of CR_Punct */\r
-\r
-/* PROPERTY: 'Space': POSIX [[:Space:]] */\r
-static const OnigCodePoint\r
-CR_Space[] = { 10,\r
-0x0009, 0x000d,\r
-0x0020, 0x0020,\r
-0x0085, 0x0085,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x2028, 0x2029,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Space */\r
-\r
-/* PROPERTY: 'Upper': POSIX [[:Upper:]] */\r
-static const OnigCodePoint\r
-CR_Upper[] = { 641,\r
-0x0041, 0x005a,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00de,\r
-0x0100, 0x0100,\r
-0x0102, 0x0102,\r
-0x0104, 0x0104,\r
-0x0106, 0x0106,\r
-0x0108, 0x0108,\r
-0x010a, 0x010a,\r
-0x010c, 0x010c,\r
-0x010e, 0x010e,\r
-0x0110, 0x0110,\r
-0x0112, 0x0112,\r
-0x0114, 0x0114,\r
-0x0116, 0x0116,\r
-0x0118, 0x0118,\r
-0x011a, 0x011a,\r
-0x011c, 0x011c,\r
-0x011e, 0x011e,\r
-0x0120, 0x0120,\r
-0x0122, 0x0122,\r
-0x0124, 0x0124,\r
-0x0126, 0x0126,\r
-0x0128, 0x0128,\r
-0x012a, 0x012a,\r
-0x012c, 0x012c,\r
-0x012e, 0x012e,\r
-0x0130, 0x0130,\r
-0x0132, 0x0132,\r
-0x0134, 0x0134,\r
-0x0136, 0x0136,\r
-0x0139, 0x0139,\r
-0x013b, 0x013b,\r
-0x013d, 0x013d,\r
-0x013f, 0x013f,\r
-0x0141, 0x0141,\r
-0x0143, 0x0143,\r
-0x0145, 0x0145,\r
-0x0147, 0x0147,\r
-0x014a, 0x014a,\r
-0x014c, 0x014c,\r
-0x014e, 0x014e,\r
-0x0150, 0x0150,\r
-0x0152, 0x0152,\r
-0x0154, 0x0154,\r
-0x0156, 0x0156,\r
-0x0158, 0x0158,\r
-0x015a, 0x015a,\r
-0x015c, 0x015c,\r
-0x015e, 0x015e,\r
-0x0160, 0x0160,\r
-0x0162, 0x0162,\r
-0x0164, 0x0164,\r
-0x0166, 0x0166,\r
-0x0168, 0x0168,\r
-0x016a, 0x016a,\r
-0x016c, 0x016c,\r
-0x016e, 0x016e,\r
-0x0170, 0x0170,\r
-0x0172, 0x0172,\r
-0x0174, 0x0174,\r
-0x0176, 0x0176,\r
-0x0178, 0x0179,\r
-0x017b, 0x017b,\r
-0x017d, 0x017d,\r
-0x0181, 0x0182,\r
-0x0184, 0x0184,\r
-0x0186, 0x0187,\r
-0x0189, 0x018b,\r
-0x018e, 0x0191,\r
-0x0193, 0x0194,\r
-0x0196, 0x0198,\r
-0x019c, 0x019d,\r
-0x019f, 0x01a0,\r
-0x01a2, 0x01a2,\r
-0x01a4, 0x01a4,\r
-0x01a6, 0x01a7,\r
-0x01a9, 0x01a9,\r
-0x01ac, 0x01ac,\r
-0x01ae, 0x01af,\r
-0x01b1, 0x01b3,\r
-0x01b5, 0x01b5,\r
-0x01b7, 0x01b8,\r
-0x01bc, 0x01bc,\r
-0x01c4, 0x01c4,\r
-0x01c7, 0x01c7,\r
-0x01ca, 0x01ca,\r
-0x01cd, 0x01cd,\r
-0x01cf, 0x01cf,\r
-0x01d1, 0x01d1,\r
-0x01d3, 0x01d3,\r
-0x01d5, 0x01d5,\r
-0x01d7, 0x01d7,\r
-0x01d9, 0x01d9,\r
-0x01db, 0x01db,\r
-0x01de, 0x01de,\r
-0x01e0, 0x01e0,\r
-0x01e2, 0x01e2,\r
-0x01e4, 0x01e4,\r
-0x01e6, 0x01e6,\r
-0x01e8, 0x01e8,\r
-0x01ea, 0x01ea,\r
-0x01ec, 0x01ec,\r
-0x01ee, 0x01ee,\r
-0x01f1, 0x01f1,\r
-0x01f4, 0x01f4,\r
-0x01f6, 0x01f8,\r
-0x01fa, 0x01fa,\r
-0x01fc, 0x01fc,\r
-0x01fe, 0x01fe,\r
-0x0200, 0x0200,\r
-0x0202, 0x0202,\r
-0x0204, 0x0204,\r
-0x0206, 0x0206,\r
-0x0208, 0x0208,\r
-0x020a, 0x020a,\r
-0x020c, 0x020c,\r
-0x020e, 0x020e,\r
-0x0210, 0x0210,\r
-0x0212, 0x0212,\r
-0x0214, 0x0214,\r
-0x0216, 0x0216,\r
-0x0218, 0x0218,\r
-0x021a, 0x021a,\r
-0x021c, 0x021c,\r
-0x021e, 0x021e,\r
-0x0220, 0x0220,\r
-0x0222, 0x0222,\r
-0x0224, 0x0224,\r
-0x0226, 0x0226,\r
-0x0228, 0x0228,\r
-0x022a, 0x022a,\r
-0x022c, 0x022c,\r
-0x022e, 0x022e,\r
-0x0230, 0x0230,\r
-0x0232, 0x0232,\r
-0x023a, 0x023b,\r
-0x023d, 0x023e,\r
-0x0241, 0x0241,\r
-0x0243, 0x0246,\r
-0x0248, 0x0248,\r
-0x024a, 0x024a,\r
-0x024c, 0x024c,\r
-0x024e, 0x024e,\r
-0x0370, 0x0370,\r
-0x0372, 0x0372,\r
-0x0376, 0x0376,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x038f,\r
-0x0391, 0x03a1,\r
-0x03a3, 0x03ab,\r
-0x03cf, 0x03cf,\r
-0x03d2, 0x03d4,\r
-0x03d8, 0x03d8,\r
-0x03da, 0x03da,\r
-0x03dc, 0x03dc,\r
-0x03de, 0x03de,\r
-0x03e0, 0x03e0,\r
-0x03e2, 0x03e2,\r
-0x03e4, 0x03e4,\r
-0x03e6, 0x03e6,\r
-0x03e8, 0x03e8,\r
-0x03ea, 0x03ea,\r
-0x03ec, 0x03ec,\r
-0x03ee, 0x03ee,\r
-0x03f4, 0x03f4,\r
-0x03f7, 0x03f7,\r
-0x03f9, 0x03fa,\r
-0x03fd, 0x042f,\r
-0x0460, 0x0460,\r
-0x0462, 0x0462,\r
-0x0464, 0x0464,\r
-0x0466, 0x0466,\r
-0x0468, 0x0468,\r
-0x046a, 0x046a,\r
-0x046c, 0x046c,\r
-0x046e, 0x046e,\r
-0x0470, 0x0470,\r
-0x0472, 0x0472,\r
-0x0474, 0x0474,\r
-0x0476, 0x0476,\r
-0x0478, 0x0478,\r
-0x047a, 0x047a,\r
-0x047c, 0x047c,\r
-0x047e, 0x047e,\r
-0x0480, 0x0480,\r
-0x048a, 0x048a,\r
-0x048c, 0x048c,\r
-0x048e, 0x048e,\r
-0x0490, 0x0490,\r
-0x0492, 0x0492,\r
-0x0494, 0x0494,\r
-0x0496, 0x0496,\r
-0x0498, 0x0498,\r
-0x049a, 0x049a,\r
-0x049c, 0x049c,\r
-0x049e, 0x049e,\r
-0x04a0, 0x04a0,\r
-0x04a2, 0x04a2,\r
-0x04a4, 0x04a4,\r
-0x04a6, 0x04a6,\r
-0x04a8, 0x04a8,\r
-0x04aa, 0x04aa,\r
-0x04ac, 0x04ac,\r
-0x04ae, 0x04ae,\r
-0x04b0, 0x04b0,\r
-0x04b2, 0x04b2,\r
-0x04b4, 0x04b4,\r
-0x04b6, 0x04b6,\r
-0x04b8, 0x04b8,\r
-0x04ba, 0x04ba,\r
-0x04bc, 0x04bc,\r
-0x04be, 0x04be,\r
-0x04c0, 0x04c1,\r
-0x04c3, 0x04c3,\r
-0x04c5, 0x04c5,\r
-0x04c7, 0x04c7,\r
-0x04c9, 0x04c9,\r
-0x04cb, 0x04cb,\r
-0x04cd, 0x04cd,\r
-0x04d0, 0x04d0,\r
-0x04d2, 0x04d2,\r
-0x04d4, 0x04d4,\r
-0x04d6, 0x04d6,\r
-0x04d8, 0x04d8,\r
-0x04da, 0x04da,\r
-0x04dc, 0x04dc,\r
-0x04de, 0x04de,\r
-0x04e0, 0x04e0,\r
-0x04e2, 0x04e2,\r
-0x04e4, 0x04e4,\r
-0x04e6, 0x04e6,\r
-0x04e8, 0x04e8,\r
-0x04ea, 0x04ea,\r
-0x04ec, 0x04ec,\r
-0x04ee, 0x04ee,\r
-0x04f0, 0x04f0,\r
-0x04f2, 0x04f2,\r
-0x04f4, 0x04f4,\r
-0x04f6, 0x04f6,\r
-0x04f8, 0x04f8,\r
-0x04fa, 0x04fa,\r
-0x04fc, 0x04fc,\r
-0x04fe, 0x04fe,\r
-0x0500, 0x0500,\r
-0x0502, 0x0502,\r
-0x0504, 0x0504,\r
-0x0506, 0x0506,\r
-0x0508, 0x0508,\r
-0x050a, 0x050a,\r
-0x050c, 0x050c,\r
-0x050e, 0x050e,\r
-0x0510, 0x0510,\r
-0x0512, 0x0512,\r
-0x0514, 0x0514,\r
-0x0516, 0x0516,\r
-0x0518, 0x0518,\r
-0x051a, 0x051a,\r
-0x051c, 0x051c,\r
-0x051e, 0x051e,\r
-0x0520, 0x0520,\r
-0x0522, 0x0522,\r
-0x0524, 0x0524,\r
-0x0526, 0x0526,\r
-0x0528, 0x0528,\r
-0x052a, 0x052a,\r
-0x052c, 0x052c,\r
-0x052e, 0x052e,\r
-0x0531, 0x0556,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x13a0, 0x13f5,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1e00, 0x1e00,\r
-0x1e02, 0x1e02,\r
-0x1e04, 0x1e04,\r
-0x1e06, 0x1e06,\r
-0x1e08, 0x1e08,\r
-0x1e0a, 0x1e0a,\r
-0x1e0c, 0x1e0c,\r
-0x1e0e, 0x1e0e,\r
-0x1e10, 0x1e10,\r
-0x1e12, 0x1e12,\r
-0x1e14, 0x1e14,\r
-0x1e16, 0x1e16,\r
-0x1e18, 0x1e18,\r
-0x1e1a, 0x1e1a,\r
-0x1e1c, 0x1e1c,\r
-0x1e1e, 0x1e1e,\r
-0x1e20, 0x1e20,\r
-0x1e22, 0x1e22,\r
-0x1e24, 0x1e24,\r
-0x1e26, 0x1e26,\r
-0x1e28, 0x1e28,\r
-0x1e2a, 0x1e2a,\r
-0x1e2c, 0x1e2c,\r
-0x1e2e, 0x1e2e,\r
-0x1e30, 0x1e30,\r
-0x1e32, 0x1e32,\r
-0x1e34, 0x1e34,\r
-0x1e36, 0x1e36,\r
-0x1e38, 0x1e38,\r
-0x1e3a, 0x1e3a,\r
-0x1e3c, 0x1e3c,\r
-0x1e3e, 0x1e3e,\r
-0x1e40, 0x1e40,\r
-0x1e42, 0x1e42,\r
-0x1e44, 0x1e44,\r
-0x1e46, 0x1e46,\r
-0x1e48, 0x1e48,\r
-0x1e4a, 0x1e4a,\r
-0x1e4c, 0x1e4c,\r
-0x1e4e, 0x1e4e,\r
-0x1e50, 0x1e50,\r
-0x1e52, 0x1e52,\r
-0x1e54, 0x1e54,\r
-0x1e56, 0x1e56,\r
-0x1e58, 0x1e58,\r
-0x1e5a, 0x1e5a,\r
-0x1e5c, 0x1e5c,\r
-0x1e5e, 0x1e5e,\r
-0x1e60, 0x1e60,\r
-0x1e62, 0x1e62,\r
-0x1e64, 0x1e64,\r
-0x1e66, 0x1e66,\r
-0x1e68, 0x1e68,\r
-0x1e6a, 0x1e6a,\r
-0x1e6c, 0x1e6c,\r
-0x1e6e, 0x1e6e,\r
-0x1e70, 0x1e70,\r
-0x1e72, 0x1e72,\r
-0x1e74, 0x1e74,\r
-0x1e76, 0x1e76,\r
-0x1e78, 0x1e78,\r
-0x1e7a, 0x1e7a,\r
-0x1e7c, 0x1e7c,\r
-0x1e7e, 0x1e7e,\r
-0x1e80, 0x1e80,\r
-0x1e82, 0x1e82,\r
-0x1e84, 0x1e84,\r
-0x1e86, 0x1e86,\r
-0x1e88, 0x1e88,\r
-0x1e8a, 0x1e8a,\r
-0x1e8c, 0x1e8c,\r
-0x1e8e, 0x1e8e,\r
-0x1e90, 0x1e90,\r
-0x1e92, 0x1e92,\r
-0x1e94, 0x1e94,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1ea0,\r
-0x1ea2, 0x1ea2,\r
-0x1ea4, 0x1ea4,\r
-0x1ea6, 0x1ea6,\r
-0x1ea8, 0x1ea8,\r
-0x1eaa, 0x1eaa,\r
-0x1eac, 0x1eac,\r
-0x1eae, 0x1eae,\r
-0x1eb0, 0x1eb0,\r
-0x1eb2, 0x1eb2,\r
-0x1eb4, 0x1eb4,\r
-0x1eb6, 0x1eb6,\r
-0x1eb8, 0x1eb8,\r
-0x1eba, 0x1eba,\r
-0x1ebc, 0x1ebc,\r
-0x1ebe, 0x1ebe,\r
-0x1ec0, 0x1ec0,\r
-0x1ec2, 0x1ec2,\r
-0x1ec4, 0x1ec4,\r
-0x1ec6, 0x1ec6,\r
-0x1ec8, 0x1ec8,\r
-0x1eca, 0x1eca,\r
-0x1ecc, 0x1ecc,\r
-0x1ece, 0x1ece,\r
-0x1ed0, 0x1ed0,\r
-0x1ed2, 0x1ed2,\r
-0x1ed4, 0x1ed4,\r
-0x1ed6, 0x1ed6,\r
-0x1ed8, 0x1ed8,\r
-0x1eda, 0x1eda,\r
-0x1edc, 0x1edc,\r
-0x1ede, 0x1ede,\r
-0x1ee0, 0x1ee0,\r
-0x1ee2, 0x1ee2,\r
-0x1ee4, 0x1ee4,\r
-0x1ee6, 0x1ee6,\r
-0x1ee8, 0x1ee8,\r
-0x1eea, 0x1eea,\r
-0x1eec, 0x1eec,\r
-0x1eee, 0x1eee,\r
-0x1ef0, 0x1ef0,\r
-0x1ef2, 0x1ef2,\r
-0x1ef4, 0x1ef4,\r
-0x1ef6, 0x1ef6,\r
-0x1ef8, 0x1ef8,\r
-0x1efa, 0x1efa,\r
-0x1efc, 0x1efc,\r
-0x1efe, 0x1efe,\r
-0x1f08, 0x1f0f,\r
-0x1f18, 0x1f1d,\r
-0x1f28, 0x1f2f,\r
-0x1f38, 0x1f3f,\r
-0x1f48, 0x1f4d,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f5f,\r
-0x1f68, 0x1f6f,\r
-0x1fb8, 0x1fbb,\r
-0x1fc8, 0x1fcb,\r
-0x1fd8, 0x1fdb,\r
-0x1fe8, 0x1fec,\r
-0x1ff8, 0x1ffb,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210b, 0x210d,\r
-0x2110, 0x2112,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x2130, 0x2133,\r
-0x213e, 0x213f,\r
-0x2145, 0x2145,\r
-0x2160, 0x216f,\r
-0x2183, 0x2183,\r
-0x24b6, 0x24cf,\r
-0x2c00, 0x2c2e,\r
-0x2c60, 0x2c60,\r
-0x2c62, 0x2c64,\r
-0x2c67, 0x2c67,\r
-0x2c69, 0x2c69,\r
-0x2c6b, 0x2c6b,\r
-0x2c6d, 0x2c70,\r
-0x2c72, 0x2c72,\r
-0x2c75, 0x2c75,\r
-0x2c7e, 0x2c80,\r
-0x2c82, 0x2c82,\r
-0x2c84, 0x2c84,\r
-0x2c86, 0x2c86,\r
-0x2c88, 0x2c88,\r
-0x2c8a, 0x2c8a,\r
-0x2c8c, 0x2c8c,\r
-0x2c8e, 0x2c8e,\r
-0x2c90, 0x2c90,\r
-0x2c92, 0x2c92,\r
-0x2c94, 0x2c94,\r
-0x2c96, 0x2c96,\r
-0x2c98, 0x2c98,\r
-0x2c9a, 0x2c9a,\r
-0x2c9c, 0x2c9c,\r
-0x2c9e, 0x2c9e,\r
-0x2ca0, 0x2ca0,\r
-0x2ca2, 0x2ca2,\r
-0x2ca4, 0x2ca4,\r
-0x2ca6, 0x2ca6,\r
-0x2ca8, 0x2ca8,\r
-0x2caa, 0x2caa,\r
-0x2cac, 0x2cac,\r
-0x2cae, 0x2cae,\r
-0x2cb0, 0x2cb0,\r
-0x2cb2, 0x2cb2,\r
-0x2cb4, 0x2cb4,\r
-0x2cb6, 0x2cb6,\r
-0x2cb8, 0x2cb8,\r
-0x2cba, 0x2cba,\r
-0x2cbc, 0x2cbc,\r
-0x2cbe, 0x2cbe,\r
-0x2cc0, 0x2cc0,\r
-0x2cc2, 0x2cc2,\r
-0x2cc4, 0x2cc4,\r
-0x2cc6, 0x2cc6,\r
-0x2cc8, 0x2cc8,\r
-0x2cca, 0x2cca,\r
-0x2ccc, 0x2ccc,\r
-0x2cce, 0x2cce,\r
-0x2cd0, 0x2cd0,\r
-0x2cd2, 0x2cd2,\r
-0x2cd4, 0x2cd4,\r
-0x2cd6, 0x2cd6,\r
-0x2cd8, 0x2cd8,\r
-0x2cda, 0x2cda,\r
-0x2cdc, 0x2cdc,\r
-0x2cde, 0x2cde,\r
-0x2ce0, 0x2ce0,\r
-0x2ce2, 0x2ce2,\r
-0x2ceb, 0x2ceb,\r
-0x2ced, 0x2ced,\r
-0x2cf2, 0x2cf2,\r
-0xa640, 0xa640,\r
-0xa642, 0xa642,\r
-0xa644, 0xa644,\r
-0xa646, 0xa646,\r
-0xa648, 0xa648,\r
-0xa64a, 0xa64a,\r
-0xa64c, 0xa64c,\r
-0xa64e, 0xa64e,\r
-0xa650, 0xa650,\r
-0xa652, 0xa652,\r
-0xa654, 0xa654,\r
-0xa656, 0xa656,\r
-0xa658, 0xa658,\r
-0xa65a, 0xa65a,\r
-0xa65c, 0xa65c,\r
-0xa65e, 0xa65e,\r
-0xa660, 0xa660,\r
-0xa662, 0xa662,\r
-0xa664, 0xa664,\r
-0xa666, 0xa666,\r
-0xa668, 0xa668,\r
-0xa66a, 0xa66a,\r
-0xa66c, 0xa66c,\r
-0xa680, 0xa680,\r
-0xa682, 0xa682,\r
-0xa684, 0xa684,\r
-0xa686, 0xa686,\r
-0xa688, 0xa688,\r
-0xa68a, 0xa68a,\r
-0xa68c, 0xa68c,\r
-0xa68e, 0xa68e,\r
-0xa690, 0xa690,\r
-0xa692, 0xa692,\r
-0xa694, 0xa694,\r
-0xa696, 0xa696,\r
-0xa698, 0xa698,\r
-0xa69a, 0xa69a,\r
-0xa722, 0xa722,\r
-0xa724, 0xa724,\r
-0xa726, 0xa726,\r
-0xa728, 0xa728,\r
-0xa72a, 0xa72a,\r
-0xa72c, 0xa72c,\r
-0xa72e, 0xa72e,\r
-0xa732, 0xa732,\r
-0xa734, 0xa734,\r
-0xa736, 0xa736,\r
-0xa738, 0xa738,\r
-0xa73a, 0xa73a,\r
-0xa73c, 0xa73c,\r
-0xa73e, 0xa73e,\r
-0xa740, 0xa740,\r
-0xa742, 0xa742,\r
-0xa744, 0xa744,\r
-0xa746, 0xa746,\r
-0xa748, 0xa748,\r
-0xa74a, 0xa74a,\r
-0xa74c, 0xa74c,\r
-0xa74e, 0xa74e,\r
-0xa750, 0xa750,\r
-0xa752, 0xa752,\r
-0xa754, 0xa754,\r
-0xa756, 0xa756,\r
-0xa758, 0xa758,\r
-0xa75a, 0xa75a,\r
-0xa75c, 0xa75c,\r
-0xa75e, 0xa75e,\r
-0xa760, 0xa760,\r
-0xa762, 0xa762,\r
-0xa764, 0xa764,\r
-0xa766, 0xa766,\r
-0xa768, 0xa768,\r
-0xa76a, 0xa76a,\r
-0xa76c, 0xa76c,\r
-0xa76e, 0xa76e,\r
-0xa779, 0xa779,\r
-0xa77b, 0xa77b,\r
-0xa77d, 0xa77e,\r
-0xa780, 0xa780,\r
-0xa782, 0xa782,\r
-0xa784, 0xa784,\r
-0xa786, 0xa786,\r
-0xa78b, 0xa78b,\r
-0xa78d, 0xa78d,\r
-0xa790, 0xa790,\r
-0xa792, 0xa792,\r
-0xa796, 0xa796,\r
-0xa798, 0xa798,\r
-0xa79a, 0xa79a,\r
-0xa79c, 0xa79c,\r
-0xa79e, 0xa79e,\r
-0xa7a0, 0xa7a0,\r
-0xa7a2, 0xa7a2,\r
-0xa7a4, 0xa7a4,\r
-0xa7a6, 0xa7a6,\r
-0xa7a8, 0xa7a8,\r
-0xa7aa, 0xa7ae,\r
-0xa7b0, 0xa7b4,\r
-0xa7b6, 0xa7b6,\r
-0xa7b8, 0xa7b8,\r
-0xa7ba, 0xa7ba,\r
-0xa7bc, 0xa7bc,\r
-0xa7be, 0xa7be,\r
-0xa7c2, 0xa7c2,\r
-0xa7c4, 0xa7c6,\r
-0xff21, 0xff3a,\r
-0x10400, 0x10427,\r
-0x104b0, 0x104d3,\r
-0x10c80, 0x10cb2,\r
-0x118a0, 0x118bf,\r
-0x16e40, 0x16e5f,\r
-0x1d400, 0x1d419,\r
-0x1d434, 0x1d44d,\r
-0x1d468, 0x1d481,\r
-0x1d49c, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b5,\r
-0x1d4d0, 0x1d4e9,\r
-0x1d504, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d538, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d56c, 0x1d585,\r
-0x1d5a0, 0x1d5b9,\r
-0x1d5d4, 0x1d5ed,\r
-0x1d608, 0x1d621,\r
-0x1d63c, 0x1d655,\r
-0x1d670, 0x1d689,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6e2, 0x1d6fa,\r
-0x1d71c, 0x1d734,\r
-0x1d756, 0x1d76e,\r
-0x1d790, 0x1d7a8,\r
-0x1d7ca, 0x1d7ca,\r
-0x1e900, 0x1e921,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-}; /* END of CR_Upper */\r
-\r
-/* PROPERTY: 'XDigit': POSIX [[:XDigit:]] */\r
-static const OnigCodePoint\r
-CR_XDigit[] = { 3,\r
-0x0030, 0x0039,\r
-0x0041, 0x0046,\r
-0x0061, 0x0066,\r
-}; /* END of CR_XDigit */\r
-\r
-/* PROPERTY: 'Word': POSIX [[:Word:]] */\r
-static const OnigCodePoint\r
-CR_Word[] = { 716,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x005f, 0x005f,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0300, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x0483, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06df, 0x06e8,\r
-0x06ea, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x07fd, 0x07fd,\r
-0x0800, 0x082d,\r
-0x0840, 0x085b,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e4e,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f18, 0x0f19,\r
-0x0f20, 0x0f29,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f84,\r
-0x0f86, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x1000, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x135f,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1734,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17d3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x180b, 0x180d,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19d9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1bf3,\r
-0x1c00, 0x1c37,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x203f, 0x2040,\r
-0x2054, 0x2054,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x20d0, 0x20f0,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x302f,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x3099, 0x309a,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa672,\r
-0xa674, 0xa67d,\r
-0xa67f, 0xa6f1,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8e0, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92d,\r
-0xa930, 0xa953,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9c0,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabec, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0xfe33, 0xfe34,\r
-0xfe4d, 0xfe4f,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff3f, 0xff3f,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x101fd, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102e0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae6,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f50,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11046,\r
-0x11066, 0x1106f,\r
-0x1107f, 0x110ba,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11173,\r
-0x11176, 0x11176,\r
-0x11180, 0x111c4,\r
-0x111c9, 0x111cc,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145e, 0x1145f,\r
-0x11480, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115c0,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x11739,\r
-0x11800, 0x1183a,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a50, 0x11a99,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af4,\r
-0x16b00, 0x16b36,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Word */\r
-\r
-/* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */\r
-static const OnigCodePoint\r
-CR_Alnum[] = { 715,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0345, 0x0345,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05b0, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0657,\r
-0x0659, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06e1, 0x06e8,\r
-0x06ed, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x073f,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0817,\r
-0x081a, 0x082c,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d4, 0x08df,\r
-0x08e3, 0x08e9,\r
-0x08f0, 0x093b,\r
-0x093d, 0x094c,\r
-0x094e, 0x0950,\r
-0x0955, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09ce, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4c,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0afc,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c03,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4c,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccc,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e46,\r
-0x0e4d, 0x0e4d,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb9,\r
-0x0ebb, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ecd, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f20, 0x0f29,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f81,\r
-0x0f88, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x1000, 0x1036,\r
-0x1038, 0x1038,\r
-0x103b, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1713,\r
-0x1720, 0x1733,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17b3,\r
-0x17b6, 0x17c8,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x17e0, 0x17e9,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x1938,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19d9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a61, 0x1a74,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1b00, 0x1b33,\r
-0x1b35, 0x1b43,\r
-0x1b45, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b80, 0x1ba9,\r
-0x1bac, 0x1be5,\r
-0x1be7, 0x1bf1,\r
-0x1c00, 0x1c36,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1de7, 0x1df4,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa674, 0xa67b,\r
-0xa67f, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa805,\r
-0xa807, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c3,\r
-0xa8c5, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92a,\r
-0xa930, 0xa952,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9b2,\r
-0xa9b4, 0xa9bf,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaabe,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf5,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11045,\r
-0x11066, 0x1106f,\r
-0x11082, 0x110b8,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11132,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11180, 0x111bf,\r
-0x111c1, 0x111c4,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11234,\r
-0x11237, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112e8,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134c,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11400, 0x11441,\r
-0x11443, 0x11445,\r
-0x11447, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114c1,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115be,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x1163e,\r
-0x11640, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b5,\r
-0x116b8, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172a,\r
-0x11730, 0x11739,\r
-0x11800, 0x11838,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119df,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a32,\r
-0x11a35, 0x11a3e,\r
-0x11a50, 0x11a97,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c3e,\r
-0x11c40, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d41,\r
-0x11d43, 0x11d43,\r
-0x11d46, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d96,\r
-0x11d98, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9e, 0x1bc9e,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e947, 0x1e947,\r
-0x1e94b, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Alnum */\r
-\r
-/* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */\r
-static const OnigCodePoint\r
-CR_ASCII[] = { 1,\r
-0x0000, 0x007f,\r
-}; /* END of CR_ASCII */\r
-\r
-\r
-/* PROPERTY: 'ASCII_Hex_Digit': Binary Property */\r
-#define CR_ASCII_Hex_Digit CR_XDigit\r
-\r
-/* PROPERTY: 'Adlam': Script */\r
-static const OnigCodePoint\r
-CR_Adlam[] = { 3,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-}; /* END of CR_Adlam */\r
-\r
-/* PROPERTY: 'Ahom': Script */\r
-static const OnigCodePoint\r
-CR_Ahom[] = { 3,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-}; /* END of CR_Ahom */\r
-\r
-/* PROPERTY: 'Alphabetic': Derived Property */\r
-#define CR_Alphabetic CR_Alpha\r
-\r
-/* PROPERTY: 'Anatolian_Hieroglyphs': Script */\r
-static const OnigCodePoint\r
-CR_Anatolian_Hieroglyphs[] = { 1,\r
-0x14400, 0x14646,\r
-}; /* END of CR_Anatolian_Hieroglyphs */\r
-\r
-/* PROPERTY: 'Any': - */\r
-static const OnigCodePoint\r
-CR_Any[] = { 1,\r
-0x0000, 0x10ffff,\r
-}; /* END of CR_Any */\r
-\r
-/* PROPERTY: 'Arabic': Script */\r
-static const OnigCodePoint\r
-CR_Arabic[] = { 57,\r
-0x0600, 0x0604,\r
-0x0606, 0x060b,\r
-0x060d, 0x061a,\r
-0x061c, 0x061c,\r
-0x061e, 0x061e,\r
-0x0620, 0x063f,\r
-0x0641, 0x064a,\r
-0x0656, 0x066f,\r
-0x0671, 0x06dc,\r
-0x06de, 0x06ff,\r
-0x0750, 0x077f,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x08ff,\r
-0xfb50, 0xfbc1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0x10e60, 0x10e7e,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-}; /* END of CR_Arabic */\r
-\r
-/* PROPERTY: 'Armenian': Script */\r
-static const OnigCodePoint\r
-CR_Armenian[] = { 5,\r
-0x0531, 0x0556,\r
-0x0559, 0x0588,\r
-0x058a, 0x058a,\r
-0x058d, 0x058f,\r
-0xfb13, 0xfb17,\r
-}; /* END of CR_Armenian */\r
-\r
-/* PROPERTY: 'Assigned': - */\r
-static const OnigCodePoint\r
-CR_Assigned[] = { 666,\r
-0x0000, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0600, 0x061c,\r
-0x061e, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x082d,\r
-0x0830, 0x083e,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e3a,\r
-0x0e3f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1736,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a1b,\r
-0x1a1e, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-0x1b80, 0x1bf3,\r
-0x1bfc, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd0, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x2000, 0x2064,\r
-0x2066, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x20d0, 0x20f0,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3000, 0x303f,\r
-0x3041, 0x3096,\r
-0x3099, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-0xa8e0, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa980, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaac2,\r
-0xaadb, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xd800, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe00, 0xfe19,\r
-0xfe20, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x110c1,\r
-0x110cd, 0x110cd,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-0x11150, 0x11176,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-0x11a00, 0x11a47,\r
-0x11a50, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d1e8,\r
-0x1d200, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Assigned */\r
-\r
-/* PROPERTY: 'Avestan': Script */\r
-static const OnigCodePoint\r
-CR_Avestan[] = { 2,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b3f,\r
-}; /* END of CR_Avestan */\r
-\r
-/* PROPERTY: 'Balinese': Script */\r
-static const OnigCodePoint\r
-CR_Balinese[] = { 2,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-}; /* END of CR_Balinese */\r
-\r
-/* PROPERTY: 'Bamum': Script */\r
-static const OnigCodePoint\r
-CR_Bamum[] = { 2,\r
-0xa6a0, 0xa6f7,\r
-0x16800, 0x16a38,\r
-}; /* END of CR_Bamum */\r
-\r
-/* PROPERTY: 'Bassa_Vah': Script */\r
-static const OnigCodePoint\r
-CR_Bassa_Vah[] = { 2,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-}; /* END of CR_Bassa_Vah */\r
-\r
-/* PROPERTY: 'Batak': Script */\r
-static const OnigCodePoint\r
-CR_Batak[] = { 2,\r
-0x1bc0, 0x1bf3,\r
-0x1bfc, 0x1bff,\r
-}; /* END of CR_Batak */\r
-\r
-/* PROPERTY: 'Bengali': Script */\r
-static const OnigCodePoint\r
-CR_Bengali[] = { 14,\r
-0x0980, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-}; /* END of CR_Bengali */\r
-\r
-/* PROPERTY: 'Bhaiksuki': Script */\r
-static const OnigCodePoint\r
-CR_Bhaiksuki[] = { 4,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-}; /* END of CR_Bhaiksuki */\r
-\r
-/* PROPERTY: 'Bidi_Control': Binary Property */\r
-static const OnigCodePoint\r
-CR_Bidi_Control[] = { 4,\r
-0x061c, 0x061c,\r
-0x200e, 0x200f,\r
-0x202a, 0x202e,\r
-0x2066, 0x2069,\r
-}; /* END of CR_Bidi_Control */\r
-\r
-/* PROPERTY: 'Bopomofo': Script */\r
-static const OnigCodePoint\r
-CR_Bopomofo[] = { 3,\r
-0x02ea, 0x02eb,\r
-0x3105, 0x312f,\r
-0x31a0, 0x31ba,\r
-}; /* END of CR_Bopomofo */\r
-\r
-/* PROPERTY: 'Brahmi': Script */\r
-static const OnigCodePoint\r
-CR_Brahmi[] = { 3,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x1107f,\r
-}; /* END of CR_Brahmi */\r
-\r
-/* PROPERTY: 'Braille': Script */\r
-static const OnigCodePoint\r
-CR_Braille[] = { 1,\r
-0x2800, 0x28ff,\r
-}; /* END of CR_Braille */\r
-\r
-/* PROPERTY: 'Buginese': Script */\r
-static const OnigCodePoint\r
-CR_Buginese[] = { 2,\r
-0x1a00, 0x1a1b,\r
-0x1a1e, 0x1a1f,\r
-}; /* END of CR_Buginese */\r
-\r
-/* PROPERTY: 'Buhid': Script */\r
-static const OnigCodePoint\r
-CR_Buhid[] = { 1,\r
-0x1740, 0x1753,\r
-}; /* END of CR_Buhid */\r
-\r
-/* PROPERTY: 'C': Major Category */\r
-static const OnigCodePoint\r
-CR_C[] = { 668,\r
-0x0000, 0x001f,\r
-0x007f, 0x009f,\r
-0x00ad, 0x00ad,\r
-0x0378, 0x0379,\r
-0x0380, 0x0383,\r
-0x038b, 0x038b,\r
-0x038d, 0x038d,\r
-0x03a2, 0x03a2,\r
-0x0530, 0x0530,\r
-0x0557, 0x0558,\r
-0x058b, 0x058c,\r
-0x0590, 0x0590,\r
-0x05c8, 0x05cf,\r
-0x05eb, 0x05ee,\r
-0x05f5, 0x0605,\r
-0x061c, 0x061d,\r
-0x06dd, 0x06dd,\r
-0x070e, 0x070f,\r
-0x074b, 0x074c,\r
-0x07b2, 0x07bf,\r
-0x07fb, 0x07fc,\r
-0x082e, 0x082f,\r
-0x083f, 0x083f,\r
-0x085c, 0x085d,\r
-0x085f, 0x085f,\r
-0x086b, 0x089f,\r
-0x08b5, 0x08b5,\r
-0x08be, 0x08d2,\r
-0x08e2, 0x08e2,\r
-0x0984, 0x0984,\r
-0x098d, 0x098e,\r
-0x0991, 0x0992,\r
-0x09a9, 0x09a9,\r
-0x09b1, 0x09b1,\r
-0x09b3, 0x09b5,\r
-0x09ba, 0x09bb,\r
-0x09c5, 0x09c6,\r
-0x09c9, 0x09ca,\r
-0x09cf, 0x09d6,\r
-0x09d8, 0x09db,\r
-0x09de, 0x09de,\r
-0x09e4, 0x09e5,\r
-0x09ff, 0x0a00,\r
-0x0a04, 0x0a04,\r
-0x0a0b, 0x0a0e,\r
-0x0a11, 0x0a12,\r
-0x0a29, 0x0a29,\r
-0x0a31, 0x0a31,\r
-0x0a34, 0x0a34,\r
-0x0a37, 0x0a37,\r
-0x0a3a, 0x0a3b,\r
-0x0a3d, 0x0a3d,\r
-0x0a43, 0x0a46,\r
-0x0a49, 0x0a4a,\r
-0x0a4e, 0x0a50,\r
-0x0a52, 0x0a58,\r
-0x0a5d, 0x0a5d,\r
-0x0a5f, 0x0a65,\r
-0x0a77, 0x0a80,\r
-0x0a84, 0x0a84,\r
-0x0a8e, 0x0a8e,\r
-0x0a92, 0x0a92,\r
-0x0aa9, 0x0aa9,\r
-0x0ab1, 0x0ab1,\r
-0x0ab4, 0x0ab4,\r
-0x0aba, 0x0abb,\r
-0x0ac6, 0x0ac6,\r
-0x0aca, 0x0aca,\r
-0x0ace, 0x0acf,\r
-0x0ad1, 0x0adf,\r
-0x0ae4, 0x0ae5,\r
-0x0af2, 0x0af8,\r
-0x0b00, 0x0b00,\r
-0x0b04, 0x0b04,\r
-0x0b0d, 0x0b0e,\r
-0x0b11, 0x0b12,\r
-0x0b29, 0x0b29,\r
-0x0b31, 0x0b31,\r
-0x0b34, 0x0b34,\r
-0x0b3a, 0x0b3b,\r
-0x0b45, 0x0b46,\r
-0x0b49, 0x0b4a,\r
-0x0b4e, 0x0b55,\r
-0x0b58, 0x0b5b,\r
-0x0b5e, 0x0b5e,\r
-0x0b64, 0x0b65,\r
-0x0b78, 0x0b81,\r
-0x0b84, 0x0b84,\r
-0x0b8b, 0x0b8d,\r
-0x0b91, 0x0b91,\r
-0x0b96, 0x0b98,\r
-0x0b9b, 0x0b9b,\r
-0x0b9d, 0x0b9d,\r
-0x0ba0, 0x0ba2,\r
-0x0ba5, 0x0ba7,\r
-0x0bab, 0x0bad,\r
-0x0bba, 0x0bbd,\r
-0x0bc3, 0x0bc5,\r
-0x0bc9, 0x0bc9,\r
-0x0bce, 0x0bcf,\r
-0x0bd1, 0x0bd6,\r
-0x0bd8, 0x0be5,\r
-0x0bfb, 0x0bff,\r
-0x0c0d, 0x0c0d,\r
-0x0c11, 0x0c11,\r
-0x0c29, 0x0c29,\r
-0x0c3a, 0x0c3c,\r
-0x0c45, 0x0c45,\r
-0x0c49, 0x0c49,\r
-0x0c4e, 0x0c54,\r
-0x0c57, 0x0c57,\r
-0x0c5b, 0x0c5f,\r
-0x0c64, 0x0c65,\r
-0x0c70, 0x0c76,\r
-0x0c8d, 0x0c8d,\r
-0x0c91, 0x0c91,\r
-0x0ca9, 0x0ca9,\r
-0x0cb4, 0x0cb4,\r
-0x0cba, 0x0cbb,\r
-0x0cc5, 0x0cc5,\r
-0x0cc9, 0x0cc9,\r
-0x0cce, 0x0cd4,\r
-0x0cd7, 0x0cdd,\r
-0x0cdf, 0x0cdf,\r
-0x0ce4, 0x0ce5,\r
-0x0cf0, 0x0cf0,\r
-0x0cf3, 0x0cff,\r
-0x0d04, 0x0d04,\r
-0x0d0d, 0x0d0d,\r
-0x0d11, 0x0d11,\r
-0x0d45, 0x0d45,\r
-0x0d49, 0x0d49,\r
-0x0d50, 0x0d53,\r
-0x0d64, 0x0d65,\r
-0x0d80, 0x0d81,\r
-0x0d84, 0x0d84,\r
-0x0d97, 0x0d99,\r
-0x0db2, 0x0db2,\r
-0x0dbc, 0x0dbc,\r
-0x0dbe, 0x0dbf,\r
-0x0dc7, 0x0dc9,\r
-0x0dcb, 0x0dce,\r
-0x0dd5, 0x0dd5,\r
-0x0dd7, 0x0dd7,\r
-0x0de0, 0x0de5,\r
-0x0df0, 0x0df1,\r
-0x0df5, 0x0e00,\r
-0x0e3b, 0x0e3e,\r
-0x0e5c, 0x0e80,\r
-0x0e83, 0x0e83,\r
-0x0e85, 0x0e85,\r
-0x0e8b, 0x0e8b,\r
-0x0ea4, 0x0ea4,\r
-0x0ea6, 0x0ea6,\r
-0x0ebe, 0x0ebf,\r
-0x0ec5, 0x0ec5,\r
-0x0ec7, 0x0ec7,\r
-0x0ece, 0x0ecf,\r
-0x0eda, 0x0edb,\r
-0x0ee0, 0x0eff,\r
-0x0f48, 0x0f48,\r
-0x0f6d, 0x0f70,\r
-0x0f98, 0x0f98,\r
-0x0fbd, 0x0fbd,\r
-0x0fcd, 0x0fcd,\r
-0x0fdb, 0x0fff,\r
-0x10c6, 0x10c6,\r
-0x10c8, 0x10cc,\r
-0x10ce, 0x10cf,\r
-0x1249, 0x1249,\r
-0x124e, 0x124f,\r
-0x1257, 0x1257,\r
-0x1259, 0x1259,\r
-0x125e, 0x125f,\r
-0x1289, 0x1289,\r
-0x128e, 0x128f,\r
-0x12b1, 0x12b1,\r
-0x12b6, 0x12b7,\r
-0x12bf, 0x12bf,\r
-0x12c1, 0x12c1,\r
-0x12c6, 0x12c7,\r
-0x12d7, 0x12d7,\r
-0x1311, 0x1311,\r
-0x1316, 0x1317,\r
-0x135b, 0x135c,\r
-0x137d, 0x137f,\r
-0x139a, 0x139f,\r
-0x13f6, 0x13f7,\r
-0x13fe, 0x13ff,\r
-0x169d, 0x169f,\r
-0x16f9, 0x16ff,\r
-0x170d, 0x170d,\r
-0x1715, 0x171f,\r
-0x1737, 0x173f,\r
-0x1754, 0x175f,\r
-0x176d, 0x176d,\r
-0x1771, 0x1771,\r
-0x1774, 0x177f,\r
-0x17de, 0x17df,\r
-0x17ea, 0x17ef,\r
-0x17fa, 0x17ff,\r
-0x180e, 0x180f,\r
-0x181a, 0x181f,\r
-0x1879, 0x187f,\r
-0x18ab, 0x18af,\r
-0x18f6, 0x18ff,\r
-0x191f, 0x191f,\r
-0x192c, 0x192f,\r
-0x193c, 0x193f,\r
-0x1941, 0x1943,\r
-0x196e, 0x196f,\r
-0x1975, 0x197f,\r
-0x19ac, 0x19af,\r
-0x19ca, 0x19cf,\r
-0x19db, 0x19dd,\r
-0x1a1c, 0x1a1d,\r
-0x1a5f, 0x1a5f,\r
-0x1a7d, 0x1a7e,\r
-0x1a8a, 0x1a8f,\r
-0x1a9a, 0x1a9f,\r
-0x1aae, 0x1aaf,\r
-0x1abf, 0x1aff,\r
-0x1b4c, 0x1b4f,\r
-0x1b7d, 0x1b7f,\r
-0x1bf4, 0x1bfb,\r
-0x1c38, 0x1c3a,\r
-0x1c4a, 0x1c4c,\r
-0x1c89, 0x1c8f,\r
-0x1cbb, 0x1cbc,\r
-0x1cc8, 0x1ccf,\r
-0x1cfb, 0x1cff,\r
-0x1dfa, 0x1dfa,\r
-0x1f16, 0x1f17,\r
-0x1f1e, 0x1f1f,\r
-0x1f46, 0x1f47,\r
-0x1f4e, 0x1f4f,\r
-0x1f58, 0x1f58,\r
-0x1f5a, 0x1f5a,\r
-0x1f5c, 0x1f5c,\r
-0x1f5e, 0x1f5e,\r
-0x1f7e, 0x1f7f,\r
-0x1fb5, 0x1fb5,\r
-0x1fc5, 0x1fc5,\r
-0x1fd4, 0x1fd5,\r
-0x1fdc, 0x1fdc,\r
-0x1ff0, 0x1ff1,\r
-0x1ff5, 0x1ff5,\r
-0x1fff, 0x1fff,\r
-0x200b, 0x200f,\r
-0x202a, 0x202e,\r
-0x2060, 0x206f,\r
-0x2072, 0x2073,\r
-0x208f, 0x208f,\r
-0x209d, 0x209f,\r
-0x20c0, 0x20cf,\r
-0x20f1, 0x20ff,\r
-0x218c, 0x218f,\r
-0x2427, 0x243f,\r
-0x244b, 0x245f,\r
-0x2b74, 0x2b75,\r
-0x2b96, 0x2b97,\r
-0x2c2f, 0x2c2f,\r
-0x2c5f, 0x2c5f,\r
-0x2cf4, 0x2cf8,\r
-0x2d26, 0x2d26,\r
-0x2d28, 0x2d2c,\r
-0x2d2e, 0x2d2f,\r
-0x2d68, 0x2d6e,\r
-0x2d71, 0x2d7e,\r
-0x2d97, 0x2d9f,\r
-0x2da7, 0x2da7,\r
-0x2daf, 0x2daf,\r
-0x2db7, 0x2db7,\r
-0x2dbf, 0x2dbf,\r
-0x2dc7, 0x2dc7,\r
-0x2dcf, 0x2dcf,\r
-0x2dd7, 0x2dd7,\r
-0x2ddf, 0x2ddf,\r
-0x2e50, 0x2e7f,\r
-0x2e9a, 0x2e9a,\r
-0x2ef4, 0x2eff,\r
-0x2fd6, 0x2fef,\r
-0x2ffc, 0x2fff,\r
-0x3040, 0x3040,\r
-0x3097, 0x3098,\r
-0x3100, 0x3104,\r
-0x3130, 0x3130,\r
-0x318f, 0x318f,\r
-0x31bb, 0x31bf,\r
-0x31e4, 0x31ef,\r
-0x321f, 0x321f,\r
-0x4db6, 0x4dbf,\r
-0x9ff0, 0x9fff,\r
-0xa48d, 0xa48f,\r
-0xa4c7, 0xa4cf,\r
-0xa62c, 0xa63f,\r
-0xa6f8, 0xa6ff,\r
-0xa7c0, 0xa7c1,\r
-0xa7c7, 0xa7f6,\r
-0xa82c, 0xa82f,\r
-0xa83a, 0xa83f,\r
-0xa878, 0xa87f,\r
-0xa8c6, 0xa8cd,\r
-0xa8da, 0xa8df,\r
-0xa954, 0xa95e,\r
-0xa97d, 0xa97f,\r
-0xa9ce, 0xa9ce,\r
-0xa9da, 0xa9dd,\r
-0xa9ff, 0xa9ff,\r
-0xaa37, 0xaa3f,\r
-0xaa4e, 0xaa4f,\r
-0xaa5a, 0xaa5b,\r
-0xaac3, 0xaada,\r
-0xaaf7, 0xab00,\r
-0xab07, 0xab08,\r
-0xab0f, 0xab10,\r
-0xab17, 0xab1f,\r
-0xab27, 0xab27,\r
-0xab2f, 0xab2f,\r
-0xab68, 0xab6f,\r
-0xabee, 0xabef,\r
-0xabfa, 0xabff,\r
-0xd7a4, 0xd7af,\r
-0xd7c7, 0xd7ca,\r
-0xd7fc, 0xf8ff,\r
-0xfa6e, 0xfa6f,\r
-0xfada, 0xfaff,\r
-0xfb07, 0xfb12,\r
-0xfb18, 0xfb1c,\r
-0xfb37, 0xfb37,\r
-0xfb3d, 0xfb3d,\r
-0xfb3f, 0xfb3f,\r
-0xfb42, 0xfb42,\r
-0xfb45, 0xfb45,\r
-0xfbc2, 0xfbd2,\r
-0xfd40, 0xfd4f,\r
-0xfd90, 0xfd91,\r
-0xfdc8, 0xfdef,\r
-0xfdfe, 0xfdff,\r
-0xfe1a, 0xfe1f,\r
-0xfe53, 0xfe53,\r
-0xfe67, 0xfe67,\r
-0xfe6c, 0xfe6f,\r
-0xfe75, 0xfe75,\r
-0xfefd, 0xff00,\r
-0xffbf, 0xffc1,\r
-0xffc8, 0xffc9,\r
-0xffd0, 0xffd1,\r
-0xffd8, 0xffd9,\r
-0xffdd, 0xffdf,\r
-0xffe7, 0xffe7,\r
-0xffef, 0xfffb,\r
-0xfffe, 0xffff,\r
-0x1000c, 0x1000c,\r
-0x10027, 0x10027,\r
-0x1003b, 0x1003b,\r
-0x1003e, 0x1003e,\r
-0x1004e, 0x1004f,\r
-0x1005e, 0x1007f,\r
-0x100fb, 0x100ff,\r
-0x10103, 0x10106,\r
-0x10134, 0x10136,\r
-0x1018f, 0x1018f,\r
-0x1019c, 0x1019f,\r
-0x101a1, 0x101cf,\r
-0x101fe, 0x1027f,\r
-0x1029d, 0x1029f,\r
-0x102d1, 0x102df,\r
-0x102fc, 0x102ff,\r
-0x10324, 0x1032c,\r
-0x1034b, 0x1034f,\r
-0x1037b, 0x1037f,\r
-0x1039e, 0x1039e,\r
-0x103c4, 0x103c7,\r
-0x103d6, 0x103ff,\r
-0x1049e, 0x1049f,\r
-0x104aa, 0x104af,\r
-0x104d4, 0x104d7,\r
-0x104fc, 0x104ff,\r
-0x10528, 0x1052f,\r
-0x10564, 0x1056e,\r
-0x10570, 0x105ff,\r
-0x10737, 0x1073f,\r
-0x10756, 0x1075f,\r
-0x10768, 0x107ff,\r
-0x10806, 0x10807,\r
-0x10809, 0x10809,\r
-0x10836, 0x10836,\r
-0x10839, 0x1083b,\r
-0x1083d, 0x1083e,\r
-0x10856, 0x10856,\r
-0x1089f, 0x108a6,\r
-0x108b0, 0x108df,\r
-0x108f3, 0x108f3,\r
-0x108f6, 0x108fa,\r
-0x1091c, 0x1091e,\r
-0x1093a, 0x1093e,\r
-0x10940, 0x1097f,\r
-0x109b8, 0x109bb,\r
-0x109d0, 0x109d1,\r
-0x10a04, 0x10a04,\r
-0x10a07, 0x10a0b,\r
-0x10a14, 0x10a14,\r
-0x10a18, 0x10a18,\r
-0x10a36, 0x10a37,\r
-0x10a3b, 0x10a3e,\r
-0x10a49, 0x10a4f,\r
-0x10a59, 0x10a5f,\r
-0x10aa0, 0x10abf,\r
-0x10ae7, 0x10aea,\r
-0x10af7, 0x10aff,\r
-0x10b36, 0x10b38,\r
-0x10b56, 0x10b57,\r
-0x10b73, 0x10b77,\r
-0x10b92, 0x10b98,\r
-0x10b9d, 0x10ba8,\r
-0x10bb0, 0x10bff,\r
-0x10c49, 0x10c7f,\r
-0x10cb3, 0x10cbf,\r
-0x10cf3, 0x10cf9,\r
-0x10d28, 0x10d2f,\r
-0x10d3a, 0x10e5f,\r
-0x10e7f, 0x10eff,\r
-0x10f28, 0x10f2f,\r
-0x10f5a, 0x10fdf,\r
-0x10ff7, 0x10fff,\r
-0x1104e, 0x11051,\r
-0x11070, 0x1107e,\r
-0x110bd, 0x110bd,\r
-0x110c2, 0x110cf,\r
-0x110e9, 0x110ef,\r
-0x110fa, 0x110ff,\r
-0x11135, 0x11135,\r
-0x11147, 0x1114f,\r
-0x11177, 0x1117f,\r
-0x111ce, 0x111cf,\r
-0x111e0, 0x111e0,\r
-0x111f5, 0x111ff,\r
-0x11212, 0x11212,\r
-0x1123f, 0x1127f,\r
-0x11287, 0x11287,\r
-0x11289, 0x11289,\r
-0x1128e, 0x1128e,\r
-0x1129e, 0x1129e,\r
-0x112aa, 0x112af,\r
-0x112eb, 0x112ef,\r
-0x112fa, 0x112ff,\r
-0x11304, 0x11304,\r
-0x1130d, 0x1130e,\r
-0x11311, 0x11312,\r
-0x11329, 0x11329,\r
-0x11331, 0x11331,\r
-0x11334, 0x11334,\r
-0x1133a, 0x1133a,\r
-0x11345, 0x11346,\r
-0x11349, 0x1134a,\r
-0x1134e, 0x1134f,\r
-0x11351, 0x11356,\r
-0x11358, 0x1135c,\r
-0x11364, 0x11365,\r
-0x1136d, 0x1136f,\r
-0x11375, 0x113ff,\r
-0x1145a, 0x1145a,\r
-0x1145c, 0x1145c,\r
-0x11460, 0x1147f,\r
-0x114c8, 0x114cf,\r
-0x114da, 0x1157f,\r
-0x115b6, 0x115b7,\r
-0x115de, 0x115ff,\r
-0x11645, 0x1164f,\r
-0x1165a, 0x1165f,\r
-0x1166d, 0x1167f,\r
-0x116b9, 0x116bf,\r
-0x116ca, 0x116ff,\r
-0x1171b, 0x1171c,\r
-0x1172c, 0x1172f,\r
-0x11740, 0x117ff,\r
-0x1183c, 0x1189f,\r
-0x118f3, 0x118fe,\r
-0x11900, 0x1199f,\r
-0x119a8, 0x119a9,\r
-0x119d8, 0x119d9,\r
-0x119e5, 0x119ff,\r
-0x11a48, 0x11a4f,\r
-0x11aa3, 0x11abf,\r
-0x11af9, 0x11bff,\r
-0x11c09, 0x11c09,\r
-0x11c37, 0x11c37,\r
-0x11c46, 0x11c4f,\r
-0x11c6d, 0x11c6f,\r
-0x11c90, 0x11c91,\r
-0x11ca8, 0x11ca8,\r
-0x11cb7, 0x11cff,\r
-0x11d07, 0x11d07,\r
-0x11d0a, 0x11d0a,\r
-0x11d37, 0x11d39,\r
-0x11d3b, 0x11d3b,\r
-0x11d3e, 0x11d3e,\r
-0x11d48, 0x11d4f,\r
-0x11d5a, 0x11d5f,\r
-0x11d66, 0x11d66,\r
-0x11d69, 0x11d69,\r
-0x11d8f, 0x11d8f,\r
-0x11d92, 0x11d92,\r
-0x11d99, 0x11d9f,\r
-0x11daa, 0x11edf,\r
-0x11ef9, 0x11fbf,\r
-0x11ff2, 0x11ffe,\r
-0x1239a, 0x123ff,\r
-0x1246f, 0x1246f,\r
-0x12475, 0x1247f,\r
-0x12544, 0x12fff,\r
-0x1342f, 0x143ff,\r
-0x14647, 0x167ff,\r
-0x16a39, 0x16a3f,\r
-0x16a5f, 0x16a5f,\r
-0x16a6a, 0x16a6d,\r
-0x16a70, 0x16acf,\r
-0x16aee, 0x16aef,\r
-0x16af6, 0x16aff,\r
-0x16b46, 0x16b4f,\r
-0x16b5a, 0x16b5a,\r
-0x16b62, 0x16b62,\r
-0x16b78, 0x16b7c,\r
-0x16b90, 0x16e3f,\r
-0x16e9b, 0x16eff,\r
-0x16f4b, 0x16f4e,\r
-0x16f88, 0x16f8e,\r
-0x16fa0, 0x16fdf,\r
-0x16fe4, 0x16fff,\r
-0x187f8, 0x187ff,\r
-0x18af3, 0x1afff,\r
-0x1b11f, 0x1b14f,\r
-0x1b153, 0x1b163,\r
-0x1b168, 0x1b16f,\r
-0x1b2fc, 0x1bbff,\r
-0x1bc6b, 0x1bc6f,\r
-0x1bc7d, 0x1bc7f,\r
-0x1bc89, 0x1bc8f,\r
-0x1bc9a, 0x1bc9b,\r
-0x1bca0, 0x1cfff,\r
-0x1d0f6, 0x1d0ff,\r
-0x1d127, 0x1d128,\r
-0x1d173, 0x1d17a,\r
-0x1d1e9, 0x1d1ff,\r
-0x1d246, 0x1d2df,\r
-0x1d2f4, 0x1d2ff,\r
-0x1d357, 0x1d35f,\r
-0x1d379, 0x1d3ff,\r
-0x1d455, 0x1d455,\r
-0x1d49d, 0x1d49d,\r
-0x1d4a0, 0x1d4a1,\r
-0x1d4a3, 0x1d4a4,\r
-0x1d4a7, 0x1d4a8,\r
-0x1d4ad, 0x1d4ad,\r
-0x1d4ba, 0x1d4ba,\r
-0x1d4bc, 0x1d4bc,\r
-0x1d4c4, 0x1d4c4,\r
-0x1d506, 0x1d506,\r
-0x1d50b, 0x1d50c,\r
-0x1d515, 0x1d515,\r
-0x1d51d, 0x1d51d,\r
-0x1d53a, 0x1d53a,\r
-0x1d53f, 0x1d53f,\r
-0x1d545, 0x1d545,\r
-0x1d547, 0x1d549,\r
-0x1d551, 0x1d551,\r
-0x1d6a6, 0x1d6a7,\r
-0x1d7cc, 0x1d7cd,\r
-0x1da8c, 0x1da9a,\r
-0x1daa0, 0x1daa0,\r
-0x1dab0, 0x1dfff,\r
-0x1e007, 0x1e007,\r
-0x1e019, 0x1e01a,\r
-0x1e022, 0x1e022,\r
-0x1e025, 0x1e025,\r
-0x1e02b, 0x1e0ff,\r
-0x1e12d, 0x1e12f,\r
-0x1e13e, 0x1e13f,\r
-0x1e14a, 0x1e14d,\r
-0x1e150, 0x1e2bf,\r
-0x1e2fa, 0x1e2fe,\r
-0x1e300, 0x1e7ff,\r
-0x1e8c5, 0x1e8c6,\r
-0x1e8d7, 0x1e8ff,\r
-0x1e94c, 0x1e94f,\r
-0x1e95a, 0x1e95d,\r
-0x1e960, 0x1ec70,\r
-0x1ecb5, 0x1ed00,\r
-0x1ed3e, 0x1edff,\r
-0x1ee04, 0x1ee04,\r
-0x1ee20, 0x1ee20,\r
-0x1ee23, 0x1ee23,\r
-0x1ee25, 0x1ee26,\r
-0x1ee28, 0x1ee28,\r
-0x1ee33, 0x1ee33,\r
-0x1ee38, 0x1ee38,\r
-0x1ee3a, 0x1ee3a,\r
-0x1ee3c, 0x1ee41,\r
-0x1ee43, 0x1ee46,\r
-0x1ee48, 0x1ee48,\r
-0x1ee4a, 0x1ee4a,\r
-0x1ee4c, 0x1ee4c,\r
-0x1ee50, 0x1ee50,\r
-0x1ee53, 0x1ee53,\r
-0x1ee55, 0x1ee56,\r
-0x1ee58, 0x1ee58,\r
-0x1ee5a, 0x1ee5a,\r
-0x1ee5c, 0x1ee5c,\r
-0x1ee5e, 0x1ee5e,\r
-0x1ee60, 0x1ee60,\r
-0x1ee63, 0x1ee63,\r
-0x1ee65, 0x1ee66,\r
-0x1ee6b, 0x1ee6b,\r
-0x1ee73, 0x1ee73,\r
-0x1ee78, 0x1ee78,\r
-0x1ee7d, 0x1ee7d,\r
-0x1ee7f, 0x1ee7f,\r
-0x1ee8a, 0x1ee8a,\r
-0x1ee9c, 0x1eea0,\r
-0x1eea4, 0x1eea4,\r
-0x1eeaa, 0x1eeaa,\r
-0x1eebc, 0x1eeef,\r
-0x1eef2, 0x1efff,\r
-0x1f02c, 0x1f02f,\r
-0x1f094, 0x1f09f,\r
-0x1f0af, 0x1f0b0,\r
-0x1f0c0, 0x1f0c0,\r
-0x1f0d0, 0x1f0d0,\r
-0x1f0f6, 0x1f0ff,\r
-0x1f10d, 0x1f10f,\r
-0x1f16d, 0x1f16f,\r
-0x1f1ad, 0x1f1e5,\r
-0x1f203, 0x1f20f,\r
-0x1f23c, 0x1f23f,\r
-0x1f249, 0x1f24f,\r
-0x1f252, 0x1f25f,\r
-0x1f266, 0x1f2ff,\r
-0x1f6d6, 0x1f6df,\r
-0x1f6ed, 0x1f6ef,\r
-0x1f6fb, 0x1f6ff,\r
-0x1f774, 0x1f77f,\r
-0x1f7d9, 0x1f7df,\r
-0x1f7ec, 0x1f7ff,\r
-0x1f80c, 0x1f80f,\r
-0x1f848, 0x1f84f,\r
-0x1f85a, 0x1f85f,\r
-0x1f888, 0x1f88f,\r
-0x1f8ae, 0x1f8ff,\r
-0x1f90c, 0x1f90c,\r
-0x1f972, 0x1f972,\r
-0x1f977, 0x1f979,\r
-0x1f9a3, 0x1f9a4,\r
-0x1f9ab, 0x1f9ad,\r
-0x1f9cb, 0x1f9cc,\r
-0x1fa54, 0x1fa5f,\r
-0x1fa6e, 0x1fa6f,\r
-0x1fa74, 0x1fa77,\r
-0x1fa7b, 0x1fa7f,\r
-0x1fa83, 0x1fa8f,\r
-0x1fa96, 0x1ffff,\r
-0x2a6d7, 0x2a6ff,\r
-0x2b735, 0x2b73f,\r
-0x2b81e, 0x2b81f,\r
-0x2cea2, 0x2ceaf,\r
-0x2ebe1, 0x2f7ff,\r
-0x2fa1e, 0xe00ff,\r
-0xe01f0, 0x10ffff,\r
-}; /* END of CR_C */\r
-\r
-/* PROPERTY: 'Canadian_Aboriginal': Script */\r
-static const OnigCodePoint\r
-CR_Canadian_Aboriginal[] = { 2,\r
-0x1400, 0x167f,\r
-0x18b0, 0x18f5,\r
-}; /* END of CR_Canadian_Aboriginal */\r
-\r
-/* PROPERTY: 'Carian': Script */\r
-static const OnigCodePoint\r
-CR_Carian[] = { 1,\r
-0x102a0, 0x102d0,\r
-}; /* END of CR_Carian */\r
-\r
-/* PROPERTY: 'Case_Ignorable': Derived Property */\r
-static const OnigCodePoint\r
-CR_Case_Ignorable[] = { 401,\r
-0x0027, 0x0027,\r
-0x002e, 0x002e,\r
-0x003a, 0x003a,\r
-0x005e, 0x005e,\r
-0x0060, 0x0060,\r
-0x00a8, 0x00a8,\r
-0x00ad, 0x00ad,\r
-0x00af, 0x00af,\r
-0x00b4, 0x00b4,\r
-0x00b7, 0x00b8,\r
-0x02b0, 0x036f,\r
-0x0374, 0x0375,\r
-0x037a, 0x037a,\r
-0x0384, 0x0385,\r
-0x0387, 0x0387,\r
-0x0483, 0x0489,\r
-0x0559, 0x0559,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05f4, 0x05f4,\r
-0x0600, 0x0605,\r
-0x0610, 0x061a,\r
-0x061c, 0x061c,\r
-0x0640, 0x0640,\r
-0x064b, 0x065f,\r
-0x0670, 0x0670,\r
-0x06d6, 0x06dd,\r
-0x06df, 0x06e8,\r
-0x06ea, 0x06ed,\r
-0x070f, 0x070f,\r
-0x0711, 0x0711,\r
-0x0730, 0x074a,\r
-0x07a6, 0x07b0,\r
-0x07eb, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x07fd, 0x07fd,\r
-0x0816, 0x082d,\r
-0x0859, 0x085b,\r
-0x08d3, 0x0902,\r
-0x093a, 0x093a,\r
-0x093c, 0x093c,\r
-0x0941, 0x0948,\r
-0x094d, 0x094d,\r
-0x0951, 0x0957,\r
-0x0962, 0x0963,\r
-0x0971, 0x0971,\r
-0x0981, 0x0981,\r
-0x09bc, 0x09bc,\r
-0x09c1, 0x09c4,\r
-0x09cd, 0x09cd,\r
-0x09e2, 0x09e3,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a02,\r
-0x0a3c, 0x0a3c,\r
-0x0a41, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a70, 0x0a71,\r
-0x0a75, 0x0a75,\r
-0x0a81, 0x0a82,\r
-0x0abc, 0x0abc,\r
-0x0ac1, 0x0ac5,\r
-0x0ac7, 0x0ac8,\r
-0x0acd, 0x0acd,\r
-0x0ae2, 0x0ae3,\r
-0x0afa, 0x0aff,\r
-0x0b01, 0x0b01,\r
-0x0b3c, 0x0b3c,\r
-0x0b3f, 0x0b3f,\r
-0x0b41, 0x0b44,\r
-0x0b4d, 0x0b4d,\r
-0x0b56, 0x0b56,\r
-0x0b62, 0x0b63,\r
-0x0b82, 0x0b82,\r
-0x0bc0, 0x0bc0,\r
-0x0bcd, 0x0bcd,\r
-0x0c00, 0x0c00,\r
-0x0c04, 0x0c04,\r
-0x0c3e, 0x0c40,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c62, 0x0c63,\r
-0x0c81, 0x0c81,\r
-0x0cbc, 0x0cbc,\r
-0x0cbf, 0x0cbf,\r
-0x0cc6, 0x0cc6,\r
-0x0ccc, 0x0ccd,\r
-0x0ce2, 0x0ce3,\r
-0x0d00, 0x0d01,\r
-0x0d3b, 0x0d3c,\r
-0x0d41, 0x0d44,\r
-0x0d4d, 0x0d4d,\r
-0x0d62, 0x0d63,\r
-0x0dca, 0x0dca,\r
-0x0dd2, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0e31, 0x0e31,\r
-0x0e34, 0x0e3a,\r
-0x0e46, 0x0e4e,\r
-0x0eb1, 0x0eb1,\r
-0x0eb4, 0x0ebc,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0f18, 0x0f19,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f71, 0x0f7e,\r
-0x0f80, 0x0f84,\r
-0x0f86, 0x0f87,\r
-0x0f8d, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x102d, 0x1030,\r
-0x1032, 0x1037,\r
-0x1039, 0x103a,\r
-0x103d, 0x103e,\r
-0x1058, 0x1059,\r
-0x105e, 0x1060,\r
-0x1071, 0x1074,\r
-0x1082, 0x1082,\r
-0x1085, 0x1086,\r
-0x108d, 0x108d,\r
-0x109d, 0x109d,\r
-0x10fc, 0x10fc,\r
-0x135d, 0x135f,\r
-0x1712, 0x1714,\r
-0x1732, 0x1734,\r
-0x1752, 0x1753,\r
-0x1772, 0x1773,\r
-0x17b4, 0x17b5,\r
-0x17b7, 0x17bd,\r
-0x17c6, 0x17c6,\r
-0x17c9, 0x17d3,\r
-0x17d7, 0x17d7,\r
-0x17dd, 0x17dd,\r
-0x180b, 0x180e,\r
-0x1843, 0x1843,\r
-0x1885, 0x1886,\r
-0x18a9, 0x18a9,\r
-0x1920, 0x1922,\r
-0x1927, 0x1928,\r
-0x1932, 0x1932,\r
-0x1939, 0x193b,\r
-0x1a17, 0x1a18,\r
-0x1a1b, 0x1a1b,\r
-0x1a56, 0x1a56,\r
-0x1a58, 0x1a5e,\r
-0x1a60, 0x1a60,\r
-0x1a62, 0x1a62,\r
-0x1a65, 0x1a6c,\r
-0x1a73, 0x1a7c,\r
-0x1a7f, 0x1a7f,\r
-0x1aa7, 0x1aa7,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b03,\r
-0x1b34, 0x1b34,\r
-0x1b36, 0x1b3a,\r
-0x1b3c, 0x1b3c,\r
-0x1b42, 0x1b42,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1b81,\r
-0x1ba2, 0x1ba5,\r
-0x1ba8, 0x1ba9,\r
-0x1bab, 0x1bad,\r
-0x1be6, 0x1be6,\r
-0x1be8, 0x1be9,\r
-0x1bed, 0x1bed,\r
-0x1bef, 0x1bf1,\r
-0x1c2c, 0x1c33,\r
-0x1c36, 0x1c37,\r
-0x1c78, 0x1c7d,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1ce0,\r
-0x1ce2, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf8, 0x1cf9,\r
-0x1d2c, 0x1d6a,\r
-0x1d78, 0x1d78,\r
-0x1d9b, 0x1df9,\r
-0x1dfb, 0x1dff,\r
-0x1fbd, 0x1fbd,\r
-0x1fbf, 0x1fc1,\r
-0x1fcd, 0x1fcf,\r
-0x1fdd, 0x1fdf,\r
-0x1fed, 0x1fef,\r
-0x1ffd, 0x1ffe,\r
-0x200b, 0x200f,\r
-0x2018, 0x2019,\r
-0x2024, 0x2024,\r
-0x2027, 0x2027,\r
-0x202a, 0x202e,\r
-0x2060, 0x2064,\r
-0x2066, 0x206f,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x20d0, 0x20f0,\r
-0x2c7c, 0x2c7d,\r
-0x2cef, 0x2cf1,\r
-0x2d6f, 0x2d6f,\r
-0x2d7f, 0x2d7f,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3005,\r
-0x302a, 0x302d,\r
-0x3031, 0x3035,\r
-0x303b, 0x303b,\r
-0x3099, 0x309e,\r
-0x30fc, 0x30fe,\r
-0xa015, 0xa015,\r
-0xa4f8, 0xa4fd,\r
-0xa60c, 0xa60c,\r
-0xa66f, 0xa672,\r
-0xa674, 0xa67d,\r
-0xa67f, 0xa67f,\r
-0xa69c, 0xa69f,\r
-0xa6f0, 0xa6f1,\r
-0xa700, 0xa721,\r
-0xa770, 0xa770,\r
-0xa788, 0xa78a,\r
-0xa7f8, 0xa7f9,\r
-0xa802, 0xa802,\r
-0xa806, 0xa806,\r
-0xa80b, 0xa80b,\r
-0xa825, 0xa826,\r
-0xa8c4, 0xa8c5,\r
-0xa8e0, 0xa8f1,\r
-0xa8ff, 0xa8ff,\r
-0xa926, 0xa92d,\r
-0xa947, 0xa951,\r
-0xa980, 0xa982,\r
-0xa9b3, 0xa9b3,\r
-0xa9b6, 0xa9b9,\r
-0xa9bc, 0xa9bd,\r
-0xa9cf, 0xa9cf,\r
-0xa9e5, 0xa9e6,\r
-0xaa29, 0xaa2e,\r
-0xaa31, 0xaa32,\r
-0xaa35, 0xaa36,\r
-0xaa43, 0xaa43,\r
-0xaa4c, 0xaa4c,\r
-0xaa70, 0xaa70,\r
-0xaa7c, 0xaa7c,\r
-0xaab0, 0xaab0,\r
-0xaab2, 0xaab4,\r
-0xaab7, 0xaab8,\r
-0xaabe, 0xaabf,\r
-0xaac1, 0xaac1,\r
-0xaadd, 0xaadd,\r
-0xaaec, 0xaaed,\r
-0xaaf3, 0xaaf4,\r
-0xaaf6, 0xaaf6,\r
-0xab5b, 0xab5f,\r
-0xabe5, 0xabe5,\r
-0xabe8, 0xabe8,\r
-0xabed, 0xabed,\r
-0xfb1e, 0xfb1e,\r
-0xfbb2, 0xfbc1,\r
-0xfe00, 0xfe0f,\r
-0xfe13, 0xfe13,\r
-0xfe20, 0xfe2f,\r
-0xfe52, 0xfe52,\r
-0xfe55, 0xfe55,\r
-0xfeff, 0xfeff,\r
-0xff07, 0xff07,\r
-0xff0e, 0xff0e,\r
-0xff1a, 0xff1a,\r
-0xff3e, 0xff3e,\r
-0xff40, 0xff40,\r
-0xff70, 0xff70,\r
-0xff9e, 0xff9f,\r
-0xffe3, 0xffe3,\r
-0xfff9, 0xfffb,\r
-0x101fd, 0x101fd,\r
-0x102e0, 0x102e0,\r
-0x10376, 0x1037a,\r
-0x10a01, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a0f,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10ae5, 0x10ae6,\r
-0x10d24, 0x10d27,\r
-0x10f46, 0x10f50,\r
-0x11001, 0x11001,\r
-0x11038, 0x11046,\r
-0x1107f, 0x11081,\r
-0x110b3, 0x110b6,\r
-0x110b9, 0x110ba,\r
-0x110bd, 0x110bd,\r
-0x110cd, 0x110cd,\r
-0x11100, 0x11102,\r
-0x11127, 0x1112b,\r
-0x1112d, 0x11134,\r
-0x11173, 0x11173,\r
-0x11180, 0x11181,\r
-0x111b6, 0x111be,\r
-0x111c9, 0x111cc,\r
-0x1122f, 0x11231,\r
-0x11234, 0x11234,\r
-0x11236, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x112df, 0x112df,\r
-0x112e3, 0x112ea,\r
-0x11300, 0x11301,\r
-0x1133b, 0x1133c,\r
-0x11340, 0x11340,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11438, 0x1143f,\r
-0x11442, 0x11444,\r
-0x11446, 0x11446,\r
-0x1145e, 0x1145e,\r
-0x114b3, 0x114b8,\r
-0x114ba, 0x114ba,\r
-0x114bf, 0x114c0,\r
-0x114c2, 0x114c3,\r
-0x115b2, 0x115b5,\r
-0x115bc, 0x115bd,\r
-0x115bf, 0x115c0,\r
-0x115dc, 0x115dd,\r
-0x11633, 0x1163a,\r
-0x1163d, 0x1163d,\r
-0x1163f, 0x11640,\r
-0x116ab, 0x116ab,\r
-0x116ad, 0x116ad,\r
-0x116b0, 0x116b5,\r
-0x116b7, 0x116b7,\r
-0x1171d, 0x1171f,\r
-0x11722, 0x11725,\r
-0x11727, 0x1172b,\r
-0x1182f, 0x11837,\r
-0x11839, 0x1183a,\r
-0x119d4, 0x119d7,\r
-0x119da, 0x119db,\r
-0x119e0, 0x119e0,\r
-0x11a01, 0x11a0a,\r
-0x11a33, 0x11a38,\r
-0x11a3b, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a51, 0x11a56,\r
-0x11a59, 0x11a5b,\r
-0x11a8a, 0x11a96,\r
-0x11a98, 0x11a99,\r
-0x11c30, 0x11c36,\r
-0x11c38, 0x11c3d,\r
-0x11c3f, 0x11c3f,\r
-0x11c92, 0x11ca7,\r
-0x11caa, 0x11cb0,\r
-0x11cb2, 0x11cb3,\r
-0x11cb5, 0x11cb6,\r
-0x11d31, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d45,\r
-0x11d47, 0x11d47,\r
-0x11d90, 0x11d91,\r
-0x11d95, 0x11d95,\r
-0x11d97, 0x11d97,\r
-0x11ef3, 0x11ef4,\r
-0x13430, 0x13438,\r
-0x16af0, 0x16af4,\r
-0x16b30, 0x16b36,\r
-0x16b40, 0x16b43,\r
-0x16f4f, 0x16f4f,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x1bc9d, 0x1bc9e,\r
-0x1bca0, 0x1bca3,\r
-0x1d167, 0x1d169,\r
-0x1d173, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e130, 0x1e13d,\r
-0x1e2ec, 0x1e2ef,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e944, 0x1e94b,\r
-0x1f3fb, 0x1f3ff,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Case_Ignorable */\r
-\r
-/* PROPERTY: 'Cased': Derived Property */\r
-static const OnigCodePoint\r
-CR_Cased[] = { 140,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x01ba,\r
-0x01bc, 0x01bf,\r
-0x01c4, 0x0293,\r
-0x0295, 0x02b8,\r
-0x02c0, 0x02c1,\r
-0x02e0, 0x02e4,\r
-0x0345, 0x0345,\r
-0x0370, 0x0373,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0560, 0x0588,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1d00, 0x1dbf,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2134,\r
-0x2139, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x217f,\r
-0x2183, 0x2184,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa640, 0xa66d,\r
-0xa680, 0xa69d,\r
-0xa722, 0xa787,\r
-0xa78b, 0xa78e,\r
-0xa790, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f8, 0xa7fa,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0x10400, 0x1044f,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x118a0, 0x118df,\r
-0x16e40, 0x16e7f,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e900, 0x1e943,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-}; /* END of CR_Cased */\r
-\r
-/* PROPERTY: 'Caucasian_Albanian': Script */\r
-static const OnigCodePoint\r
-CR_Caucasian_Albanian[] = { 2,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-}; /* END of CR_Caucasian_Albanian */\r
-\r
-/* PROPERTY: 'Cc': General Category */\r
-#define CR_Cc CR_Cntrl\r
-\r
-/* PROPERTY: 'Cf': General Category */\r
-static const OnigCodePoint\r
-CR_Cf[] = { 20,\r
-0x00ad, 0x00ad,\r
-0x0600, 0x0605,\r
-0x061c, 0x061c,\r
-0x06dd, 0x06dd,\r
-0x070f, 0x070f,\r
-0x08e2, 0x08e2,\r
-0x180e, 0x180e,\r
-0x200b, 0x200f,\r
-0x202a, 0x202e,\r
-0x2060, 0x2064,\r
-0x2066, 0x206f,\r
-0xfeff, 0xfeff,\r
-0xfff9, 0xfffb,\r
-0x110bd, 0x110bd,\r
-0x110cd, 0x110cd,\r
-0x13430, 0x13438,\r
-0x1bca0, 0x1bca3,\r
-0x1d173, 0x1d17a,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-}; /* END of CR_Cf */\r
-\r
-/* PROPERTY: 'Chakma': Script */\r
-static const OnigCodePoint\r
-CR_Chakma[] = { 2,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-}; /* END of CR_Chakma */\r
-\r
-/* PROPERTY: 'Cham': Script */\r
-static const OnigCodePoint\r
-CR_Cham[] = { 4,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaa5f,\r
-}; /* END of CR_Cham */\r
-\r
-/* PROPERTY: 'Changes_When_Casefolded': Derived Property */\r
-static const OnigCodePoint\r
-CR_Changes_When_Casefolded[] = { 612,\r
-0x0041, 0x005a,\r
-0x00b5, 0x00b5,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00df,\r
-0x0100, 0x0100,\r
-0x0102, 0x0102,\r
-0x0104, 0x0104,\r
-0x0106, 0x0106,\r
-0x0108, 0x0108,\r
-0x010a, 0x010a,\r
-0x010c, 0x010c,\r
-0x010e, 0x010e,\r
-0x0110, 0x0110,\r
-0x0112, 0x0112,\r
-0x0114, 0x0114,\r
-0x0116, 0x0116,\r
-0x0118, 0x0118,\r
-0x011a, 0x011a,\r
-0x011c, 0x011c,\r
-0x011e, 0x011e,\r
-0x0120, 0x0120,\r
-0x0122, 0x0122,\r
-0x0124, 0x0124,\r
-0x0126, 0x0126,\r
-0x0128, 0x0128,\r
-0x012a, 0x012a,\r
-0x012c, 0x012c,\r
-0x012e, 0x012e,\r
-0x0130, 0x0130,\r
-0x0132, 0x0132,\r
-0x0134, 0x0134,\r
-0x0136, 0x0136,\r
-0x0139, 0x0139,\r
-0x013b, 0x013b,\r
-0x013d, 0x013d,\r
-0x013f, 0x013f,\r
-0x0141, 0x0141,\r
-0x0143, 0x0143,\r
-0x0145, 0x0145,\r
-0x0147, 0x0147,\r
-0x0149, 0x014a,\r
-0x014c, 0x014c,\r
-0x014e, 0x014e,\r
-0x0150, 0x0150,\r
-0x0152, 0x0152,\r
-0x0154, 0x0154,\r
-0x0156, 0x0156,\r
-0x0158, 0x0158,\r
-0x015a, 0x015a,\r
-0x015c, 0x015c,\r
-0x015e, 0x015e,\r
-0x0160, 0x0160,\r
-0x0162, 0x0162,\r
-0x0164, 0x0164,\r
-0x0166, 0x0166,\r
-0x0168, 0x0168,\r
-0x016a, 0x016a,\r
-0x016c, 0x016c,\r
-0x016e, 0x016e,\r
-0x0170, 0x0170,\r
-0x0172, 0x0172,\r
-0x0174, 0x0174,\r
-0x0176, 0x0176,\r
-0x0178, 0x0179,\r
-0x017b, 0x017b,\r
-0x017d, 0x017d,\r
-0x017f, 0x017f,\r
-0x0181, 0x0182,\r
-0x0184, 0x0184,\r
-0x0186, 0x0187,\r
-0x0189, 0x018b,\r
-0x018e, 0x0191,\r
-0x0193, 0x0194,\r
-0x0196, 0x0198,\r
-0x019c, 0x019d,\r
-0x019f, 0x01a0,\r
-0x01a2, 0x01a2,\r
-0x01a4, 0x01a4,\r
-0x01a6, 0x01a7,\r
-0x01a9, 0x01a9,\r
-0x01ac, 0x01ac,\r
-0x01ae, 0x01af,\r
-0x01b1, 0x01b3,\r
-0x01b5, 0x01b5,\r
-0x01b7, 0x01b8,\r
-0x01bc, 0x01bc,\r
-0x01c4, 0x01c5,\r
-0x01c7, 0x01c8,\r
-0x01ca, 0x01cb,\r
-0x01cd, 0x01cd,\r
-0x01cf, 0x01cf,\r
-0x01d1, 0x01d1,\r
-0x01d3, 0x01d3,\r
-0x01d5, 0x01d5,\r
-0x01d7, 0x01d7,\r
-0x01d9, 0x01d9,\r
-0x01db, 0x01db,\r
-0x01de, 0x01de,\r
-0x01e0, 0x01e0,\r
-0x01e2, 0x01e2,\r
-0x01e4, 0x01e4,\r
-0x01e6, 0x01e6,\r
-0x01e8, 0x01e8,\r
-0x01ea, 0x01ea,\r
-0x01ec, 0x01ec,\r
-0x01ee, 0x01ee,\r
-0x01f1, 0x01f2,\r
-0x01f4, 0x01f4,\r
-0x01f6, 0x01f8,\r
-0x01fa, 0x01fa,\r
-0x01fc, 0x01fc,\r
-0x01fe, 0x01fe,\r
-0x0200, 0x0200,\r
-0x0202, 0x0202,\r
-0x0204, 0x0204,\r
-0x0206, 0x0206,\r
-0x0208, 0x0208,\r
-0x020a, 0x020a,\r
-0x020c, 0x020c,\r
-0x020e, 0x020e,\r
-0x0210, 0x0210,\r
-0x0212, 0x0212,\r
-0x0214, 0x0214,\r
-0x0216, 0x0216,\r
-0x0218, 0x0218,\r
-0x021a, 0x021a,\r
-0x021c, 0x021c,\r
-0x021e, 0x021e,\r
-0x0220, 0x0220,\r
-0x0222, 0x0222,\r
-0x0224, 0x0224,\r
-0x0226, 0x0226,\r
-0x0228, 0x0228,\r
-0x022a, 0x022a,\r
-0x022c, 0x022c,\r
-0x022e, 0x022e,\r
-0x0230, 0x0230,\r
-0x0232, 0x0232,\r
-0x023a, 0x023b,\r
-0x023d, 0x023e,\r
-0x0241, 0x0241,\r
-0x0243, 0x0246,\r
-0x0248, 0x0248,\r
-0x024a, 0x024a,\r
-0x024c, 0x024c,\r
-0x024e, 0x024e,\r
-0x0345, 0x0345,\r
-0x0370, 0x0370,\r
-0x0372, 0x0372,\r
-0x0376, 0x0376,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x038f,\r
-0x0391, 0x03a1,\r
-0x03a3, 0x03ab,\r
-0x03c2, 0x03c2,\r
-0x03cf, 0x03d1,\r
-0x03d5, 0x03d6,\r
-0x03d8, 0x03d8,\r
-0x03da, 0x03da,\r
-0x03dc, 0x03dc,\r
-0x03de, 0x03de,\r
-0x03e0, 0x03e0,\r
-0x03e2, 0x03e2,\r
-0x03e4, 0x03e4,\r
-0x03e6, 0x03e6,\r
-0x03e8, 0x03e8,\r
-0x03ea, 0x03ea,\r
-0x03ec, 0x03ec,\r
-0x03ee, 0x03ee,\r
-0x03f0, 0x03f1,\r
-0x03f4, 0x03f5,\r
-0x03f7, 0x03f7,\r
-0x03f9, 0x03fa,\r
-0x03fd, 0x042f,\r
-0x0460, 0x0460,\r
-0x0462, 0x0462,\r
-0x0464, 0x0464,\r
-0x0466, 0x0466,\r
-0x0468, 0x0468,\r
-0x046a, 0x046a,\r
-0x046c, 0x046c,\r
-0x046e, 0x046e,\r
-0x0470, 0x0470,\r
-0x0472, 0x0472,\r
-0x0474, 0x0474,\r
-0x0476, 0x0476,\r
-0x0478, 0x0478,\r
-0x047a, 0x047a,\r
-0x047c, 0x047c,\r
-0x047e, 0x047e,\r
-0x0480, 0x0480,\r
-0x048a, 0x048a,\r
-0x048c, 0x048c,\r
-0x048e, 0x048e,\r
-0x0490, 0x0490,\r
-0x0492, 0x0492,\r
-0x0494, 0x0494,\r
-0x0496, 0x0496,\r
-0x0498, 0x0498,\r
-0x049a, 0x049a,\r
-0x049c, 0x049c,\r
-0x049e, 0x049e,\r
-0x04a0, 0x04a0,\r
-0x04a2, 0x04a2,\r
-0x04a4, 0x04a4,\r
-0x04a6, 0x04a6,\r
-0x04a8, 0x04a8,\r
-0x04aa, 0x04aa,\r
-0x04ac, 0x04ac,\r
-0x04ae, 0x04ae,\r
-0x04b0, 0x04b0,\r
-0x04b2, 0x04b2,\r
-0x04b4, 0x04b4,\r
-0x04b6, 0x04b6,\r
-0x04b8, 0x04b8,\r
-0x04ba, 0x04ba,\r
-0x04bc, 0x04bc,\r
-0x04be, 0x04be,\r
-0x04c0, 0x04c1,\r
-0x04c3, 0x04c3,\r
-0x04c5, 0x04c5,\r
-0x04c7, 0x04c7,\r
-0x04c9, 0x04c9,\r
-0x04cb, 0x04cb,\r
-0x04cd, 0x04cd,\r
-0x04d0, 0x04d0,\r
-0x04d2, 0x04d2,\r
-0x04d4, 0x04d4,\r
-0x04d6, 0x04d6,\r
-0x04d8, 0x04d8,\r
-0x04da, 0x04da,\r
-0x04dc, 0x04dc,\r
-0x04de, 0x04de,\r
-0x04e0, 0x04e0,\r
-0x04e2, 0x04e2,\r
-0x04e4, 0x04e4,\r
-0x04e6, 0x04e6,\r
-0x04e8, 0x04e8,\r
-0x04ea, 0x04ea,\r
-0x04ec, 0x04ec,\r
-0x04ee, 0x04ee,\r
-0x04f0, 0x04f0,\r
-0x04f2, 0x04f2,\r
-0x04f4, 0x04f4,\r
-0x04f6, 0x04f6,\r
-0x04f8, 0x04f8,\r
-0x04fa, 0x04fa,\r
-0x04fc, 0x04fc,\r
-0x04fe, 0x04fe,\r
-0x0500, 0x0500,\r
-0x0502, 0x0502,\r
-0x0504, 0x0504,\r
-0x0506, 0x0506,\r
-0x0508, 0x0508,\r
-0x050a, 0x050a,\r
-0x050c, 0x050c,\r
-0x050e, 0x050e,\r
-0x0510, 0x0510,\r
-0x0512, 0x0512,\r
-0x0514, 0x0514,\r
-0x0516, 0x0516,\r
-0x0518, 0x0518,\r
-0x051a, 0x051a,\r
-0x051c, 0x051c,\r
-0x051e, 0x051e,\r
-0x0520, 0x0520,\r
-0x0522, 0x0522,\r
-0x0524, 0x0524,\r
-0x0526, 0x0526,\r
-0x0528, 0x0528,\r
-0x052a, 0x052a,\r
-0x052c, 0x052c,\r
-0x052e, 0x052e,\r
-0x0531, 0x0556,\r
-0x0587, 0x0587,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1e00, 0x1e00,\r
-0x1e02, 0x1e02,\r
-0x1e04, 0x1e04,\r
-0x1e06, 0x1e06,\r
-0x1e08, 0x1e08,\r
-0x1e0a, 0x1e0a,\r
-0x1e0c, 0x1e0c,\r
-0x1e0e, 0x1e0e,\r
-0x1e10, 0x1e10,\r
-0x1e12, 0x1e12,\r
-0x1e14, 0x1e14,\r
-0x1e16, 0x1e16,\r
-0x1e18, 0x1e18,\r
-0x1e1a, 0x1e1a,\r
-0x1e1c, 0x1e1c,\r
-0x1e1e, 0x1e1e,\r
-0x1e20, 0x1e20,\r
-0x1e22, 0x1e22,\r
-0x1e24, 0x1e24,\r
-0x1e26, 0x1e26,\r
-0x1e28, 0x1e28,\r
-0x1e2a, 0x1e2a,\r
-0x1e2c, 0x1e2c,\r
-0x1e2e, 0x1e2e,\r
-0x1e30, 0x1e30,\r
-0x1e32, 0x1e32,\r
-0x1e34, 0x1e34,\r
-0x1e36, 0x1e36,\r
-0x1e38, 0x1e38,\r
-0x1e3a, 0x1e3a,\r
-0x1e3c, 0x1e3c,\r
-0x1e3e, 0x1e3e,\r
-0x1e40, 0x1e40,\r
-0x1e42, 0x1e42,\r
-0x1e44, 0x1e44,\r
-0x1e46, 0x1e46,\r
-0x1e48, 0x1e48,\r
-0x1e4a, 0x1e4a,\r
-0x1e4c, 0x1e4c,\r
-0x1e4e, 0x1e4e,\r
-0x1e50, 0x1e50,\r
-0x1e52, 0x1e52,\r
-0x1e54, 0x1e54,\r
-0x1e56, 0x1e56,\r
-0x1e58, 0x1e58,\r
-0x1e5a, 0x1e5a,\r
-0x1e5c, 0x1e5c,\r
-0x1e5e, 0x1e5e,\r
-0x1e60, 0x1e60,\r
-0x1e62, 0x1e62,\r
-0x1e64, 0x1e64,\r
-0x1e66, 0x1e66,\r
-0x1e68, 0x1e68,\r
-0x1e6a, 0x1e6a,\r
-0x1e6c, 0x1e6c,\r
-0x1e6e, 0x1e6e,\r
-0x1e70, 0x1e70,\r
-0x1e72, 0x1e72,\r
-0x1e74, 0x1e74,\r
-0x1e76, 0x1e76,\r
-0x1e78, 0x1e78,\r
-0x1e7a, 0x1e7a,\r
-0x1e7c, 0x1e7c,\r
-0x1e7e, 0x1e7e,\r
-0x1e80, 0x1e80,\r
-0x1e82, 0x1e82,\r
-0x1e84, 0x1e84,\r
-0x1e86, 0x1e86,\r
-0x1e88, 0x1e88,\r
-0x1e8a, 0x1e8a,\r
-0x1e8c, 0x1e8c,\r
-0x1e8e, 0x1e8e,\r
-0x1e90, 0x1e90,\r
-0x1e92, 0x1e92,\r
-0x1e94, 0x1e94,\r
-0x1e9a, 0x1e9b,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1ea0,\r
-0x1ea2, 0x1ea2,\r
-0x1ea4, 0x1ea4,\r
-0x1ea6, 0x1ea6,\r
-0x1ea8, 0x1ea8,\r
-0x1eaa, 0x1eaa,\r
-0x1eac, 0x1eac,\r
-0x1eae, 0x1eae,\r
-0x1eb0, 0x1eb0,\r
-0x1eb2, 0x1eb2,\r
-0x1eb4, 0x1eb4,\r
-0x1eb6, 0x1eb6,\r
-0x1eb8, 0x1eb8,\r
-0x1eba, 0x1eba,\r
-0x1ebc, 0x1ebc,\r
-0x1ebe, 0x1ebe,\r
-0x1ec0, 0x1ec0,\r
-0x1ec2, 0x1ec2,\r
-0x1ec4, 0x1ec4,\r
-0x1ec6, 0x1ec6,\r
-0x1ec8, 0x1ec8,\r
-0x1eca, 0x1eca,\r
-0x1ecc, 0x1ecc,\r
-0x1ece, 0x1ece,\r
-0x1ed0, 0x1ed0,\r
-0x1ed2, 0x1ed2,\r
-0x1ed4, 0x1ed4,\r
-0x1ed6, 0x1ed6,\r
-0x1ed8, 0x1ed8,\r
-0x1eda, 0x1eda,\r
-0x1edc, 0x1edc,\r
-0x1ede, 0x1ede,\r
-0x1ee0, 0x1ee0,\r
-0x1ee2, 0x1ee2,\r
-0x1ee4, 0x1ee4,\r
-0x1ee6, 0x1ee6,\r
-0x1ee8, 0x1ee8,\r
-0x1eea, 0x1eea,\r
-0x1eec, 0x1eec,\r
-0x1eee, 0x1eee,\r
-0x1ef0, 0x1ef0,\r
-0x1ef2, 0x1ef2,\r
-0x1ef4, 0x1ef4,\r
-0x1ef6, 0x1ef6,\r
-0x1ef8, 0x1ef8,\r
-0x1efa, 0x1efa,\r
-0x1efc, 0x1efc,\r
-0x1efe, 0x1efe,\r
-0x1f08, 0x1f0f,\r
-0x1f18, 0x1f1d,\r
-0x1f28, 0x1f2f,\r
-0x1f38, 0x1f3f,\r
-0x1f48, 0x1f4d,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f5f,\r
-0x1f68, 0x1f6f,\r
-0x1f80, 0x1faf,\r
-0x1fb2, 0x1fb4,\r
-0x1fb7, 0x1fbc,\r
-0x1fc2, 0x1fc4,\r
-0x1fc7, 0x1fcc,\r
-0x1fd8, 0x1fdb,\r
-0x1fe8, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff7, 0x1ffc,\r
-0x2126, 0x2126,\r
-0x212a, 0x212b,\r
-0x2132, 0x2132,\r
-0x2160, 0x216f,\r
-0x2183, 0x2183,\r
-0x24b6, 0x24cf,\r
-0x2c00, 0x2c2e,\r
-0x2c60, 0x2c60,\r
-0x2c62, 0x2c64,\r
-0x2c67, 0x2c67,\r
-0x2c69, 0x2c69,\r
-0x2c6b, 0x2c6b,\r
-0x2c6d, 0x2c70,\r
-0x2c72, 0x2c72,\r
-0x2c75, 0x2c75,\r
-0x2c7e, 0x2c80,\r
-0x2c82, 0x2c82,\r
-0x2c84, 0x2c84,\r
-0x2c86, 0x2c86,\r
-0x2c88, 0x2c88,\r
-0x2c8a, 0x2c8a,\r
-0x2c8c, 0x2c8c,\r
-0x2c8e, 0x2c8e,\r
-0x2c90, 0x2c90,\r
-0x2c92, 0x2c92,\r
-0x2c94, 0x2c94,\r
-0x2c96, 0x2c96,\r
-0x2c98, 0x2c98,\r
-0x2c9a, 0x2c9a,\r
-0x2c9c, 0x2c9c,\r
-0x2c9e, 0x2c9e,\r
-0x2ca0, 0x2ca0,\r
-0x2ca2, 0x2ca2,\r
-0x2ca4, 0x2ca4,\r
-0x2ca6, 0x2ca6,\r
-0x2ca8, 0x2ca8,\r
-0x2caa, 0x2caa,\r
-0x2cac, 0x2cac,\r
-0x2cae, 0x2cae,\r
-0x2cb0, 0x2cb0,\r
-0x2cb2, 0x2cb2,\r
-0x2cb4, 0x2cb4,\r
-0x2cb6, 0x2cb6,\r
-0x2cb8, 0x2cb8,\r
-0x2cba, 0x2cba,\r
-0x2cbc, 0x2cbc,\r
-0x2cbe, 0x2cbe,\r
-0x2cc0, 0x2cc0,\r
-0x2cc2, 0x2cc2,\r
-0x2cc4, 0x2cc4,\r
-0x2cc6, 0x2cc6,\r
-0x2cc8, 0x2cc8,\r
-0x2cca, 0x2cca,\r
-0x2ccc, 0x2ccc,\r
-0x2cce, 0x2cce,\r
-0x2cd0, 0x2cd0,\r
-0x2cd2, 0x2cd2,\r
-0x2cd4, 0x2cd4,\r
-0x2cd6, 0x2cd6,\r
-0x2cd8, 0x2cd8,\r
-0x2cda, 0x2cda,\r
-0x2cdc, 0x2cdc,\r
-0x2cde, 0x2cde,\r
-0x2ce0, 0x2ce0,\r
-0x2ce2, 0x2ce2,\r
-0x2ceb, 0x2ceb,\r
-0x2ced, 0x2ced,\r
-0x2cf2, 0x2cf2,\r
-0xa640, 0xa640,\r
-0xa642, 0xa642,\r
-0xa644, 0xa644,\r
-0xa646, 0xa646,\r
-0xa648, 0xa648,\r
-0xa64a, 0xa64a,\r
-0xa64c, 0xa64c,\r
-0xa64e, 0xa64e,\r
-0xa650, 0xa650,\r
-0xa652, 0xa652,\r
-0xa654, 0xa654,\r
-0xa656, 0xa656,\r
-0xa658, 0xa658,\r
-0xa65a, 0xa65a,\r
-0xa65c, 0xa65c,\r
-0xa65e, 0xa65e,\r
-0xa660, 0xa660,\r
-0xa662, 0xa662,\r
-0xa664, 0xa664,\r
-0xa666, 0xa666,\r
-0xa668, 0xa668,\r
-0xa66a, 0xa66a,\r
-0xa66c, 0xa66c,\r
-0xa680, 0xa680,\r
-0xa682, 0xa682,\r
-0xa684, 0xa684,\r
-0xa686, 0xa686,\r
-0xa688, 0xa688,\r
-0xa68a, 0xa68a,\r
-0xa68c, 0xa68c,\r
-0xa68e, 0xa68e,\r
-0xa690, 0xa690,\r
-0xa692, 0xa692,\r
-0xa694, 0xa694,\r
-0xa696, 0xa696,\r
-0xa698, 0xa698,\r
-0xa69a, 0xa69a,\r
-0xa722, 0xa722,\r
-0xa724, 0xa724,\r
-0xa726, 0xa726,\r
-0xa728, 0xa728,\r
-0xa72a, 0xa72a,\r
-0xa72c, 0xa72c,\r
-0xa72e, 0xa72e,\r
-0xa732, 0xa732,\r
-0xa734, 0xa734,\r
-0xa736, 0xa736,\r
-0xa738, 0xa738,\r
-0xa73a, 0xa73a,\r
-0xa73c, 0xa73c,\r
-0xa73e, 0xa73e,\r
-0xa740, 0xa740,\r
-0xa742, 0xa742,\r
-0xa744, 0xa744,\r
-0xa746, 0xa746,\r
-0xa748, 0xa748,\r
-0xa74a, 0xa74a,\r
-0xa74c, 0xa74c,\r
-0xa74e, 0xa74e,\r
-0xa750, 0xa750,\r
-0xa752, 0xa752,\r
-0xa754, 0xa754,\r
-0xa756, 0xa756,\r
-0xa758, 0xa758,\r
-0xa75a, 0xa75a,\r
-0xa75c, 0xa75c,\r
-0xa75e, 0xa75e,\r
-0xa760, 0xa760,\r
-0xa762, 0xa762,\r
-0xa764, 0xa764,\r
-0xa766, 0xa766,\r
-0xa768, 0xa768,\r
-0xa76a, 0xa76a,\r
-0xa76c, 0xa76c,\r
-0xa76e, 0xa76e,\r
-0xa779, 0xa779,\r
-0xa77b, 0xa77b,\r
-0xa77d, 0xa77e,\r
-0xa780, 0xa780,\r
-0xa782, 0xa782,\r
-0xa784, 0xa784,\r
-0xa786, 0xa786,\r
-0xa78b, 0xa78b,\r
-0xa78d, 0xa78d,\r
-0xa790, 0xa790,\r
-0xa792, 0xa792,\r
-0xa796, 0xa796,\r
-0xa798, 0xa798,\r
-0xa79a, 0xa79a,\r
-0xa79c, 0xa79c,\r
-0xa79e, 0xa79e,\r
-0xa7a0, 0xa7a0,\r
-0xa7a2, 0xa7a2,\r
-0xa7a4, 0xa7a4,\r
-0xa7a6, 0xa7a6,\r
-0xa7a8, 0xa7a8,\r
-0xa7aa, 0xa7ae,\r
-0xa7b0, 0xa7b4,\r
-0xa7b6, 0xa7b6,\r
-0xa7b8, 0xa7b8,\r
-0xa7ba, 0xa7ba,\r
-0xa7bc, 0xa7bc,\r
-0xa7be, 0xa7be,\r
-0xa7c2, 0xa7c2,\r
-0xa7c4, 0xa7c6,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff21, 0xff3a,\r
-0x10400, 0x10427,\r
-0x104b0, 0x104d3,\r
-0x10c80, 0x10cb2,\r
-0x118a0, 0x118bf,\r
-0x16e40, 0x16e5f,\r
-0x1e900, 0x1e921,\r
-}; /* END of CR_Changes_When_Casefolded */\r
-\r
-/* PROPERTY: 'Changes_When_Casemapped': Derived Property */\r
-static const OnigCodePoint\r
-CR_Changes_When_Casemapped[] = { 123,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00b5, 0x00b5,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x0137,\r
-0x0139, 0x018c,\r
-0x018e, 0x019a,\r
-0x019c, 0x01a9,\r
-0x01ac, 0x01b9,\r
-0x01bc, 0x01bd,\r
-0x01bf, 0x01bf,\r
-0x01c4, 0x0220,\r
-0x0222, 0x0233,\r
-0x023a, 0x0254,\r
-0x0256, 0x0257,\r
-0x0259, 0x0259,\r
-0x025b, 0x025c,\r
-0x0260, 0x0261,\r
-0x0263, 0x0263,\r
-0x0265, 0x0266,\r
-0x0268, 0x026c,\r
-0x026f, 0x026f,\r
-0x0271, 0x0272,\r
-0x0275, 0x0275,\r
-0x027d, 0x027d,\r
-0x0280, 0x0280,\r
-0x0282, 0x0283,\r
-0x0287, 0x028c,\r
-0x0292, 0x0292,\r
-0x029d, 0x029e,\r
-0x0345, 0x0345,\r
-0x0370, 0x0373,\r
-0x0376, 0x0377,\r
-0x037b, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03d1,\r
-0x03d5, 0x03f5,\r
-0x03f7, 0x03fb,\r
-0x03fd, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0561, 0x0587,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1d79, 0x1d79,\r
-0x1d7d, 0x1d7d,\r
-0x1d8e, 0x1d8e,\r
-0x1e00, 0x1e9b,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2126, 0x2126,\r
-0x212a, 0x212b,\r
-0x2132, 0x2132,\r
-0x214e, 0x214e,\r
-0x2160, 0x217f,\r
-0x2183, 0x2184,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2c70,\r
-0x2c72, 0x2c73,\r
-0x2c75, 0x2c76,\r
-0x2c7e, 0x2ce3,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa640, 0xa66d,\r
-0xa680, 0xa69b,\r
-0xa722, 0xa72f,\r
-0xa732, 0xa76f,\r
-0xa779, 0xa787,\r
-0xa78b, 0xa78d,\r
-0xa790, 0xa794,\r
-0xa796, 0xa7ae,\r
-0xa7b0, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xab53, 0xab53,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0x10400, 0x1044f,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x118a0, 0x118df,\r
-0x16e40, 0x16e7f,\r
-0x1e900, 0x1e943,\r
-}; /* END of CR_Changes_When_Casemapped */\r
-\r
-/* PROPERTY: 'Changes_When_Lowercased': Derived Property */\r
-static const OnigCodePoint\r
-CR_Changes_When_Lowercased[] = { 599,\r
-0x0041, 0x005a,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00de,\r
-0x0100, 0x0100,\r
-0x0102, 0x0102,\r
-0x0104, 0x0104,\r
-0x0106, 0x0106,\r
-0x0108, 0x0108,\r
-0x010a, 0x010a,\r
-0x010c, 0x010c,\r
-0x010e, 0x010e,\r
-0x0110, 0x0110,\r
-0x0112, 0x0112,\r
-0x0114, 0x0114,\r
-0x0116, 0x0116,\r
-0x0118, 0x0118,\r
-0x011a, 0x011a,\r
-0x011c, 0x011c,\r
-0x011e, 0x011e,\r
-0x0120, 0x0120,\r
-0x0122, 0x0122,\r
-0x0124, 0x0124,\r
-0x0126, 0x0126,\r
-0x0128, 0x0128,\r
-0x012a, 0x012a,\r
-0x012c, 0x012c,\r
-0x012e, 0x012e,\r
-0x0130, 0x0130,\r
-0x0132, 0x0132,\r
-0x0134, 0x0134,\r
-0x0136, 0x0136,\r
-0x0139, 0x0139,\r
-0x013b, 0x013b,\r
-0x013d, 0x013d,\r
-0x013f, 0x013f,\r
-0x0141, 0x0141,\r
-0x0143, 0x0143,\r
-0x0145, 0x0145,\r
-0x0147, 0x0147,\r
-0x014a, 0x014a,\r
-0x014c, 0x014c,\r
-0x014e, 0x014e,\r
-0x0150, 0x0150,\r
-0x0152, 0x0152,\r
-0x0154, 0x0154,\r
-0x0156, 0x0156,\r
-0x0158, 0x0158,\r
-0x015a, 0x015a,\r
-0x015c, 0x015c,\r
-0x015e, 0x015e,\r
-0x0160, 0x0160,\r
-0x0162, 0x0162,\r
-0x0164, 0x0164,\r
-0x0166, 0x0166,\r
-0x0168, 0x0168,\r
-0x016a, 0x016a,\r
-0x016c, 0x016c,\r
-0x016e, 0x016e,\r
-0x0170, 0x0170,\r
-0x0172, 0x0172,\r
-0x0174, 0x0174,\r
-0x0176, 0x0176,\r
-0x0178, 0x0179,\r
-0x017b, 0x017b,\r
-0x017d, 0x017d,\r
-0x0181, 0x0182,\r
-0x0184, 0x0184,\r
-0x0186, 0x0187,\r
-0x0189, 0x018b,\r
-0x018e, 0x0191,\r
-0x0193, 0x0194,\r
-0x0196, 0x0198,\r
-0x019c, 0x019d,\r
-0x019f, 0x01a0,\r
-0x01a2, 0x01a2,\r
-0x01a4, 0x01a4,\r
-0x01a6, 0x01a7,\r
-0x01a9, 0x01a9,\r
-0x01ac, 0x01ac,\r
-0x01ae, 0x01af,\r
-0x01b1, 0x01b3,\r
-0x01b5, 0x01b5,\r
-0x01b7, 0x01b8,\r
-0x01bc, 0x01bc,\r
-0x01c4, 0x01c5,\r
-0x01c7, 0x01c8,\r
-0x01ca, 0x01cb,\r
-0x01cd, 0x01cd,\r
-0x01cf, 0x01cf,\r
-0x01d1, 0x01d1,\r
-0x01d3, 0x01d3,\r
-0x01d5, 0x01d5,\r
-0x01d7, 0x01d7,\r
-0x01d9, 0x01d9,\r
-0x01db, 0x01db,\r
-0x01de, 0x01de,\r
-0x01e0, 0x01e0,\r
-0x01e2, 0x01e2,\r
-0x01e4, 0x01e4,\r
-0x01e6, 0x01e6,\r
-0x01e8, 0x01e8,\r
-0x01ea, 0x01ea,\r
-0x01ec, 0x01ec,\r
-0x01ee, 0x01ee,\r
-0x01f1, 0x01f2,\r
-0x01f4, 0x01f4,\r
-0x01f6, 0x01f8,\r
-0x01fa, 0x01fa,\r
-0x01fc, 0x01fc,\r
-0x01fe, 0x01fe,\r
-0x0200, 0x0200,\r
-0x0202, 0x0202,\r
-0x0204, 0x0204,\r
-0x0206, 0x0206,\r
-0x0208, 0x0208,\r
-0x020a, 0x020a,\r
-0x020c, 0x020c,\r
-0x020e, 0x020e,\r
-0x0210, 0x0210,\r
-0x0212, 0x0212,\r
-0x0214, 0x0214,\r
-0x0216, 0x0216,\r
-0x0218, 0x0218,\r
-0x021a, 0x021a,\r
-0x021c, 0x021c,\r
-0x021e, 0x021e,\r
-0x0220, 0x0220,\r
-0x0222, 0x0222,\r
-0x0224, 0x0224,\r
-0x0226, 0x0226,\r
-0x0228, 0x0228,\r
-0x022a, 0x022a,\r
-0x022c, 0x022c,\r
-0x022e, 0x022e,\r
-0x0230, 0x0230,\r
-0x0232, 0x0232,\r
-0x023a, 0x023b,\r
-0x023d, 0x023e,\r
-0x0241, 0x0241,\r
-0x0243, 0x0246,\r
-0x0248, 0x0248,\r
-0x024a, 0x024a,\r
-0x024c, 0x024c,\r
-0x024e, 0x024e,\r
-0x0370, 0x0370,\r
-0x0372, 0x0372,\r
-0x0376, 0x0376,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x038f,\r
-0x0391, 0x03a1,\r
-0x03a3, 0x03ab,\r
-0x03cf, 0x03cf,\r
-0x03d8, 0x03d8,\r
-0x03da, 0x03da,\r
-0x03dc, 0x03dc,\r
-0x03de, 0x03de,\r
-0x03e0, 0x03e0,\r
-0x03e2, 0x03e2,\r
-0x03e4, 0x03e4,\r
-0x03e6, 0x03e6,\r
-0x03e8, 0x03e8,\r
-0x03ea, 0x03ea,\r
-0x03ec, 0x03ec,\r
-0x03ee, 0x03ee,\r
-0x03f4, 0x03f4,\r
-0x03f7, 0x03f7,\r
-0x03f9, 0x03fa,\r
-0x03fd, 0x042f,\r
-0x0460, 0x0460,\r
-0x0462, 0x0462,\r
-0x0464, 0x0464,\r
-0x0466, 0x0466,\r
-0x0468, 0x0468,\r
-0x046a, 0x046a,\r
-0x046c, 0x046c,\r
-0x046e, 0x046e,\r
-0x0470, 0x0470,\r
-0x0472, 0x0472,\r
-0x0474, 0x0474,\r
-0x0476, 0x0476,\r
-0x0478, 0x0478,\r
-0x047a, 0x047a,\r
-0x047c, 0x047c,\r
-0x047e, 0x047e,\r
-0x0480, 0x0480,\r
-0x048a, 0x048a,\r
-0x048c, 0x048c,\r
-0x048e, 0x048e,\r
-0x0490, 0x0490,\r
-0x0492, 0x0492,\r
-0x0494, 0x0494,\r
-0x0496, 0x0496,\r
-0x0498, 0x0498,\r
-0x049a, 0x049a,\r
-0x049c, 0x049c,\r
-0x049e, 0x049e,\r
-0x04a0, 0x04a0,\r
-0x04a2, 0x04a2,\r
-0x04a4, 0x04a4,\r
-0x04a6, 0x04a6,\r
-0x04a8, 0x04a8,\r
-0x04aa, 0x04aa,\r
-0x04ac, 0x04ac,\r
-0x04ae, 0x04ae,\r
-0x04b0, 0x04b0,\r
-0x04b2, 0x04b2,\r
-0x04b4, 0x04b4,\r
-0x04b6, 0x04b6,\r
-0x04b8, 0x04b8,\r
-0x04ba, 0x04ba,\r
-0x04bc, 0x04bc,\r
-0x04be, 0x04be,\r
-0x04c0, 0x04c1,\r
-0x04c3, 0x04c3,\r
-0x04c5, 0x04c5,\r
-0x04c7, 0x04c7,\r
-0x04c9, 0x04c9,\r
-0x04cb, 0x04cb,\r
-0x04cd, 0x04cd,\r
-0x04d0, 0x04d0,\r
-0x04d2, 0x04d2,\r
-0x04d4, 0x04d4,\r
-0x04d6, 0x04d6,\r
-0x04d8, 0x04d8,\r
-0x04da, 0x04da,\r
-0x04dc, 0x04dc,\r
-0x04de, 0x04de,\r
-0x04e0, 0x04e0,\r
-0x04e2, 0x04e2,\r
-0x04e4, 0x04e4,\r
-0x04e6, 0x04e6,\r
-0x04e8, 0x04e8,\r
-0x04ea, 0x04ea,\r
-0x04ec, 0x04ec,\r
-0x04ee, 0x04ee,\r
-0x04f0, 0x04f0,\r
-0x04f2, 0x04f2,\r
-0x04f4, 0x04f4,\r
-0x04f6, 0x04f6,\r
-0x04f8, 0x04f8,\r
-0x04fa, 0x04fa,\r
-0x04fc, 0x04fc,\r
-0x04fe, 0x04fe,\r
-0x0500, 0x0500,\r
-0x0502, 0x0502,\r
-0x0504, 0x0504,\r
-0x0506, 0x0506,\r
-0x0508, 0x0508,\r
-0x050a, 0x050a,\r
-0x050c, 0x050c,\r
-0x050e, 0x050e,\r
-0x0510, 0x0510,\r
-0x0512, 0x0512,\r
-0x0514, 0x0514,\r
-0x0516, 0x0516,\r
-0x0518, 0x0518,\r
-0x051a, 0x051a,\r
-0x051c, 0x051c,\r
-0x051e, 0x051e,\r
-0x0520, 0x0520,\r
-0x0522, 0x0522,\r
-0x0524, 0x0524,\r
-0x0526, 0x0526,\r
-0x0528, 0x0528,\r
-0x052a, 0x052a,\r
-0x052c, 0x052c,\r
-0x052e, 0x052e,\r
-0x0531, 0x0556,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x13a0, 0x13f5,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1e00, 0x1e00,\r
-0x1e02, 0x1e02,\r
-0x1e04, 0x1e04,\r
-0x1e06, 0x1e06,\r
-0x1e08, 0x1e08,\r
-0x1e0a, 0x1e0a,\r
-0x1e0c, 0x1e0c,\r
-0x1e0e, 0x1e0e,\r
-0x1e10, 0x1e10,\r
-0x1e12, 0x1e12,\r
-0x1e14, 0x1e14,\r
-0x1e16, 0x1e16,\r
-0x1e18, 0x1e18,\r
-0x1e1a, 0x1e1a,\r
-0x1e1c, 0x1e1c,\r
-0x1e1e, 0x1e1e,\r
-0x1e20, 0x1e20,\r
-0x1e22, 0x1e22,\r
-0x1e24, 0x1e24,\r
-0x1e26, 0x1e26,\r
-0x1e28, 0x1e28,\r
-0x1e2a, 0x1e2a,\r
-0x1e2c, 0x1e2c,\r
-0x1e2e, 0x1e2e,\r
-0x1e30, 0x1e30,\r
-0x1e32, 0x1e32,\r
-0x1e34, 0x1e34,\r
-0x1e36, 0x1e36,\r
-0x1e38, 0x1e38,\r
-0x1e3a, 0x1e3a,\r
-0x1e3c, 0x1e3c,\r
-0x1e3e, 0x1e3e,\r
-0x1e40, 0x1e40,\r
-0x1e42, 0x1e42,\r
-0x1e44, 0x1e44,\r
-0x1e46, 0x1e46,\r
-0x1e48, 0x1e48,\r
-0x1e4a, 0x1e4a,\r
-0x1e4c, 0x1e4c,\r
-0x1e4e, 0x1e4e,\r
-0x1e50, 0x1e50,\r
-0x1e52, 0x1e52,\r
-0x1e54, 0x1e54,\r
-0x1e56, 0x1e56,\r
-0x1e58, 0x1e58,\r
-0x1e5a, 0x1e5a,\r
-0x1e5c, 0x1e5c,\r
-0x1e5e, 0x1e5e,\r
-0x1e60, 0x1e60,\r
-0x1e62, 0x1e62,\r
-0x1e64, 0x1e64,\r
-0x1e66, 0x1e66,\r
-0x1e68, 0x1e68,\r
-0x1e6a, 0x1e6a,\r
-0x1e6c, 0x1e6c,\r
-0x1e6e, 0x1e6e,\r
-0x1e70, 0x1e70,\r
-0x1e72, 0x1e72,\r
-0x1e74, 0x1e74,\r
-0x1e76, 0x1e76,\r
-0x1e78, 0x1e78,\r
-0x1e7a, 0x1e7a,\r
-0x1e7c, 0x1e7c,\r
-0x1e7e, 0x1e7e,\r
-0x1e80, 0x1e80,\r
-0x1e82, 0x1e82,\r
-0x1e84, 0x1e84,\r
-0x1e86, 0x1e86,\r
-0x1e88, 0x1e88,\r
-0x1e8a, 0x1e8a,\r
-0x1e8c, 0x1e8c,\r
-0x1e8e, 0x1e8e,\r
-0x1e90, 0x1e90,\r
-0x1e92, 0x1e92,\r
-0x1e94, 0x1e94,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1ea0,\r
-0x1ea2, 0x1ea2,\r
-0x1ea4, 0x1ea4,\r
-0x1ea6, 0x1ea6,\r
-0x1ea8, 0x1ea8,\r
-0x1eaa, 0x1eaa,\r
-0x1eac, 0x1eac,\r
-0x1eae, 0x1eae,\r
-0x1eb0, 0x1eb0,\r
-0x1eb2, 0x1eb2,\r
-0x1eb4, 0x1eb4,\r
-0x1eb6, 0x1eb6,\r
-0x1eb8, 0x1eb8,\r
-0x1eba, 0x1eba,\r
-0x1ebc, 0x1ebc,\r
-0x1ebe, 0x1ebe,\r
-0x1ec0, 0x1ec0,\r
-0x1ec2, 0x1ec2,\r
-0x1ec4, 0x1ec4,\r
-0x1ec6, 0x1ec6,\r
-0x1ec8, 0x1ec8,\r
-0x1eca, 0x1eca,\r
-0x1ecc, 0x1ecc,\r
-0x1ece, 0x1ece,\r
-0x1ed0, 0x1ed0,\r
-0x1ed2, 0x1ed2,\r
-0x1ed4, 0x1ed4,\r
-0x1ed6, 0x1ed6,\r
-0x1ed8, 0x1ed8,\r
-0x1eda, 0x1eda,\r
-0x1edc, 0x1edc,\r
-0x1ede, 0x1ede,\r
-0x1ee0, 0x1ee0,\r
-0x1ee2, 0x1ee2,\r
-0x1ee4, 0x1ee4,\r
-0x1ee6, 0x1ee6,\r
-0x1ee8, 0x1ee8,\r
-0x1eea, 0x1eea,\r
-0x1eec, 0x1eec,\r
-0x1eee, 0x1eee,\r
-0x1ef0, 0x1ef0,\r
-0x1ef2, 0x1ef2,\r
-0x1ef4, 0x1ef4,\r
-0x1ef6, 0x1ef6,\r
-0x1ef8, 0x1ef8,\r
-0x1efa, 0x1efa,\r
-0x1efc, 0x1efc,\r
-0x1efe, 0x1efe,\r
-0x1f08, 0x1f0f,\r
-0x1f18, 0x1f1d,\r
-0x1f28, 0x1f2f,\r
-0x1f38, 0x1f3f,\r
-0x1f48, 0x1f4d,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f5f,\r
-0x1f68, 0x1f6f,\r
-0x1f88, 0x1f8f,\r
-0x1f98, 0x1f9f,\r
-0x1fa8, 0x1faf,\r
-0x1fb8, 0x1fbc,\r
-0x1fc8, 0x1fcc,\r
-0x1fd8, 0x1fdb,\r
-0x1fe8, 0x1fec,\r
-0x1ff8, 0x1ffc,\r
-0x2126, 0x2126,\r
-0x212a, 0x212b,\r
-0x2132, 0x2132,\r
-0x2160, 0x216f,\r
-0x2183, 0x2183,\r
-0x24b6, 0x24cf,\r
-0x2c00, 0x2c2e,\r
-0x2c60, 0x2c60,\r
-0x2c62, 0x2c64,\r
-0x2c67, 0x2c67,\r
-0x2c69, 0x2c69,\r
-0x2c6b, 0x2c6b,\r
-0x2c6d, 0x2c70,\r
-0x2c72, 0x2c72,\r
-0x2c75, 0x2c75,\r
-0x2c7e, 0x2c80,\r
-0x2c82, 0x2c82,\r
-0x2c84, 0x2c84,\r
-0x2c86, 0x2c86,\r
-0x2c88, 0x2c88,\r
-0x2c8a, 0x2c8a,\r
-0x2c8c, 0x2c8c,\r
-0x2c8e, 0x2c8e,\r
-0x2c90, 0x2c90,\r
-0x2c92, 0x2c92,\r
-0x2c94, 0x2c94,\r
-0x2c96, 0x2c96,\r
-0x2c98, 0x2c98,\r
-0x2c9a, 0x2c9a,\r
-0x2c9c, 0x2c9c,\r
-0x2c9e, 0x2c9e,\r
-0x2ca0, 0x2ca0,\r
-0x2ca2, 0x2ca2,\r
-0x2ca4, 0x2ca4,\r
-0x2ca6, 0x2ca6,\r
-0x2ca8, 0x2ca8,\r
-0x2caa, 0x2caa,\r
-0x2cac, 0x2cac,\r
-0x2cae, 0x2cae,\r
-0x2cb0, 0x2cb0,\r
-0x2cb2, 0x2cb2,\r
-0x2cb4, 0x2cb4,\r
-0x2cb6, 0x2cb6,\r
-0x2cb8, 0x2cb8,\r
-0x2cba, 0x2cba,\r
-0x2cbc, 0x2cbc,\r
-0x2cbe, 0x2cbe,\r
-0x2cc0, 0x2cc0,\r
-0x2cc2, 0x2cc2,\r
-0x2cc4, 0x2cc4,\r
-0x2cc6, 0x2cc6,\r
-0x2cc8, 0x2cc8,\r
-0x2cca, 0x2cca,\r
-0x2ccc, 0x2ccc,\r
-0x2cce, 0x2cce,\r
-0x2cd0, 0x2cd0,\r
-0x2cd2, 0x2cd2,\r
-0x2cd4, 0x2cd4,\r
-0x2cd6, 0x2cd6,\r
-0x2cd8, 0x2cd8,\r
-0x2cda, 0x2cda,\r
-0x2cdc, 0x2cdc,\r
-0x2cde, 0x2cde,\r
-0x2ce0, 0x2ce0,\r
-0x2ce2, 0x2ce2,\r
-0x2ceb, 0x2ceb,\r
-0x2ced, 0x2ced,\r
-0x2cf2, 0x2cf2,\r
-0xa640, 0xa640,\r
-0xa642, 0xa642,\r
-0xa644, 0xa644,\r
-0xa646, 0xa646,\r
-0xa648, 0xa648,\r
-0xa64a, 0xa64a,\r
-0xa64c, 0xa64c,\r
-0xa64e, 0xa64e,\r
-0xa650, 0xa650,\r
-0xa652, 0xa652,\r
-0xa654, 0xa654,\r
-0xa656, 0xa656,\r
-0xa658, 0xa658,\r
-0xa65a, 0xa65a,\r
-0xa65c, 0xa65c,\r
-0xa65e, 0xa65e,\r
-0xa660, 0xa660,\r
-0xa662, 0xa662,\r
-0xa664, 0xa664,\r
-0xa666, 0xa666,\r
-0xa668, 0xa668,\r
-0xa66a, 0xa66a,\r
-0xa66c, 0xa66c,\r
-0xa680, 0xa680,\r
-0xa682, 0xa682,\r
-0xa684, 0xa684,\r
-0xa686, 0xa686,\r
-0xa688, 0xa688,\r
-0xa68a, 0xa68a,\r
-0xa68c, 0xa68c,\r
-0xa68e, 0xa68e,\r
-0xa690, 0xa690,\r
-0xa692, 0xa692,\r
-0xa694, 0xa694,\r
-0xa696, 0xa696,\r
-0xa698, 0xa698,\r
-0xa69a, 0xa69a,\r
-0xa722, 0xa722,\r
-0xa724, 0xa724,\r
-0xa726, 0xa726,\r
-0xa728, 0xa728,\r
-0xa72a, 0xa72a,\r
-0xa72c, 0xa72c,\r
-0xa72e, 0xa72e,\r
-0xa732, 0xa732,\r
-0xa734, 0xa734,\r
-0xa736, 0xa736,\r
-0xa738, 0xa738,\r
-0xa73a, 0xa73a,\r
-0xa73c, 0xa73c,\r
-0xa73e, 0xa73e,\r
-0xa740, 0xa740,\r
-0xa742, 0xa742,\r
-0xa744, 0xa744,\r
-0xa746, 0xa746,\r
-0xa748, 0xa748,\r
-0xa74a, 0xa74a,\r
-0xa74c, 0xa74c,\r
-0xa74e, 0xa74e,\r
-0xa750, 0xa750,\r
-0xa752, 0xa752,\r
-0xa754, 0xa754,\r
-0xa756, 0xa756,\r
-0xa758, 0xa758,\r
-0xa75a, 0xa75a,\r
-0xa75c, 0xa75c,\r
-0xa75e, 0xa75e,\r
-0xa760, 0xa760,\r
-0xa762, 0xa762,\r
-0xa764, 0xa764,\r
-0xa766, 0xa766,\r
-0xa768, 0xa768,\r
-0xa76a, 0xa76a,\r
-0xa76c, 0xa76c,\r
-0xa76e, 0xa76e,\r
-0xa779, 0xa779,\r
-0xa77b, 0xa77b,\r
-0xa77d, 0xa77e,\r
-0xa780, 0xa780,\r
-0xa782, 0xa782,\r
-0xa784, 0xa784,\r
-0xa786, 0xa786,\r
-0xa78b, 0xa78b,\r
-0xa78d, 0xa78d,\r
-0xa790, 0xa790,\r
-0xa792, 0xa792,\r
-0xa796, 0xa796,\r
-0xa798, 0xa798,\r
-0xa79a, 0xa79a,\r
-0xa79c, 0xa79c,\r
-0xa79e, 0xa79e,\r
-0xa7a0, 0xa7a0,\r
-0xa7a2, 0xa7a2,\r
-0xa7a4, 0xa7a4,\r
-0xa7a6, 0xa7a6,\r
-0xa7a8, 0xa7a8,\r
-0xa7aa, 0xa7ae,\r
-0xa7b0, 0xa7b4,\r
-0xa7b6, 0xa7b6,\r
-0xa7b8, 0xa7b8,\r
-0xa7ba, 0xa7ba,\r
-0xa7bc, 0xa7bc,\r
-0xa7be, 0xa7be,\r
-0xa7c2, 0xa7c2,\r
-0xa7c4, 0xa7c6,\r
-0xff21, 0xff3a,\r
-0x10400, 0x10427,\r
-0x104b0, 0x104d3,\r
-0x10c80, 0x10cb2,\r
-0x118a0, 0x118bf,\r
-0x16e40, 0x16e5f,\r
-0x1e900, 0x1e921,\r
-}; /* END of CR_Changes_When_Lowercased */\r
-\r
-/* PROPERTY: 'Changes_When_Titlecased': Derived Property */\r
-static const OnigCodePoint\r
-CR_Changes_When_Titlecased[] = { 615,\r
-0x0061, 0x007a,\r
-0x00b5, 0x00b5,\r
-0x00df, 0x00f6,\r
-0x00f8, 0x00ff,\r
-0x0101, 0x0101,\r
-0x0103, 0x0103,\r
-0x0105, 0x0105,\r
-0x0107, 0x0107,\r
-0x0109, 0x0109,\r
-0x010b, 0x010b,\r
-0x010d, 0x010d,\r
-0x010f, 0x010f,\r
-0x0111, 0x0111,\r
-0x0113, 0x0113,\r
-0x0115, 0x0115,\r
-0x0117, 0x0117,\r
-0x0119, 0x0119,\r
-0x011b, 0x011b,\r
-0x011d, 0x011d,\r
-0x011f, 0x011f,\r
-0x0121, 0x0121,\r
-0x0123, 0x0123,\r
-0x0125, 0x0125,\r
-0x0127, 0x0127,\r
-0x0129, 0x0129,\r
-0x012b, 0x012b,\r
-0x012d, 0x012d,\r
-0x012f, 0x012f,\r
-0x0131, 0x0131,\r
-0x0133, 0x0133,\r
-0x0135, 0x0135,\r
-0x0137, 0x0137,\r
-0x013a, 0x013a,\r
-0x013c, 0x013c,\r
-0x013e, 0x013e,\r
-0x0140, 0x0140,\r
-0x0142, 0x0142,\r
-0x0144, 0x0144,\r
-0x0146, 0x0146,\r
-0x0148, 0x0149,\r
-0x014b, 0x014b,\r
-0x014d, 0x014d,\r
-0x014f, 0x014f,\r
-0x0151, 0x0151,\r
-0x0153, 0x0153,\r
-0x0155, 0x0155,\r
-0x0157, 0x0157,\r
-0x0159, 0x0159,\r
-0x015b, 0x015b,\r
-0x015d, 0x015d,\r
-0x015f, 0x015f,\r
-0x0161, 0x0161,\r
-0x0163, 0x0163,\r
-0x0165, 0x0165,\r
-0x0167, 0x0167,\r
-0x0169, 0x0169,\r
-0x016b, 0x016b,\r
-0x016d, 0x016d,\r
-0x016f, 0x016f,\r
-0x0171, 0x0171,\r
-0x0173, 0x0173,\r
-0x0175, 0x0175,\r
-0x0177, 0x0177,\r
-0x017a, 0x017a,\r
-0x017c, 0x017c,\r
-0x017e, 0x0180,\r
-0x0183, 0x0183,\r
-0x0185, 0x0185,\r
-0x0188, 0x0188,\r
-0x018c, 0x018c,\r
-0x0192, 0x0192,\r
-0x0195, 0x0195,\r
-0x0199, 0x019a,\r
-0x019e, 0x019e,\r
-0x01a1, 0x01a1,\r
-0x01a3, 0x01a3,\r
-0x01a5, 0x01a5,\r
-0x01a8, 0x01a8,\r
-0x01ad, 0x01ad,\r
-0x01b0, 0x01b0,\r
-0x01b4, 0x01b4,\r
-0x01b6, 0x01b6,\r
-0x01b9, 0x01b9,\r
-0x01bd, 0x01bd,\r
-0x01bf, 0x01bf,\r
-0x01c4, 0x01c4,\r
-0x01c6, 0x01c7,\r
-0x01c9, 0x01ca,\r
-0x01cc, 0x01cc,\r
-0x01ce, 0x01ce,\r
-0x01d0, 0x01d0,\r
-0x01d2, 0x01d2,\r
-0x01d4, 0x01d4,\r
-0x01d6, 0x01d6,\r
-0x01d8, 0x01d8,\r
-0x01da, 0x01da,\r
-0x01dc, 0x01dd,\r
-0x01df, 0x01df,\r
-0x01e1, 0x01e1,\r
-0x01e3, 0x01e3,\r
-0x01e5, 0x01e5,\r
-0x01e7, 0x01e7,\r
-0x01e9, 0x01e9,\r
-0x01eb, 0x01eb,\r
-0x01ed, 0x01ed,\r
-0x01ef, 0x01f1,\r
-0x01f3, 0x01f3,\r
-0x01f5, 0x01f5,\r
-0x01f9, 0x01f9,\r
-0x01fb, 0x01fb,\r
-0x01fd, 0x01fd,\r
-0x01ff, 0x01ff,\r
-0x0201, 0x0201,\r
-0x0203, 0x0203,\r
-0x0205, 0x0205,\r
-0x0207, 0x0207,\r
-0x0209, 0x0209,\r
-0x020b, 0x020b,\r
-0x020d, 0x020d,\r
-0x020f, 0x020f,\r
-0x0211, 0x0211,\r
-0x0213, 0x0213,\r
-0x0215, 0x0215,\r
-0x0217, 0x0217,\r
-0x0219, 0x0219,\r
-0x021b, 0x021b,\r
-0x021d, 0x021d,\r
-0x021f, 0x021f,\r
-0x0223, 0x0223,\r
-0x0225, 0x0225,\r
-0x0227, 0x0227,\r
-0x0229, 0x0229,\r
-0x022b, 0x022b,\r
-0x022d, 0x022d,\r
-0x022f, 0x022f,\r
-0x0231, 0x0231,\r
-0x0233, 0x0233,\r
-0x023c, 0x023c,\r
-0x023f, 0x0240,\r
-0x0242, 0x0242,\r
-0x0247, 0x0247,\r
-0x0249, 0x0249,\r
-0x024b, 0x024b,\r
-0x024d, 0x024d,\r
-0x024f, 0x0254,\r
-0x0256, 0x0257,\r
-0x0259, 0x0259,\r
-0x025b, 0x025c,\r
-0x0260, 0x0261,\r
-0x0263, 0x0263,\r
-0x0265, 0x0266,\r
-0x0268, 0x026c,\r
-0x026f, 0x026f,\r
-0x0271, 0x0272,\r
-0x0275, 0x0275,\r
-0x027d, 0x027d,\r
-0x0280, 0x0280,\r
-0x0282, 0x0283,\r
-0x0287, 0x028c,\r
-0x0292, 0x0292,\r
-0x029d, 0x029e,\r
-0x0345, 0x0345,\r
-0x0371, 0x0371,\r
-0x0373, 0x0373,\r
-0x0377, 0x0377,\r
-0x037b, 0x037d,\r
-0x0390, 0x0390,\r
-0x03ac, 0x03ce,\r
-0x03d0, 0x03d1,\r
-0x03d5, 0x03d7,\r
-0x03d9, 0x03d9,\r
-0x03db, 0x03db,\r
-0x03dd, 0x03dd,\r
-0x03df, 0x03df,\r
-0x03e1, 0x03e1,\r
-0x03e3, 0x03e3,\r
-0x03e5, 0x03e5,\r
-0x03e7, 0x03e7,\r
-0x03e9, 0x03e9,\r
-0x03eb, 0x03eb,\r
-0x03ed, 0x03ed,\r
-0x03ef, 0x03f3,\r
-0x03f5, 0x03f5,\r
-0x03f8, 0x03f8,\r
-0x03fb, 0x03fb,\r
-0x0430, 0x045f,\r
-0x0461, 0x0461,\r
-0x0463, 0x0463,\r
-0x0465, 0x0465,\r
-0x0467, 0x0467,\r
-0x0469, 0x0469,\r
-0x046b, 0x046b,\r
-0x046d, 0x046d,\r
-0x046f, 0x046f,\r
-0x0471, 0x0471,\r
-0x0473, 0x0473,\r
-0x0475, 0x0475,\r
-0x0477, 0x0477,\r
-0x0479, 0x0479,\r
-0x047b, 0x047b,\r
-0x047d, 0x047d,\r
-0x047f, 0x047f,\r
-0x0481, 0x0481,\r
-0x048b, 0x048b,\r
-0x048d, 0x048d,\r
-0x048f, 0x048f,\r
-0x0491, 0x0491,\r
-0x0493, 0x0493,\r
-0x0495, 0x0495,\r
-0x0497, 0x0497,\r
-0x0499, 0x0499,\r
-0x049b, 0x049b,\r
-0x049d, 0x049d,\r
-0x049f, 0x049f,\r
-0x04a1, 0x04a1,\r
-0x04a3, 0x04a3,\r
-0x04a5, 0x04a5,\r
-0x04a7, 0x04a7,\r
-0x04a9, 0x04a9,\r
-0x04ab, 0x04ab,\r
-0x04ad, 0x04ad,\r
-0x04af, 0x04af,\r
-0x04b1, 0x04b1,\r
-0x04b3, 0x04b3,\r
-0x04b5, 0x04b5,\r
-0x04b7, 0x04b7,\r
-0x04b9, 0x04b9,\r
-0x04bb, 0x04bb,\r
-0x04bd, 0x04bd,\r
-0x04bf, 0x04bf,\r
-0x04c2, 0x04c2,\r
-0x04c4, 0x04c4,\r
-0x04c6, 0x04c6,\r
-0x04c8, 0x04c8,\r
-0x04ca, 0x04ca,\r
-0x04cc, 0x04cc,\r
-0x04ce, 0x04cf,\r
-0x04d1, 0x04d1,\r
-0x04d3, 0x04d3,\r
-0x04d5, 0x04d5,\r
-0x04d7, 0x04d7,\r
-0x04d9, 0x04d9,\r
-0x04db, 0x04db,\r
-0x04dd, 0x04dd,\r
-0x04df, 0x04df,\r
-0x04e1, 0x04e1,\r
-0x04e3, 0x04e3,\r
-0x04e5, 0x04e5,\r
-0x04e7, 0x04e7,\r
-0x04e9, 0x04e9,\r
-0x04eb, 0x04eb,\r
-0x04ed, 0x04ed,\r
-0x04ef, 0x04ef,\r
-0x04f1, 0x04f1,\r
-0x04f3, 0x04f3,\r
-0x04f5, 0x04f5,\r
-0x04f7, 0x04f7,\r
-0x04f9, 0x04f9,\r
-0x04fb, 0x04fb,\r
-0x04fd, 0x04fd,\r
-0x04ff, 0x04ff,\r
-0x0501, 0x0501,\r
-0x0503, 0x0503,\r
-0x0505, 0x0505,\r
-0x0507, 0x0507,\r
-0x0509, 0x0509,\r
-0x050b, 0x050b,\r
-0x050d, 0x050d,\r
-0x050f, 0x050f,\r
-0x0511, 0x0511,\r
-0x0513, 0x0513,\r
-0x0515, 0x0515,\r
-0x0517, 0x0517,\r
-0x0519, 0x0519,\r
-0x051b, 0x051b,\r
-0x051d, 0x051d,\r
-0x051f, 0x051f,\r
-0x0521, 0x0521,\r
-0x0523, 0x0523,\r
-0x0525, 0x0525,\r
-0x0527, 0x0527,\r
-0x0529, 0x0529,\r
-0x052b, 0x052b,\r
-0x052d, 0x052d,\r
-0x052f, 0x052f,\r
-0x0561, 0x0587,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1d79, 0x1d79,\r
-0x1d7d, 0x1d7d,\r
-0x1d8e, 0x1d8e,\r
-0x1e01, 0x1e01,\r
-0x1e03, 0x1e03,\r
-0x1e05, 0x1e05,\r
-0x1e07, 0x1e07,\r
-0x1e09, 0x1e09,\r
-0x1e0b, 0x1e0b,\r
-0x1e0d, 0x1e0d,\r
-0x1e0f, 0x1e0f,\r
-0x1e11, 0x1e11,\r
-0x1e13, 0x1e13,\r
-0x1e15, 0x1e15,\r
-0x1e17, 0x1e17,\r
-0x1e19, 0x1e19,\r
-0x1e1b, 0x1e1b,\r
-0x1e1d, 0x1e1d,\r
-0x1e1f, 0x1e1f,\r
-0x1e21, 0x1e21,\r
-0x1e23, 0x1e23,\r
-0x1e25, 0x1e25,\r
-0x1e27, 0x1e27,\r
-0x1e29, 0x1e29,\r
-0x1e2b, 0x1e2b,\r
-0x1e2d, 0x1e2d,\r
-0x1e2f, 0x1e2f,\r
-0x1e31, 0x1e31,\r
-0x1e33, 0x1e33,\r
-0x1e35, 0x1e35,\r
-0x1e37, 0x1e37,\r
-0x1e39, 0x1e39,\r
-0x1e3b, 0x1e3b,\r
-0x1e3d, 0x1e3d,\r
-0x1e3f, 0x1e3f,\r
-0x1e41, 0x1e41,\r
-0x1e43, 0x1e43,\r
-0x1e45, 0x1e45,\r
-0x1e47, 0x1e47,\r
-0x1e49, 0x1e49,\r
-0x1e4b, 0x1e4b,\r
-0x1e4d, 0x1e4d,\r
-0x1e4f, 0x1e4f,\r
-0x1e51, 0x1e51,\r
-0x1e53, 0x1e53,\r
-0x1e55, 0x1e55,\r
-0x1e57, 0x1e57,\r
-0x1e59, 0x1e59,\r
-0x1e5b, 0x1e5b,\r
-0x1e5d, 0x1e5d,\r
-0x1e5f, 0x1e5f,\r
-0x1e61, 0x1e61,\r
-0x1e63, 0x1e63,\r
-0x1e65, 0x1e65,\r
-0x1e67, 0x1e67,\r
-0x1e69, 0x1e69,\r
-0x1e6b, 0x1e6b,\r
-0x1e6d, 0x1e6d,\r
-0x1e6f, 0x1e6f,\r
-0x1e71, 0x1e71,\r
-0x1e73, 0x1e73,\r
-0x1e75, 0x1e75,\r
-0x1e77, 0x1e77,\r
-0x1e79, 0x1e79,\r
-0x1e7b, 0x1e7b,\r
-0x1e7d, 0x1e7d,\r
-0x1e7f, 0x1e7f,\r
-0x1e81, 0x1e81,\r
-0x1e83, 0x1e83,\r
-0x1e85, 0x1e85,\r
-0x1e87, 0x1e87,\r
-0x1e89, 0x1e89,\r
-0x1e8b, 0x1e8b,\r
-0x1e8d, 0x1e8d,\r
-0x1e8f, 0x1e8f,\r
-0x1e91, 0x1e91,\r
-0x1e93, 0x1e93,\r
-0x1e95, 0x1e9b,\r
-0x1ea1, 0x1ea1,\r
-0x1ea3, 0x1ea3,\r
-0x1ea5, 0x1ea5,\r
-0x1ea7, 0x1ea7,\r
-0x1ea9, 0x1ea9,\r
-0x1eab, 0x1eab,\r
-0x1ead, 0x1ead,\r
-0x1eaf, 0x1eaf,\r
-0x1eb1, 0x1eb1,\r
-0x1eb3, 0x1eb3,\r
-0x1eb5, 0x1eb5,\r
-0x1eb7, 0x1eb7,\r
-0x1eb9, 0x1eb9,\r
-0x1ebb, 0x1ebb,\r
-0x1ebd, 0x1ebd,\r
-0x1ebf, 0x1ebf,\r
-0x1ec1, 0x1ec1,\r
-0x1ec3, 0x1ec3,\r
-0x1ec5, 0x1ec5,\r
-0x1ec7, 0x1ec7,\r
-0x1ec9, 0x1ec9,\r
-0x1ecb, 0x1ecb,\r
-0x1ecd, 0x1ecd,\r
-0x1ecf, 0x1ecf,\r
-0x1ed1, 0x1ed1,\r
-0x1ed3, 0x1ed3,\r
-0x1ed5, 0x1ed5,\r
-0x1ed7, 0x1ed7,\r
-0x1ed9, 0x1ed9,\r
-0x1edb, 0x1edb,\r
-0x1edd, 0x1edd,\r
-0x1edf, 0x1edf,\r
-0x1ee1, 0x1ee1,\r
-0x1ee3, 0x1ee3,\r
-0x1ee5, 0x1ee5,\r
-0x1ee7, 0x1ee7,\r
-0x1ee9, 0x1ee9,\r
-0x1eeb, 0x1eeb,\r
-0x1eed, 0x1eed,\r
-0x1eef, 0x1eef,\r
-0x1ef1, 0x1ef1,\r
-0x1ef3, 0x1ef3,\r
-0x1ef5, 0x1ef5,\r
-0x1ef7, 0x1ef7,\r
-0x1ef9, 0x1ef9,\r
-0x1efb, 0x1efb,\r
-0x1efd, 0x1efd,\r
-0x1eff, 0x1f07,\r
-0x1f10, 0x1f15,\r
-0x1f20, 0x1f27,\r
-0x1f30, 0x1f37,\r
-0x1f40, 0x1f45,\r
-0x1f50, 0x1f57,\r
-0x1f60, 0x1f67,\r
-0x1f70, 0x1f7d,\r
-0x1f80, 0x1f87,\r
-0x1f90, 0x1f97,\r
-0x1fa0, 0x1fa7,\r
-0x1fb0, 0x1fb4,\r
-0x1fb6, 0x1fb7,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fc7,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fd7,\r
-0x1fe0, 0x1fe7,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ff7,\r
-0x214e, 0x214e,\r
-0x2170, 0x217f,\r
-0x2184, 0x2184,\r
-0x24d0, 0x24e9,\r
-0x2c30, 0x2c5e,\r
-0x2c61, 0x2c61,\r
-0x2c65, 0x2c66,\r
-0x2c68, 0x2c68,\r
-0x2c6a, 0x2c6a,\r
-0x2c6c, 0x2c6c,\r
-0x2c73, 0x2c73,\r
-0x2c76, 0x2c76,\r
-0x2c81, 0x2c81,\r
-0x2c83, 0x2c83,\r
-0x2c85, 0x2c85,\r
-0x2c87, 0x2c87,\r
-0x2c89, 0x2c89,\r
-0x2c8b, 0x2c8b,\r
-0x2c8d, 0x2c8d,\r
-0x2c8f, 0x2c8f,\r
-0x2c91, 0x2c91,\r
-0x2c93, 0x2c93,\r
-0x2c95, 0x2c95,\r
-0x2c97, 0x2c97,\r
-0x2c99, 0x2c99,\r
-0x2c9b, 0x2c9b,\r
-0x2c9d, 0x2c9d,\r
-0x2c9f, 0x2c9f,\r
-0x2ca1, 0x2ca1,\r
-0x2ca3, 0x2ca3,\r
-0x2ca5, 0x2ca5,\r
-0x2ca7, 0x2ca7,\r
-0x2ca9, 0x2ca9,\r
-0x2cab, 0x2cab,\r
-0x2cad, 0x2cad,\r
-0x2caf, 0x2caf,\r
-0x2cb1, 0x2cb1,\r
-0x2cb3, 0x2cb3,\r
-0x2cb5, 0x2cb5,\r
-0x2cb7, 0x2cb7,\r
-0x2cb9, 0x2cb9,\r
-0x2cbb, 0x2cbb,\r
-0x2cbd, 0x2cbd,\r
-0x2cbf, 0x2cbf,\r
-0x2cc1, 0x2cc1,\r
-0x2cc3, 0x2cc3,\r
-0x2cc5, 0x2cc5,\r
-0x2cc7, 0x2cc7,\r
-0x2cc9, 0x2cc9,\r
-0x2ccb, 0x2ccb,\r
-0x2ccd, 0x2ccd,\r
-0x2ccf, 0x2ccf,\r
-0x2cd1, 0x2cd1,\r
-0x2cd3, 0x2cd3,\r
-0x2cd5, 0x2cd5,\r
-0x2cd7, 0x2cd7,\r
-0x2cd9, 0x2cd9,\r
-0x2cdb, 0x2cdb,\r
-0x2cdd, 0x2cdd,\r
-0x2cdf, 0x2cdf,\r
-0x2ce1, 0x2ce1,\r
-0x2ce3, 0x2ce3,\r
-0x2cec, 0x2cec,\r
-0x2cee, 0x2cee,\r
-0x2cf3, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa641, 0xa641,\r
-0xa643, 0xa643,\r
-0xa645, 0xa645,\r
-0xa647, 0xa647,\r
-0xa649, 0xa649,\r
-0xa64b, 0xa64b,\r
-0xa64d, 0xa64d,\r
-0xa64f, 0xa64f,\r
-0xa651, 0xa651,\r
-0xa653, 0xa653,\r
-0xa655, 0xa655,\r
-0xa657, 0xa657,\r
-0xa659, 0xa659,\r
-0xa65b, 0xa65b,\r
-0xa65d, 0xa65d,\r
-0xa65f, 0xa65f,\r
-0xa661, 0xa661,\r
-0xa663, 0xa663,\r
-0xa665, 0xa665,\r
-0xa667, 0xa667,\r
-0xa669, 0xa669,\r
-0xa66b, 0xa66b,\r
-0xa66d, 0xa66d,\r
-0xa681, 0xa681,\r
-0xa683, 0xa683,\r
-0xa685, 0xa685,\r
-0xa687, 0xa687,\r
-0xa689, 0xa689,\r
-0xa68b, 0xa68b,\r
-0xa68d, 0xa68d,\r
-0xa68f, 0xa68f,\r
-0xa691, 0xa691,\r
-0xa693, 0xa693,\r
-0xa695, 0xa695,\r
-0xa697, 0xa697,\r
-0xa699, 0xa699,\r
-0xa69b, 0xa69b,\r
-0xa723, 0xa723,\r
-0xa725, 0xa725,\r
-0xa727, 0xa727,\r
-0xa729, 0xa729,\r
-0xa72b, 0xa72b,\r
-0xa72d, 0xa72d,\r
-0xa72f, 0xa72f,\r
-0xa733, 0xa733,\r
-0xa735, 0xa735,\r
-0xa737, 0xa737,\r
-0xa739, 0xa739,\r
-0xa73b, 0xa73b,\r
-0xa73d, 0xa73d,\r
-0xa73f, 0xa73f,\r
-0xa741, 0xa741,\r
-0xa743, 0xa743,\r
-0xa745, 0xa745,\r
-0xa747, 0xa747,\r
-0xa749, 0xa749,\r
-0xa74b, 0xa74b,\r
-0xa74d, 0xa74d,\r
-0xa74f, 0xa74f,\r
-0xa751, 0xa751,\r
-0xa753, 0xa753,\r
-0xa755, 0xa755,\r
-0xa757, 0xa757,\r
-0xa759, 0xa759,\r
-0xa75b, 0xa75b,\r
-0xa75d, 0xa75d,\r
-0xa75f, 0xa75f,\r
-0xa761, 0xa761,\r
-0xa763, 0xa763,\r
-0xa765, 0xa765,\r
-0xa767, 0xa767,\r
-0xa769, 0xa769,\r
-0xa76b, 0xa76b,\r
-0xa76d, 0xa76d,\r
-0xa76f, 0xa76f,\r
-0xa77a, 0xa77a,\r
-0xa77c, 0xa77c,\r
-0xa77f, 0xa77f,\r
-0xa781, 0xa781,\r
-0xa783, 0xa783,\r
-0xa785, 0xa785,\r
-0xa787, 0xa787,\r
-0xa78c, 0xa78c,\r
-0xa791, 0xa791,\r
-0xa793, 0xa794,\r
-0xa797, 0xa797,\r
-0xa799, 0xa799,\r
-0xa79b, 0xa79b,\r
-0xa79d, 0xa79d,\r
-0xa79f, 0xa79f,\r
-0xa7a1, 0xa7a1,\r
-0xa7a3, 0xa7a3,\r
-0xa7a5, 0xa7a5,\r
-0xa7a7, 0xa7a7,\r
-0xa7a9, 0xa7a9,\r
-0xa7b5, 0xa7b5,\r
-0xa7b7, 0xa7b7,\r
-0xa7b9, 0xa7b9,\r
-0xa7bb, 0xa7bb,\r
-0xa7bd, 0xa7bd,\r
-0xa7bf, 0xa7bf,\r
-0xa7c3, 0xa7c3,\r
-0xab53, 0xab53,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff41, 0xff5a,\r
-0x10428, 0x1044f,\r
-0x104d8, 0x104fb,\r
-0x10cc0, 0x10cf2,\r
-0x118c0, 0x118df,\r
-0x16e60, 0x16e7f,\r
-0x1e922, 0x1e943,\r
-}; /* END of CR_Changes_When_Titlecased */\r
-\r
-/* PROPERTY: 'Changes_When_Uppercased': Derived Property */\r
-static const OnigCodePoint\r
-CR_Changes_When_Uppercased[] = { 616,\r
-0x0061, 0x007a,\r
-0x00b5, 0x00b5,\r
-0x00df, 0x00f6,\r
-0x00f8, 0x00ff,\r
-0x0101, 0x0101,\r
-0x0103, 0x0103,\r
-0x0105, 0x0105,\r
-0x0107, 0x0107,\r
-0x0109, 0x0109,\r
-0x010b, 0x010b,\r
-0x010d, 0x010d,\r
-0x010f, 0x010f,\r
-0x0111, 0x0111,\r
-0x0113, 0x0113,\r
-0x0115, 0x0115,\r
-0x0117, 0x0117,\r
-0x0119, 0x0119,\r
-0x011b, 0x011b,\r
-0x011d, 0x011d,\r
-0x011f, 0x011f,\r
-0x0121, 0x0121,\r
-0x0123, 0x0123,\r
-0x0125, 0x0125,\r
-0x0127, 0x0127,\r
-0x0129, 0x0129,\r
-0x012b, 0x012b,\r
-0x012d, 0x012d,\r
-0x012f, 0x012f,\r
-0x0131, 0x0131,\r
-0x0133, 0x0133,\r
-0x0135, 0x0135,\r
-0x0137, 0x0137,\r
-0x013a, 0x013a,\r
-0x013c, 0x013c,\r
-0x013e, 0x013e,\r
-0x0140, 0x0140,\r
-0x0142, 0x0142,\r
-0x0144, 0x0144,\r
-0x0146, 0x0146,\r
-0x0148, 0x0149,\r
-0x014b, 0x014b,\r
-0x014d, 0x014d,\r
-0x014f, 0x014f,\r
-0x0151, 0x0151,\r
-0x0153, 0x0153,\r
-0x0155, 0x0155,\r
-0x0157, 0x0157,\r
-0x0159, 0x0159,\r
-0x015b, 0x015b,\r
-0x015d, 0x015d,\r
-0x015f, 0x015f,\r
-0x0161, 0x0161,\r
-0x0163, 0x0163,\r
-0x0165, 0x0165,\r
-0x0167, 0x0167,\r
-0x0169, 0x0169,\r
-0x016b, 0x016b,\r
-0x016d, 0x016d,\r
-0x016f, 0x016f,\r
-0x0171, 0x0171,\r
-0x0173, 0x0173,\r
-0x0175, 0x0175,\r
-0x0177, 0x0177,\r
-0x017a, 0x017a,\r
-0x017c, 0x017c,\r
-0x017e, 0x0180,\r
-0x0183, 0x0183,\r
-0x0185, 0x0185,\r
-0x0188, 0x0188,\r
-0x018c, 0x018c,\r
-0x0192, 0x0192,\r
-0x0195, 0x0195,\r
-0x0199, 0x019a,\r
-0x019e, 0x019e,\r
-0x01a1, 0x01a1,\r
-0x01a3, 0x01a3,\r
-0x01a5, 0x01a5,\r
-0x01a8, 0x01a8,\r
-0x01ad, 0x01ad,\r
-0x01b0, 0x01b0,\r
-0x01b4, 0x01b4,\r
-0x01b6, 0x01b6,\r
-0x01b9, 0x01b9,\r
-0x01bd, 0x01bd,\r
-0x01bf, 0x01bf,\r
-0x01c5, 0x01c6,\r
-0x01c8, 0x01c9,\r
-0x01cb, 0x01cc,\r
-0x01ce, 0x01ce,\r
-0x01d0, 0x01d0,\r
-0x01d2, 0x01d2,\r
-0x01d4, 0x01d4,\r
-0x01d6, 0x01d6,\r
-0x01d8, 0x01d8,\r
-0x01da, 0x01da,\r
-0x01dc, 0x01dd,\r
-0x01df, 0x01df,\r
-0x01e1, 0x01e1,\r
-0x01e3, 0x01e3,\r
-0x01e5, 0x01e5,\r
-0x01e7, 0x01e7,\r
-0x01e9, 0x01e9,\r
-0x01eb, 0x01eb,\r
-0x01ed, 0x01ed,\r
-0x01ef, 0x01f0,\r
-0x01f2, 0x01f3,\r
-0x01f5, 0x01f5,\r
-0x01f9, 0x01f9,\r
-0x01fb, 0x01fb,\r
-0x01fd, 0x01fd,\r
-0x01ff, 0x01ff,\r
-0x0201, 0x0201,\r
-0x0203, 0x0203,\r
-0x0205, 0x0205,\r
-0x0207, 0x0207,\r
-0x0209, 0x0209,\r
-0x020b, 0x020b,\r
-0x020d, 0x020d,\r
-0x020f, 0x020f,\r
-0x0211, 0x0211,\r
-0x0213, 0x0213,\r
-0x0215, 0x0215,\r
-0x0217, 0x0217,\r
-0x0219, 0x0219,\r
-0x021b, 0x021b,\r
-0x021d, 0x021d,\r
-0x021f, 0x021f,\r
-0x0223, 0x0223,\r
-0x0225, 0x0225,\r
-0x0227, 0x0227,\r
-0x0229, 0x0229,\r
-0x022b, 0x022b,\r
-0x022d, 0x022d,\r
-0x022f, 0x022f,\r
-0x0231, 0x0231,\r
-0x0233, 0x0233,\r
-0x023c, 0x023c,\r
-0x023f, 0x0240,\r
-0x0242, 0x0242,\r
-0x0247, 0x0247,\r
-0x0249, 0x0249,\r
-0x024b, 0x024b,\r
-0x024d, 0x024d,\r
-0x024f, 0x0254,\r
-0x0256, 0x0257,\r
-0x0259, 0x0259,\r
-0x025b, 0x025c,\r
-0x0260, 0x0261,\r
-0x0263, 0x0263,\r
-0x0265, 0x0266,\r
-0x0268, 0x026c,\r
-0x026f, 0x026f,\r
-0x0271, 0x0272,\r
-0x0275, 0x0275,\r
-0x027d, 0x027d,\r
-0x0280, 0x0280,\r
-0x0282, 0x0283,\r
-0x0287, 0x028c,\r
-0x0292, 0x0292,\r
-0x029d, 0x029e,\r
-0x0345, 0x0345,\r
-0x0371, 0x0371,\r
-0x0373, 0x0373,\r
-0x0377, 0x0377,\r
-0x037b, 0x037d,\r
-0x0390, 0x0390,\r
-0x03ac, 0x03ce,\r
-0x03d0, 0x03d1,\r
-0x03d5, 0x03d7,\r
-0x03d9, 0x03d9,\r
-0x03db, 0x03db,\r
-0x03dd, 0x03dd,\r
-0x03df, 0x03df,\r
-0x03e1, 0x03e1,\r
-0x03e3, 0x03e3,\r
-0x03e5, 0x03e5,\r
-0x03e7, 0x03e7,\r
-0x03e9, 0x03e9,\r
-0x03eb, 0x03eb,\r
-0x03ed, 0x03ed,\r
-0x03ef, 0x03f3,\r
-0x03f5, 0x03f5,\r
-0x03f8, 0x03f8,\r
-0x03fb, 0x03fb,\r
-0x0430, 0x045f,\r
-0x0461, 0x0461,\r
-0x0463, 0x0463,\r
-0x0465, 0x0465,\r
-0x0467, 0x0467,\r
-0x0469, 0x0469,\r
-0x046b, 0x046b,\r
-0x046d, 0x046d,\r
-0x046f, 0x046f,\r
-0x0471, 0x0471,\r
-0x0473, 0x0473,\r
-0x0475, 0x0475,\r
-0x0477, 0x0477,\r
-0x0479, 0x0479,\r
-0x047b, 0x047b,\r
-0x047d, 0x047d,\r
-0x047f, 0x047f,\r
-0x0481, 0x0481,\r
-0x048b, 0x048b,\r
-0x048d, 0x048d,\r
-0x048f, 0x048f,\r
-0x0491, 0x0491,\r
-0x0493, 0x0493,\r
-0x0495, 0x0495,\r
-0x0497, 0x0497,\r
-0x0499, 0x0499,\r
-0x049b, 0x049b,\r
-0x049d, 0x049d,\r
-0x049f, 0x049f,\r
-0x04a1, 0x04a1,\r
-0x04a3, 0x04a3,\r
-0x04a5, 0x04a5,\r
-0x04a7, 0x04a7,\r
-0x04a9, 0x04a9,\r
-0x04ab, 0x04ab,\r
-0x04ad, 0x04ad,\r
-0x04af, 0x04af,\r
-0x04b1, 0x04b1,\r
-0x04b3, 0x04b3,\r
-0x04b5, 0x04b5,\r
-0x04b7, 0x04b7,\r
-0x04b9, 0x04b9,\r
-0x04bb, 0x04bb,\r
-0x04bd, 0x04bd,\r
-0x04bf, 0x04bf,\r
-0x04c2, 0x04c2,\r
-0x04c4, 0x04c4,\r
-0x04c6, 0x04c6,\r
-0x04c8, 0x04c8,\r
-0x04ca, 0x04ca,\r
-0x04cc, 0x04cc,\r
-0x04ce, 0x04cf,\r
-0x04d1, 0x04d1,\r
-0x04d3, 0x04d3,\r
-0x04d5, 0x04d5,\r
-0x04d7, 0x04d7,\r
-0x04d9, 0x04d9,\r
-0x04db, 0x04db,\r
-0x04dd, 0x04dd,\r
-0x04df, 0x04df,\r
-0x04e1, 0x04e1,\r
-0x04e3, 0x04e3,\r
-0x04e5, 0x04e5,\r
-0x04e7, 0x04e7,\r
-0x04e9, 0x04e9,\r
-0x04eb, 0x04eb,\r
-0x04ed, 0x04ed,\r
-0x04ef, 0x04ef,\r
-0x04f1, 0x04f1,\r
-0x04f3, 0x04f3,\r
-0x04f5, 0x04f5,\r
-0x04f7, 0x04f7,\r
-0x04f9, 0x04f9,\r
-0x04fb, 0x04fb,\r
-0x04fd, 0x04fd,\r
-0x04ff, 0x04ff,\r
-0x0501, 0x0501,\r
-0x0503, 0x0503,\r
-0x0505, 0x0505,\r
-0x0507, 0x0507,\r
-0x0509, 0x0509,\r
-0x050b, 0x050b,\r
-0x050d, 0x050d,\r
-0x050f, 0x050f,\r
-0x0511, 0x0511,\r
-0x0513, 0x0513,\r
-0x0515, 0x0515,\r
-0x0517, 0x0517,\r
-0x0519, 0x0519,\r
-0x051b, 0x051b,\r
-0x051d, 0x051d,\r
-0x051f, 0x051f,\r
-0x0521, 0x0521,\r
-0x0523, 0x0523,\r
-0x0525, 0x0525,\r
-0x0527, 0x0527,\r
-0x0529, 0x0529,\r
-0x052b, 0x052b,\r
-0x052d, 0x052d,\r
-0x052f, 0x052f,\r
-0x0561, 0x0587,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1d79, 0x1d79,\r
-0x1d7d, 0x1d7d,\r
-0x1d8e, 0x1d8e,\r
-0x1e01, 0x1e01,\r
-0x1e03, 0x1e03,\r
-0x1e05, 0x1e05,\r
-0x1e07, 0x1e07,\r
-0x1e09, 0x1e09,\r
-0x1e0b, 0x1e0b,\r
-0x1e0d, 0x1e0d,\r
-0x1e0f, 0x1e0f,\r
-0x1e11, 0x1e11,\r
-0x1e13, 0x1e13,\r
-0x1e15, 0x1e15,\r
-0x1e17, 0x1e17,\r
-0x1e19, 0x1e19,\r
-0x1e1b, 0x1e1b,\r
-0x1e1d, 0x1e1d,\r
-0x1e1f, 0x1e1f,\r
-0x1e21, 0x1e21,\r
-0x1e23, 0x1e23,\r
-0x1e25, 0x1e25,\r
-0x1e27, 0x1e27,\r
-0x1e29, 0x1e29,\r
-0x1e2b, 0x1e2b,\r
-0x1e2d, 0x1e2d,\r
-0x1e2f, 0x1e2f,\r
-0x1e31, 0x1e31,\r
-0x1e33, 0x1e33,\r
-0x1e35, 0x1e35,\r
-0x1e37, 0x1e37,\r
-0x1e39, 0x1e39,\r
-0x1e3b, 0x1e3b,\r
-0x1e3d, 0x1e3d,\r
-0x1e3f, 0x1e3f,\r
-0x1e41, 0x1e41,\r
-0x1e43, 0x1e43,\r
-0x1e45, 0x1e45,\r
-0x1e47, 0x1e47,\r
-0x1e49, 0x1e49,\r
-0x1e4b, 0x1e4b,\r
-0x1e4d, 0x1e4d,\r
-0x1e4f, 0x1e4f,\r
-0x1e51, 0x1e51,\r
-0x1e53, 0x1e53,\r
-0x1e55, 0x1e55,\r
-0x1e57, 0x1e57,\r
-0x1e59, 0x1e59,\r
-0x1e5b, 0x1e5b,\r
-0x1e5d, 0x1e5d,\r
-0x1e5f, 0x1e5f,\r
-0x1e61, 0x1e61,\r
-0x1e63, 0x1e63,\r
-0x1e65, 0x1e65,\r
-0x1e67, 0x1e67,\r
-0x1e69, 0x1e69,\r
-0x1e6b, 0x1e6b,\r
-0x1e6d, 0x1e6d,\r
-0x1e6f, 0x1e6f,\r
-0x1e71, 0x1e71,\r
-0x1e73, 0x1e73,\r
-0x1e75, 0x1e75,\r
-0x1e77, 0x1e77,\r
-0x1e79, 0x1e79,\r
-0x1e7b, 0x1e7b,\r
-0x1e7d, 0x1e7d,\r
-0x1e7f, 0x1e7f,\r
-0x1e81, 0x1e81,\r
-0x1e83, 0x1e83,\r
-0x1e85, 0x1e85,\r
-0x1e87, 0x1e87,\r
-0x1e89, 0x1e89,\r
-0x1e8b, 0x1e8b,\r
-0x1e8d, 0x1e8d,\r
-0x1e8f, 0x1e8f,\r
-0x1e91, 0x1e91,\r
-0x1e93, 0x1e93,\r
-0x1e95, 0x1e9b,\r
-0x1ea1, 0x1ea1,\r
-0x1ea3, 0x1ea3,\r
-0x1ea5, 0x1ea5,\r
-0x1ea7, 0x1ea7,\r
-0x1ea9, 0x1ea9,\r
-0x1eab, 0x1eab,\r
-0x1ead, 0x1ead,\r
-0x1eaf, 0x1eaf,\r
-0x1eb1, 0x1eb1,\r
-0x1eb3, 0x1eb3,\r
-0x1eb5, 0x1eb5,\r
-0x1eb7, 0x1eb7,\r
-0x1eb9, 0x1eb9,\r
-0x1ebb, 0x1ebb,\r
-0x1ebd, 0x1ebd,\r
-0x1ebf, 0x1ebf,\r
-0x1ec1, 0x1ec1,\r
-0x1ec3, 0x1ec3,\r
-0x1ec5, 0x1ec5,\r
-0x1ec7, 0x1ec7,\r
-0x1ec9, 0x1ec9,\r
-0x1ecb, 0x1ecb,\r
-0x1ecd, 0x1ecd,\r
-0x1ecf, 0x1ecf,\r
-0x1ed1, 0x1ed1,\r
-0x1ed3, 0x1ed3,\r
-0x1ed5, 0x1ed5,\r
-0x1ed7, 0x1ed7,\r
-0x1ed9, 0x1ed9,\r
-0x1edb, 0x1edb,\r
-0x1edd, 0x1edd,\r
-0x1edf, 0x1edf,\r
-0x1ee1, 0x1ee1,\r
-0x1ee3, 0x1ee3,\r
-0x1ee5, 0x1ee5,\r
-0x1ee7, 0x1ee7,\r
-0x1ee9, 0x1ee9,\r
-0x1eeb, 0x1eeb,\r
-0x1eed, 0x1eed,\r
-0x1eef, 0x1eef,\r
-0x1ef1, 0x1ef1,\r
-0x1ef3, 0x1ef3,\r
-0x1ef5, 0x1ef5,\r
-0x1ef7, 0x1ef7,\r
-0x1ef9, 0x1ef9,\r
-0x1efb, 0x1efb,\r
-0x1efd, 0x1efd,\r
-0x1eff, 0x1f07,\r
-0x1f10, 0x1f15,\r
-0x1f20, 0x1f27,\r
-0x1f30, 0x1f37,\r
-0x1f40, 0x1f45,\r
-0x1f50, 0x1f57,\r
-0x1f60, 0x1f67,\r
-0x1f70, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fb7,\r
-0x1fbc, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fc7,\r
-0x1fcc, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fd7,\r
-0x1fe0, 0x1fe7,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ff7,\r
-0x1ffc, 0x1ffc,\r
-0x214e, 0x214e,\r
-0x2170, 0x217f,\r
-0x2184, 0x2184,\r
-0x24d0, 0x24e9,\r
-0x2c30, 0x2c5e,\r
-0x2c61, 0x2c61,\r
-0x2c65, 0x2c66,\r
-0x2c68, 0x2c68,\r
-0x2c6a, 0x2c6a,\r
-0x2c6c, 0x2c6c,\r
-0x2c73, 0x2c73,\r
-0x2c76, 0x2c76,\r
-0x2c81, 0x2c81,\r
-0x2c83, 0x2c83,\r
-0x2c85, 0x2c85,\r
-0x2c87, 0x2c87,\r
-0x2c89, 0x2c89,\r
-0x2c8b, 0x2c8b,\r
-0x2c8d, 0x2c8d,\r
-0x2c8f, 0x2c8f,\r
-0x2c91, 0x2c91,\r
-0x2c93, 0x2c93,\r
-0x2c95, 0x2c95,\r
-0x2c97, 0x2c97,\r
-0x2c99, 0x2c99,\r
-0x2c9b, 0x2c9b,\r
-0x2c9d, 0x2c9d,\r
-0x2c9f, 0x2c9f,\r
-0x2ca1, 0x2ca1,\r
-0x2ca3, 0x2ca3,\r
-0x2ca5, 0x2ca5,\r
-0x2ca7, 0x2ca7,\r
-0x2ca9, 0x2ca9,\r
-0x2cab, 0x2cab,\r
-0x2cad, 0x2cad,\r
-0x2caf, 0x2caf,\r
-0x2cb1, 0x2cb1,\r
-0x2cb3, 0x2cb3,\r
-0x2cb5, 0x2cb5,\r
-0x2cb7, 0x2cb7,\r
-0x2cb9, 0x2cb9,\r
-0x2cbb, 0x2cbb,\r
-0x2cbd, 0x2cbd,\r
-0x2cbf, 0x2cbf,\r
-0x2cc1, 0x2cc1,\r
-0x2cc3, 0x2cc3,\r
-0x2cc5, 0x2cc5,\r
-0x2cc7, 0x2cc7,\r
-0x2cc9, 0x2cc9,\r
-0x2ccb, 0x2ccb,\r
-0x2ccd, 0x2ccd,\r
-0x2ccf, 0x2ccf,\r
-0x2cd1, 0x2cd1,\r
-0x2cd3, 0x2cd3,\r
-0x2cd5, 0x2cd5,\r
-0x2cd7, 0x2cd7,\r
-0x2cd9, 0x2cd9,\r
-0x2cdb, 0x2cdb,\r
-0x2cdd, 0x2cdd,\r
-0x2cdf, 0x2cdf,\r
-0x2ce1, 0x2ce1,\r
-0x2ce3, 0x2ce3,\r
-0x2cec, 0x2cec,\r
-0x2cee, 0x2cee,\r
-0x2cf3, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa641, 0xa641,\r
-0xa643, 0xa643,\r
-0xa645, 0xa645,\r
-0xa647, 0xa647,\r
-0xa649, 0xa649,\r
-0xa64b, 0xa64b,\r
-0xa64d, 0xa64d,\r
-0xa64f, 0xa64f,\r
-0xa651, 0xa651,\r
-0xa653, 0xa653,\r
-0xa655, 0xa655,\r
-0xa657, 0xa657,\r
-0xa659, 0xa659,\r
-0xa65b, 0xa65b,\r
-0xa65d, 0xa65d,\r
-0xa65f, 0xa65f,\r
-0xa661, 0xa661,\r
-0xa663, 0xa663,\r
-0xa665, 0xa665,\r
-0xa667, 0xa667,\r
-0xa669, 0xa669,\r
-0xa66b, 0xa66b,\r
-0xa66d, 0xa66d,\r
-0xa681, 0xa681,\r
-0xa683, 0xa683,\r
-0xa685, 0xa685,\r
-0xa687, 0xa687,\r
-0xa689, 0xa689,\r
-0xa68b, 0xa68b,\r
-0xa68d, 0xa68d,\r
-0xa68f, 0xa68f,\r
-0xa691, 0xa691,\r
-0xa693, 0xa693,\r
-0xa695, 0xa695,\r
-0xa697, 0xa697,\r
-0xa699, 0xa699,\r
-0xa69b, 0xa69b,\r
-0xa723, 0xa723,\r
-0xa725, 0xa725,\r
-0xa727, 0xa727,\r
-0xa729, 0xa729,\r
-0xa72b, 0xa72b,\r
-0xa72d, 0xa72d,\r
-0xa72f, 0xa72f,\r
-0xa733, 0xa733,\r
-0xa735, 0xa735,\r
-0xa737, 0xa737,\r
-0xa739, 0xa739,\r
-0xa73b, 0xa73b,\r
-0xa73d, 0xa73d,\r
-0xa73f, 0xa73f,\r
-0xa741, 0xa741,\r
-0xa743, 0xa743,\r
-0xa745, 0xa745,\r
-0xa747, 0xa747,\r
-0xa749, 0xa749,\r
-0xa74b, 0xa74b,\r
-0xa74d, 0xa74d,\r
-0xa74f, 0xa74f,\r
-0xa751, 0xa751,\r
-0xa753, 0xa753,\r
-0xa755, 0xa755,\r
-0xa757, 0xa757,\r
-0xa759, 0xa759,\r
-0xa75b, 0xa75b,\r
-0xa75d, 0xa75d,\r
-0xa75f, 0xa75f,\r
-0xa761, 0xa761,\r
-0xa763, 0xa763,\r
-0xa765, 0xa765,\r
-0xa767, 0xa767,\r
-0xa769, 0xa769,\r
-0xa76b, 0xa76b,\r
-0xa76d, 0xa76d,\r
-0xa76f, 0xa76f,\r
-0xa77a, 0xa77a,\r
-0xa77c, 0xa77c,\r
-0xa77f, 0xa77f,\r
-0xa781, 0xa781,\r
-0xa783, 0xa783,\r
-0xa785, 0xa785,\r
-0xa787, 0xa787,\r
-0xa78c, 0xa78c,\r
-0xa791, 0xa791,\r
-0xa793, 0xa794,\r
-0xa797, 0xa797,\r
-0xa799, 0xa799,\r
-0xa79b, 0xa79b,\r
-0xa79d, 0xa79d,\r
-0xa79f, 0xa79f,\r
-0xa7a1, 0xa7a1,\r
-0xa7a3, 0xa7a3,\r
-0xa7a5, 0xa7a5,\r
-0xa7a7, 0xa7a7,\r
-0xa7a9, 0xa7a9,\r
-0xa7b5, 0xa7b5,\r
-0xa7b7, 0xa7b7,\r
-0xa7b9, 0xa7b9,\r
-0xa7bb, 0xa7bb,\r
-0xa7bd, 0xa7bd,\r
-0xa7bf, 0xa7bf,\r
-0xa7c3, 0xa7c3,\r
-0xab53, 0xab53,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff41, 0xff5a,\r
-0x10428, 0x1044f,\r
-0x104d8, 0x104fb,\r
-0x10cc0, 0x10cf2,\r
-0x118c0, 0x118df,\r
-0x16e60, 0x16e7f,\r
-0x1e922, 0x1e943,\r
-}; /* END of CR_Changes_When_Uppercased */\r
-\r
-/* PROPERTY: 'Cherokee': Script */\r
-static const OnigCodePoint\r
-CR_Cherokee[] = { 3,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0xab70, 0xabbf,\r
-}; /* END of CR_Cherokee */\r
-\r
-/* PROPERTY: 'Cn': General Category */\r
-static const OnigCodePoint\r
-CR_Cn[] = { 666,\r
-0x0378, 0x0379,\r
-0x0380, 0x0383,\r
-0x038b, 0x038b,\r
-0x038d, 0x038d,\r
-0x03a2, 0x03a2,\r
-0x0530, 0x0530,\r
-0x0557, 0x0558,\r
-0x058b, 0x058c,\r
-0x0590, 0x0590,\r
-0x05c8, 0x05cf,\r
-0x05eb, 0x05ee,\r
-0x05f5, 0x05ff,\r
-0x061d, 0x061d,\r
-0x070e, 0x070e,\r
-0x074b, 0x074c,\r
-0x07b2, 0x07bf,\r
-0x07fb, 0x07fc,\r
-0x082e, 0x082f,\r
-0x083f, 0x083f,\r
-0x085c, 0x085d,\r
-0x085f, 0x085f,\r
-0x086b, 0x089f,\r
-0x08b5, 0x08b5,\r
-0x08be, 0x08d2,\r
-0x0984, 0x0984,\r
-0x098d, 0x098e,\r
-0x0991, 0x0992,\r
-0x09a9, 0x09a9,\r
-0x09b1, 0x09b1,\r
-0x09b3, 0x09b5,\r
-0x09ba, 0x09bb,\r
-0x09c5, 0x09c6,\r
-0x09c9, 0x09ca,\r
-0x09cf, 0x09d6,\r
-0x09d8, 0x09db,\r
-0x09de, 0x09de,\r
-0x09e4, 0x09e5,\r
-0x09ff, 0x0a00,\r
-0x0a04, 0x0a04,\r
-0x0a0b, 0x0a0e,\r
-0x0a11, 0x0a12,\r
-0x0a29, 0x0a29,\r
-0x0a31, 0x0a31,\r
-0x0a34, 0x0a34,\r
-0x0a37, 0x0a37,\r
-0x0a3a, 0x0a3b,\r
-0x0a3d, 0x0a3d,\r
-0x0a43, 0x0a46,\r
-0x0a49, 0x0a4a,\r
-0x0a4e, 0x0a50,\r
-0x0a52, 0x0a58,\r
-0x0a5d, 0x0a5d,\r
-0x0a5f, 0x0a65,\r
-0x0a77, 0x0a80,\r
-0x0a84, 0x0a84,\r
-0x0a8e, 0x0a8e,\r
-0x0a92, 0x0a92,\r
-0x0aa9, 0x0aa9,\r
-0x0ab1, 0x0ab1,\r
-0x0ab4, 0x0ab4,\r
-0x0aba, 0x0abb,\r
-0x0ac6, 0x0ac6,\r
-0x0aca, 0x0aca,\r
-0x0ace, 0x0acf,\r
-0x0ad1, 0x0adf,\r
-0x0ae4, 0x0ae5,\r
-0x0af2, 0x0af8,\r
-0x0b00, 0x0b00,\r
-0x0b04, 0x0b04,\r
-0x0b0d, 0x0b0e,\r
-0x0b11, 0x0b12,\r
-0x0b29, 0x0b29,\r
-0x0b31, 0x0b31,\r
-0x0b34, 0x0b34,\r
-0x0b3a, 0x0b3b,\r
-0x0b45, 0x0b46,\r
-0x0b49, 0x0b4a,\r
-0x0b4e, 0x0b55,\r
-0x0b58, 0x0b5b,\r
-0x0b5e, 0x0b5e,\r
-0x0b64, 0x0b65,\r
-0x0b78, 0x0b81,\r
-0x0b84, 0x0b84,\r
-0x0b8b, 0x0b8d,\r
-0x0b91, 0x0b91,\r
-0x0b96, 0x0b98,\r
-0x0b9b, 0x0b9b,\r
-0x0b9d, 0x0b9d,\r
-0x0ba0, 0x0ba2,\r
-0x0ba5, 0x0ba7,\r
-0x0bab, 0x0bad,\r
-0x0bba, 0x0bbd,\r
-0x0bc3, 0x0bc5,\r
-0x0bc9, 0x0bc9,\r
-0x0bce, 0x0bcf,\r
-0x0bd1, 0x0bd6,\r
-0x0bd8, 0x0be5,\r
-0x0bfb, 0x0bff,\r
-0x0c0d, 0x0c0d,\r
-0x0c11, 0x0c11,\r
-0x0c29, 0x0c29,\r
-0x0c3a, 0x0c3c,\r
-0x0c45, 0x0c45,\r
-0x0c49, 0x0c49,\r
-0x0c4e, 0x0c54,\r
-0x0c57, 0x0c57,\r
-0x0c5b, 0x0c5f,\r
-0x0c64, 0x0c65,\r
-0x0c70, 0x0c76,\r
-0x0c8d, 0x0c8d,\r
-0x0c91, 0x0c91,\r
-0x0ca9, 0x0ca9,\r
-0x0cb4, 0x0cb4,\r
-0x0cba, 0x0cbb,\r
-0x0cc5, 0x0cc5,\r
-0x0cc9, 0x0cc9,\r
-0x0cce, 0x0cd4,\r
-0x0cd7, 0x0cdd,\r
-0x0cdf, 0x0cdf,\r
-0x0ce4, 0x0ce5,\r
-0x0cf0, 0x0cf0,\r
-0x0cf3, 0x0cff,\r
-0x0d04, 0x0d04,\r
-0x0d0d, 0x0d0d,\r
-0x0d11, 0x0d11,\r
-0x0d45, 0x0d45,\r
-0x0d49, 0x0d49,\r
-0x0d50, 0x0d53,\r
-0x0d64, 0x0d65,\r
-0x0d80, 0x0d81,\r
-0x0d84, 0x0d84,\r
-0x0d97, 0x0d99,\r
-0x0db2, 0x0db2,\r
-0x0dbc, 0x0dbc,\r
-0x0dbe, 0x0dbf,\r
-0x0dc7, 0x0dc9,\r
-0x0dcb, 0x0dce,\r
-0x0dd5, 0x0dd5,\r
-0x0dd7, 0x0dd7,\r
-0x0de0, 0x0de5,\r
-0x0df0, 0x0df1,\r
-0x0df5, 0x0e00,\r
-0x0e3b, 0x0e3e,\r
-0x0e5c, 0x0e80,\r
-0x0e83, 0x0e83,\r
-0x0e85, 0x0e85,\r
-0x0e8b, 0x0e8b,\r
-0x0ea4, 0x0ea4,\r
-0x0ea6, 0x0ea6,\r
-0x0ebe, 0x0ebf,\r
-0x0ec5, 0x0ec5,\r
-0x0ec7, 0x0ec7,\r
-0x0ece, 0x0ecf,\r
-0x0eda, 0x0edb,\r
-0x0ee0, 0x0eff,\r
-0x0f48, 0x0f48,\r
-0x0f6d, 0x0f70,\r
-0x0f98, 0x0f98,\r
-0x0fbd, 0x0fbd,\r
-0x0fcd, 0x0fcd,\r
-0x0fdb, 0x0fff,\r
-0x10c6, 0x10c6,\r
-0x10c8, 0x10cc,\r
-0x10ce, 0x10cf,\r
-0x1249, 0x1249,\r
-0x124e, 0x124f,\r
-0x1257, 0x1257,\r
-0x1259, 0x1259,\r
-0x125e, 0x125f,\r
-0x1289, 0x1289,\r
-0x128e, 0x128f,\r
-0x12b1, 0x12b1,\r
-0x12b6, 0x12b7,\r
-0x12bf, 0x12bf,\r
-0x12c1, 0x12c1,\r
-0x12c6, 0x12c7,\r
-0x12d7, 0x12d7,\r
-0x1311, 0x1311,\r
-0x1316, 0x1317,\r
-0x135b, 0x135c,\r
-0x137d, 0x137f,\r
-0x139a, 0x139f,\r
-0x13f6, 0x13f7,\r
-0x13fe, 0x13ff,\r
-0x169d, 0x169f,\r
-0x16f9, 0x16ff,\r
-0x170d, 0x170d,\r
-0x1715, 0x171f,\r
-0x1737, 0x173f,\r
-0x1754, 0x175f,\r
-0x176d, 0x176d,\r
-0x1771, 0x1771,\r
-0x1774, 0x177f,\r
-0x17de, 0x17df,\r
-0x17ea, 0x17ef,\r
-0x17fa, 0x17ff,\r
-0x180f, 0x180f,\r
-0x181a, 0x181f,\r
-0x1879, 0x187f,\r
-0x18ab, 0x18af,\r
-0x18f6, 0x18ff,\r
-0x191f, 0x191f,\r
-0x192c, 0x192f,\r
-0x193c, 0x193f,\r
-0x1941, 0x1943,\r
-0x196e, 0x196f,\r
-0x1975, 0x197f,\r
-0x19ac, 0x19af,\r
-0x19ca, 0x19cf,\r
-0x19db, 0x19dd,\r
-0x1a1c, 0x1a1d,\r
-0x1a5f, 0x1a5f,\r
-0x1a7d, 0x1a7e,\r
-0x1a8a, 0x1a8f,\r
-0x1a9a, 0x1a9f,\r
-0x1aae, 0x1aaf,\r
-0x1abf, 0x1aff,\r
-0x1b4c, 0x1b4f,\r
-0x1b7d, 0x1b7f,\r
-0x1bf4, 0x1bfb,\r
-0x1c38, 0x1c3a,\r
-0x1c4a, 0x1c4c,\r
-0x1c89, 0x1c8f,\r
-0x1cbb, 0x1cbc,\r
-0x1cc8, 0x1ccf,\r
-0x1cfb, 0x1cff,\r
-0x1dfa, 0x1dfa,\r
-0x1f16, 0x1f17,\r
-0x1f1e, 0x1f1f,\r
-0x1f46, 0x1f47,\r
-0x1f4e, 0x1f4f,\r
-0x1f58, 0x1f58,\r
-0x1f5a, 0x1f5a,\r
-0x1f5c, 0x1f5c,\r
-0x1f5e, 0x1f5e,\r
-0x1f7e, 0x1f7f,\r
-0x1fb5, 0x1fb5,\r
-0x1fc5, 0x1fc5,\r
-0x1fd4, 0x1fd5,\r
-0x1fdc, 0x1fdc,\r
-0x1ff0, 0x1ff1,\r
-0x1ff5, 0x1ff5,\r
-0x1fff, 0x1fff,\r
-0x2065, 0x2065,\r
-0x2072, 0x2073,\r
-0x208f, 0x208f,\r
-0x209d, 0x209f,\r
-0x20c0, 0x20cf,\r
-0x20f1, 0x20ff,\r
-0x218c, 0x218f,\r
-0x2427, 0x243f,\r
-0x244b, 0x245f,\r
-0x2b74, 0x2b75,\r
-0x2b96, 0x2b97,\r
-0x2c2f, 0x2c2f,\r
-0x2c5f, 0x2c5f,\r
-0x2cf4, 0x2cf8,\r
-0x2d26, 0x2d26,\r
-0x2d28, 0x2d2c,\r
-0x2d2e, 0x2d2f,\r
-0x2d68, 0x2d6e,\r
-0x2d71, 0x2d7e,\r
-0x2d97, 0x2d9f,\r
-0x2da7, 0x2da7,\r
-0x2daf, 0x2daf,\r
-0x2db7, 0x2db7,\r
-0x2dbf, 0x2dbf,\r
-0x2dc7, 0x2dc7,\r
-0x2dcf, 0x2dcf,\r
-0x2dd7, 0x2dd7,\r
-0x2ddf, 0x2ddf,\r
-0x2e50, 0x2e7f,\r
-0x2e9a, 0x2e9a,\r
-0x2ef4, 0x2eff,\r
-0x2fd6, 0x2fef,\r
-0x2ffc, 0x2fff,\r
-0x3040, 0x3040,\r
-0x3097, 0x3098,\r
-0x3100, 0x3104,\r
-0x3130, 0x3130,\r
-0x318f, 0x318f,\r
-0x31bb, 0x31bf,\r
-0x31e4, 0x31ef,\r
-0x321f, 0x321f,\r
-0x4db6, 0x4dbf,\r
-0x9ff0, 0x9fff,\r
-0xa48d, 0xa48f,\r
-0xa4c7, 0xa4cf,\r
-0xa62c, 0xa63f,\r
-0xa6f8, 0xa6ff,\r
-0xa7c0, 0xa7c1,\r
-0xa7c7, 0xa7f6,\r
-0xa82c, 0xa82f,\r
-0xa83a, 0xa83f,\r
-0xa878, 0xa87f,\r
-0xa8c6, 0xa8cd,\r
-0xa8da, 0xa8df,\r
-0xa954, 0xa95e,\r
-0xa97d, 0xa97f,\r
-0xa9ce, 0xa9ce,\r
-0xa9da, 0xa9dd,\r
-0xa9ff, 0xa9ff,\r
-0xaa37, 0xaa3f,\r
-0xaa4e, 0xaa4f,\r
-0xaa5a, 0xaa5b,\r
-0xaac3, 0xaada,\r
-0xaaf7, 0xab00,\r
-0xab07, 0xab08,\r
-0xab0f, 0xab10,\r
-0xab17, 0xab1f,\r
-0xab27, 0xab27,\r
-0xab2f, 0xab2f,\r
-0xab68, 0xab6f,\r
-0xabee, 0xabef,\r
-0xabfa, 0xabff,\r
-0xd7a4, 0xd7af,\r
-0xd7c7, 0xd7ca,\r
-0xd7fc, 0xd7ff,\r
-0xfa6e, 0xfa6f,\r
-0xfada, 0xfaff,\r
-0xfb07, 0xfb12,\r
-0xfb18, 0xfb1c,\r
-0xfb37, 0xfb37,\r
-0xfb3d, 0xfb3d,\r
-0xfb3f, 0xfb3f,\r
-0xfb42, 0xfb42,\r
-0xfb45, 0xfb45,\r
-0xfbc2, 0xfbd2,\r
-0xfd40, 0xfd4f,\r
-0xfd90, 0xfd91,\r
-0xfdc8, 0xfdef,\r
-0xfdfe, 0xfdff,\r
-0xfe1a, 0xfe1f,\r
-0xfe53, 0xfe53,\r
-0xfe67, 0xfe67,\r
-0xfe6c, 0xfe6f,\r
-0xfe75, 0xfe75,\r
-0xfefd, 0xfefe,\r
-0xff00, 0xff00,\r
-0xffbf, 0xffc1,\r
-0xffc8, 0xffc9,\r
-0xffd0, 0xffd1,\r
-0xffd8, 0xffd9,\r
-0xffdd, 0xffdf,\r
-0xffe7, 0xffe7,\r
-0xffef, 0xfff8,\r
-0xfffe, 0xffff,\r
-0x1000c, 0x1000c,\r
-0x10027, 0x10027,\r
-0x1003b, 0x1003b,\r
-0x1003e, 0x1003e,\r
-0x1004e, 0x1004f,\r
-0x1005e, 0x1007f,\r
-0x100fb, 0x100ff,\r
-0x10103, 0x10106,\r
-0x10134, 0x10136,\r
-0x1018f, 0x1018f,\r
-0x1019c, 0x1019f,\r
-0x101a1, 0x101cf,\r
-0x101fe, 0x1027f,\r
-0x1029d, 0x1029f,\r
-0x102d1, 0x102df,\r
-0x102fc, 0x102ff,\r
-0x10324, 0x1032c,\r
-0x1034b, 0x1034f,\r
-0x1037b, 0x1037f,\r
-0x1039e, 0x1039e,\r
-0x103c4, 0x103c7,\r
-0x103d6, 0x103ff,\r
-0x1049e, 0x1049f,\r
-0x104aa, 0x104af,\r
-0x104d4, 0x104d7,\r
-0x104fc, 0x104ff,\r
-0x10528, 0x1052f,\r
-0x10564, 0x1056e,\r
-0x10570, 0x105ff,\r
-0x10737, 0x1073f,\r
-0x10756, 0x1075f,\r
-0x10768, 0x107ff,\r
-0x10806, 0x10807,\r
-0x10809, 0x10809,\r
-0x10836, 0x10836,\r
-0x10839, 0x1083b,\r
-0x1083d, 0x1083e,\r
-0x10856, 0x10856,\r
-0x1089f, 0x108a6,\r
-0x108b0, 0x108df,\r
-0x108f3, 0x108f3,\r
-0x108f6, 0x108fa,\r
-0x1091c, 0x1091e,\r
-0x1093a, 0x1093e,\r
-0x10940, 0x1097f,\r
-0x109b8, 0x109bb,\r
-0x109d0, 0x109d1,\r
-0x10a04, 0x10a04,\r
-0x10a07, 0x10a0b,\r
-0x10a14, 0x10a14,\r
-0x10a18, 0x10a18,\r
-0x10a36, 0x10a37,\r
-0x10a3b, 0x10a3e,\r
-0x10a49, 0x10a4f,\r
-0x10a59, 0x10a5f,\r
-0x10aa0, 0x10abf,\r
-0x10ae7, 0x10aea,\r
-0x10af7, 0x10aff,\r
-0x10b36, 0x10b38,\r
-0x10b56, 0x10b57,\r
-0x10b73, 0x10b77,\r
-0x10b92, 0x10b98,\r
-0x10b9d, 0x10ba8,\r
-0x10bb0, 0x10bff,\r
-0x10c49, 0x10c7f,\r
-0x10cb3, 0x10cbf,\r
-0x10cf3, 0x10cf9,\r
-0x10d28, 0x10d2f,\r
-0x10d3a, 0x10e5f,\r
-0x10e7f, 0x10eff,\r
-0x10f28, 0x10f2f,\r
-0x10f5a, 0x10fdf,\r
-0x10ff7, 0x10fff,\r
-0x1104e, 0x11051,\r
-0x11070, 0x1107e,\r
-0x110c2, 0x110cc,\r
-0x110ce, 0x110cf,\r
-0x110e9, 0x110ef,\r
-0x110fa, 0x110ff,\r
-0x11135, 0x11135,\r
-0x11147, 0x1114f,\r
-0x11177, 0x1117f,\r
-0x111ce, 0x111cf,\r
-0x111e0, 0x111e0,\r
-0x111f5, 0x111ff,\r
-0x11212, 0x11212,\r
-0x1123f, 0x1127f,\r
-0x11287, 0x11287,\r
-0x11289, 0x11289,\r
-0x1128e, 0x1128e,\r
-0x1129e, 0x1129e,\r
-0x112aa, 0x112af,\r
-0x112eb, 0x112ef,\r
-0x112fa, 0x112ff,\r
-0x11304, 0x11304,\r
-0x1130d, 0x1130e,\r
-0x11311, 0x11312,\r
-0x11329, 0x11329,\r
-0x11331, 0x11331,\r
-0x11334, 0x11334,\r
-0x1133a, 0x1133a,\r
-0x11345, 0x11346,\r
-0x11349, 0x1134a,\r
-0x1134e, 0x1134f,\r
-0x11351, 0x11356,\r
-0x11358, 0x1135c,\r
-0x11364, 0x11365,\r
-0x1136d, 0x1136f,\r
-0x11375, 0x113ff,\r
-0x1145a, 0x1145a,\r
-0x1145c, 0x1145c,\r
-0x11460, 0x1147f,\r
-0x114c8, 0x114cf,\r
-0x114da, 0x1157f,\r
-0x115b6, 0x115b7,\r
-0x115de, 0x115ff,\r
-0x11645, 0x1164f,\r
-0x1165a, 0x1165f,\r
-0x1166d, 0x1167f,\r
-0x116b9, 0x116bf,\r
-0x116ca, 0x116ff,\r
-0x1171b, 0x1171c,\r
-0x1172c, 0x1172f,\r
-0x11740, 0x117ff,\r
-0x1183c, 0x1189f,\r
-0x118f3, 0x118fe,\r
-0x11900, 0x1199f,\r
-0x119a8, 0x119a9,\r
-0x119d8, 0x119d9,\r
-0x119e5, 0x119ff,\r
-0x11a48, 0x11a4f,\r
-0x11aa3, 0x11abf,\r
-0x11af9, 0x11bff,\r
-0x11c09, 0x11c09,\r
-0x11c37, 0x11c37,\r
-0x11c46, 0x11c4f,\r
-0x11c6d, 0x11c6f,\r
-0x11c90, 0x11c91,\r
-0x11ca8, 0x11ca8,\r
-0x11cb7, 0x11cff,\r
-0x11d07, 0x11d07,\r
-0x11d0a, 0x11d0a,\r
-0x11d37, 0x11d39,\r
-0x11d3b, 0x11d3b,\r
-0x11d3e, 0x11d3e,\r
-0x11d48, 0x11d4f,\r
-0x11d5a, 0x11d5f,\r
-0x11d66, 0x11d66,\r
-0x11d69, 0x11d69,\r
-0x11d8f, 0x11d8f,\r
-0x11d92, 0x11d92,\r
-0x11d99, 0x11d9f,\r
-0x11daa, 0x11edf,\r
-0x11ef9, 0x11fbf,\r
-0x11ff2, 0x11ffe,\r
-0x1239a, 0x123ff,\r
-0x1246f, 0x1246f,\r
-0x12475, 0x1247f,\r
-0x12544, 0x12fff,\r
-0x1342f, 0x1342f,\r
-0x13439, 0x143ff,\r
-0x14647, 0x167ff,\r
-0x16a39, 0x16a3f,\r
-0x16a5f, 0x16a5f,\r
-0x16a6a, 0x16a6d,\r
-0x16a70, 0x16acf,\r
-0x16aee, 0x16aef,\r
-0x16af6, 0x16aff,\r
-0x16b46, 0x16b4f,\r
-0x16b5a, 0x16b5a,\r
-0x16b62, 0x16b62,\r
-0x16b78, 0x16b7c,\r
-0x16b90, 0x16e3f,\r
-0x16e9b, 0x16eff,\r
-0x16f4b, 0x16f4e,\r
-0x16f88, 0x16f8e,\r
-0x16fa0, 0x16fdf,\r
-0x16fe4, 0x16fff,\r
-0x187f8, 0x187ff,\r
-0x18af3, 0x1afff,\r
-0x1b11f, 0x1b14f,\r
-0x1b153, 0x1b163,\r
-0x1b168, 0x1b16f,\r
-0x1b2fc, 0x1bbff,\r
-0x1bc6b, 0x1bc6f,\r
-0x1bc7d, 0x1bc7f,\r
-0x1bc89, 0x1bc8f,\r
-0x1bc9a, 0x1bc9b,\r
-0x1bca4, 0x1cfff,\r
-0x1d0f6, 0x1d0ff,\r
-0x1d127, 0x1d128,\r
-0x1d1e9, 0x1d1ff,\r
-0x1d246, 0x1d2df,\r
-0x1d2f4, 0x1d2ff,\r
-0x1d357, 0x1d35f,\r
-0x1d379, 0x1d3ff,\r
-0x1d455, 0x1d455,\r
-0x1d49d, 0x1d49d,\r
-0x1d4a0, 0x1d4a1,\r
-0x1d4a3, 0x1d4a4,\r
-0x1d4a7, 0x1d4a8,\r
-0x1d4ad, 0x1d4ad,\r
-0x1d4ba, 0x1d4ba,\r
-0x1d4bc, 0x1d4bc,\r
-0x1d4c4, 0x1d4c4,\r
-0x1d506, 0x1d506,\r
-0x1d50b, 0x1d50c,\r
-0x1d515, 0x1d515,\r
-0x1d51d, 0x1d51d,\r
-0x1d53a, 0x1d53a,\r
-0x1d53f, 0x1d53f,\r
-0x1d545, 0x1d545,\r
-0x1d547, 0x1d549,\r
-0x1d551, 0x1d551,\r
-0x1d6a6, 0x1d6a7,\r
-0x1d7cc, 0x1d7cd,\r
-0x1da8c, 0x1da9a,\r
-0x1daa0, 0x1daa0,\r
-0x1dab0, 0x1dfff,\r
-0x1e007, 0x1e007,\r
-0x1e019, 0x1e01a,\r
-0x1e022, 0x1e022,\r
-0x1e025, 0x1e025,\r
-0x1e02b, 0x1e0ff,\r
-0x1e12d, 0x1e12f,\r
-0x1e13e, 0x1e13f,\r
-0x1e14a, 0x1e14d,\r
-0x1e150, 0x1e2bf,\r
-0x1e2fa, 0x1e2fe,\r
-0x1e300, 0x1e7ff,\r
-0x1e8c5, 0x1e8c6,\r
-0x1e8d7, 0x1e8ff,\r
-0x1e94c, 0x1e94f,\r
-0x1e95a, 0x1e95d,\r
-0x1e960, 0x1ec70,\r
-0x1ecb5, 0x1ed00,\r
-0x1ed3e, 0x1edff,\r
-0x1ee04, 0x1ee04,\r
-0x1ee20, 0x1ee20,\r
-0x1ee23, 0x1ee23,\r
-0x1ee25, 0x1ee26,\r
-0x1ee28, 0x1ee28,\r
-0x1ee33, 0x1ee33,\r
-0x1ee38, 0x1ee38,\r
-0x1ee3a, 0x1ee3a,\r
-0x1ee3c, 0x1ee41,\r
-0x1ee43, 0x1ee46,\r
-0x1ee48, 0x1ee48,\r
-0x1ee4a, 0x1ee4a,\r
-0x1ee4c, 0x1ee4c,\r
-0x1ee50, 0x1ee50,\r
-0x1ee53, 0x1ee53,\r
-0x1ee55, 0x1ee56,\r
-0x1ee58, 0x1ee58,\r
-0x1ee5a, 0x1ee5a,\r
-0x1ee5c, 0x1ee5c,\r
-0x1ee5e, 0x1ee5e,\r
-0x1ee60, 0x1ee60,\r
-0x1ee63, 0x1ee63,\r
-0x1ee65, 0x1ee66,\r
-0x1ee6b, 0x1ee6b,\r
-0x1ee73, 0x1ee73,\r
-0x1ee78, 0x1ee78,\r
-0x1ee7d, 0x1ee7d,\r
-0x1ee7f, 0x1ee7f,\r
-0x1ee8a, 0x1ee8a,\r
-0x1ee9c, 0x1eea0,\r
-0x1eea4, 0x1eea4,\r
-0x1eeaa, 0x1eeaa,\r
-0x1eebc, 0x1eeef,\r
-0x1eef2, 0x1efff,\r
-0x1f02c, 0x1f02f,\r
-0x1f094, 0x1f09f,\r
-0x1f0af, 0x1f0b0,\r
-0x1f0c0, 0x1f0c0,\r
-0x1f0d0, 0x1f0d0,\r
-0x1f0f6, 0x1f0ff,\r
-0x1f10d, 0x1f10f,\r
-0x1f16d, 0x1f16f,\r
-0x1f1ad, 0x1f1e5,\r
-0x1f203, 0x1f20f,\r
-0x1f23c, 0x1f23f,\r
-0x1f249, 0x1f24f,\r
-0x1f252, 0x1f25f,\r
-0x1f266, 0x1f2ff,\r
-0x1f6d6, 0x1f6df,\r
-0x1f6ed, 0x1f6ef,\r
-0x1f6fb, 0x1f6ff,\r
-0x1f774, 0x1f77f,\r
-0x1f7d9, 0x1f7df,\r
-0x1f7ec, 0x1f7ff,\r
-0x1f80c, 0x1f80f,\r
-0x1f848, 0x1f84f,\r
-0x1f85a, 0x1f85f,\r
-0x1f888, 0x1f88f,\r
-0x1f8ae, 0x1f8ff,\r
-0x1f90c, 0x1f90c,\r
-0x1f972, 0x1f972,\r
-0x1f977, 0x1f979,\r
-0x1f9a3, 0x1f9a4,\r
-0x1f9ab, 0x1f9ad,\r
-0x1f9cb, 0x1f9cc,\r
-0x1fa54, 0x1fa5f,\r
-0x1fa6e, 0x1fa6f,\r
-0x1fa74, 0x1fa77,\r
-0x1fa7b, 0x1fa7f,\r
-0x1fa83, 0x1fa8f,\r
-0x1fa96, 0x1ffff,\r
-0x2a6d7, 0x2a6ff,\r
-0x2b735, 0x2b73f,\r
-0x2b81e, 0x2b81f,\r
-0x2cea2, 0x2ceaf,\r
-0x2ebe1, 0x2f7ff,\r
-0x2fa1e, 0xe0000,\r
-0xe0002, 0xe001f,\r
-0xe0080, 0xe00ff,\r
-0xe01f0, 0xeffff,\r
-0xffffe, 0xfffff,\r
-0x10fffe, 0x10ffff,\r
-}; /* END of CR_Cn */\r
-\r
-/* PROPERTY: 'Co': General Category */\r
-static const OnigCodePoint\r
-CR_Co[] = { 3,\r
-0xe000, 0xf8ff,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Co */\r
-\r
-/* PROPERTY: 'Common': Script */\r
-static const OnigCodePoint\r
-CR_Common[] = { 172,\r
-0x0000, 0x0040,\r
-0x005b, 0x0060,\r
-0x007b, 0x00a9,\r
-0x00ab, 0x00b9,\r
-0x00bb, 0x00bf,\r
-0x00d7, 0x00d7,\r
-0x00f7, 0x00f7,\r
-0x02b9, 0x02df,\r
-0x02e5, 0x02e9,\r
-0x02ec, 0x02ff,\r
-0x0374, 0x0374,\r
-0x037e, 0x037e,\r
-0x0385, 0x0385,\r
-0x0387, 0x0387,\r
-0x0589, 0x0589,\r
-0x0605, 0x0605,\r
-0x060c, 0x060c,\r
-0x061b, 0x061b,\r
-0x061f, 0x061f,\r
-0x0640, 0x0640,\r
-0x06dd, 0x06dd,\r
-0x08e2, 0x08e2,\r
-0x0964, 0x0965,\r
-0x0e3f, 0x0e3f,\r
-0x0fd5, 0x0fd8,\r
-0x10fb, 0x10fb,\r
-0x16eb, 0x16ed,\r
-0x1735, 0x1736,\r
-0x1802, 0x1803,\r
-0x1805, 0x1805,\r
-0x1cd3, 0x1cd3,\r
-0x1ce1, 0x1ce1,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf7,\r
-0x1cfa, 0x1cfa,\r
-0x2000, 0x200b,\r
-0x200e, 0x2064,\r
-0x2066, 0x2070,\r
-0x2074, 0x207e,\r
-0x2080, 0x208e,\r
-0x20a0, 0x20bf,\r
-0x2100, 0x2125,\r
-0x2127, 0x2129,\r
-0x212c, 0x2131,\r
-0x2133, 0x214d,\r
-0x214f, 0x215f,\r
-0x2189, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x27ff,\r
-0x2900, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2bff,\r
-0x2e00, 0x2e4f,\r
-0x2ff0, 0x2ffb,\r
-0x3000, 0x3004,\r
-0x3006, 0x3006,\r
-0x3008, 0x3020,\r
-0x3030, 0x3037,\r
-0x303c, 0x303f,\r
-0x309b, 0x309c,\r
-0x30a0, 0x30a0,\r
-0x30fb, 0x30fc,\r
-0x3190, 0x319f,\r
-0x31c0, 0x31e3,\r
-0x3220, 0x325f,\r
-0x327f, 0x32cf,\r
-0x32ff, 0x32ff,\r
-0x3358, 0x33ff,\r
-0x4dc0, 0x4dff,\r
-0xa700, 0xa721,\r
-0xa788, 0xa78a,\r
-0xa830, 0xa839,\r
-0xa92e, 0xa92e,\r
-0xa9cf, 0xa9cf,\r
-0xab5b, 0xab5b,\r
-0xfd3e, 0xfd3f,\r
-0xfe10, 0xfe19,\r
-0xfe30, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xff20,\r
-0xff3b, 0xff40,\r
-0xff5b, 0xff65,\r
-0xff70, 0xff70,\r
-0xff9e, 0xff9f,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1013f,\r
-0x10190, 0x1019b,\r
-0x101d0, 0x101fc,\r
-0x102e1, 0x102fb,\r
-0x16fe2, 0x16fe3,\r
-0x1bca0, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d166,\r
-0x1d16a, 0x1d17a,\r
-0x1d183, 0x1d184,\r
-0x1d18c, 0x1d1a9,\r
-0x1d1ae, 0x1d1e8,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f1ff,\r
-0x1f201, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-}; /* END of CR_Common */\r
-\r
-/* PROPERTY: 'Coptic': Script */\r
-static const OnigCodePoint\r
-CR_Coptic[] = { 3,\r
-0x03e2, 0x03ef,\r
-0x2c80, 0x2cf3,\r
-0x2cf9, 0x2cff,\r
-}; /* END of CR_Coptic */\r
-\r
-/* PROPERTY: 'Cs': General Category */\r
-static const OnigCodePoint\r
-CR_Cs[] = { 1,\r
-0xd800, 0xdfff,\r
-}; /* END of CR_Cs */\r
-\r
-/* PROPERTY: 'Cuneiform': Script */\r
-static const OnigCodePoint\r
-CR_Cuneiform[] = { 4,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-}; /* END of CR_Cuneiform */\r
-\r
-/* PROPERTY: 'Cypriot': Script */\r
-static const OnigCodePoint\r
-CR_Cypriot[] = { 6,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x1083f,\r
-}; /* END of CR_Cypriot */\r
-\r
-/* PROPERTY: 'Cyrillic': Script */\r
-static const OnigCodePoint\r
-CR_Cyrillic[] = { 8,\r
-0x0400, 0x0484,\r
-0x0487, 0x052f,\r
-0x1c80, 0x1c88,\r
-0x1d2b, 0x1d2b,\r
-0x1d78, 0x1d78,\r
-0x2de0, 0x2dff,\r
-0xa640, 0xa69f,\r
-0xfe2e, 0xfe2f,\r
-}; /* END of CR_Cyrillic */\r
-\r
-/* PROPERTY: 'Dash': Binary Property */\r
-static const OnigCodePoint\r
-CR_Dash[] = { 21,\r
-0x002d, 0x002d,\r
-0x058a, 0x058a,\r
-0x05be, 0x05be,\r
-0x1400, 0x1400,\r
-0x1806, 0x1806,\r
-0x2010, 0x2015,\r
-0x2053, 0x2053,\r
-0x207b, 0x207b,\r
-0x208b, 0x208b,\r
-0x2212, 0x2212,\r
-0x2e17, 0x2e17,\r
-0x2e1a, 0x2e1a,\r
-0x2e3a, 0x2e3b,\r
-0x2e40, 0x2e40,\r
-0x301c, 0x301c,\r
-0x3030, 0x3030,\r
-0x30a0, 0x30a0,\r
-0xfe31, 0xfe32,\r
-0xfe58, 0xfe58,\r
-0xfe63, 0xfe63,\r
-0xff0d, 0xff0d,\r
-}; /* END of CR_Dash */\r
-\r
-/* PROPERTY: 'Default_Ignorable_Code_Point': Derived Property */\r
-static const OnigCodePoint\r
-CR_Default_Ignorable_Code_Point[] = { 17,\r
-0x00ad, 0x00ad,\r
-0x034f, 0x034f,\r
-0x061c, 0x061c,\r
-0x115f, 0x1160,\r
-0x17b4, 0x17b5,\r
-0x180b, 0x180e,\r
-0x200b, 0x200f,\r
-0x202a, 0x202e,\r
-0x2060, 0x206f,\r
-0x3164, 0x3164,\r
-0xfe00, 0xfe0f,\r
-0xfeff, 0xfeff,\r
-0xffa0, 0xffa0,\r
-0xfff0, 0xfff8,\r
-0x1bca0, 0x1bca3,\r
-0x1d173, 0x1d17a,\r
-0xe0000, 0xe0fff,\r
-}; /* END of CR_Default_Ignorable_Code_Point */\r
-\r
-/* PROPERTY: 'Deprecated': Binary Property */\r
-static const OnigCodePoint\r
-CR_Deprecated[] = { 8,\r
-0x0149, 0x0149,\r
-0x0673, 0x0673,\r
-0x0f77, 0x0f77,\r
-0x0f79, 0x0f79,\r
-0x17a3, 0x17a4,\r
-0x206a, 0x206f,\r
-0x2329, 0x232a,\r
-0xe0001, 0xe0001,\r
-}; /* END of CR_Deprecated */\r
-\r
-/* PROPERTY: 'Deseret': Script */\r
-static const OnigCodePoint\r
-CR_Deseret[] = { 1,\r
-0x10400, 0x1044f,\r
-}; /* END of CR_Deseret */\r
-\r
-/* PROPERTY: 'Devanagari': Script */\r
-static const OnigCodePoint\r
-CR_Devanagari[] = { 4,\r
-0x0900, 0x0950,\r
-0x0955, 0x0963,\r
-0x0966, 0x097f,\r
-0xa8e0, 0xa8ff,\r
-}; /* END of CR_Devanagari */\r
-\r
-/* PROPERTY: 'Diacritic': Binary Property */\r
-static const OnigCodePoint\r
-CR_Diacritic[] = { 171,\r
-0x005e, 0x005e,\r
-0x0060, 0x0060,\r
-0x00a8, 0x00a8,\r
-0x00af, 0x00af,\r
-0x00b4, 0x00b4,\r
-0x00b7, 0x00b8,\r
-0x02b0, 0x034e,\r
-0x0350, 0x0357,\r
-0x035d, 0x0362,\r
-0x0374, 0x0375,\r
-0x037a, 0x037a,\r
-0x0384, 0x0385,\r
-0x0483, 0x0487,\r
-0x0559, 0x0559,\r
-0x0591, 0x05a1,\r
-0x05a3, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c4,\r
-0x064b, 0x0652,\r
-0x0657, 0x0658,\r
-0x06df, 0x06e0,\r
-0x06e5, 0x06e6,\r
-0x06ea, 0x06ec,\r
-0x0730, 0x074a,\r
-0x07a6, 0x07b0,\r
-0x07eb, 0x07f5,\r
-0x0818, 0x0819,\r
-0x08e3, 0x08fe,\r
-0x093c, 0x093c,\r
-0x094d, 0x094d,\r
-0x0951, 0x0954,\r
-0x0971, 0x0971,\r
-0x09bc, 0x09bc,\r
-0x09cd, 0x09cd,\r
-0x0a3c, 0x0a3c,\r
-0x0a4d, 0x0a4d,\r
-0x0abc, 0x0abc,\r
-0x0acd, 0x0acd,\r
-0x0afd, 0x0aff,\r
-0x0b3c, 0x0b3c,\r
-0x0b4d, 0x0b4d,\r
-0x0bcd, 0x0bcd,\r
-0x0c4d, 0x0c4d,\r
-0x0cbc, 0x0cbc,\r
-0x0ccd, 0x0ccd,\r
-0x0d3b, 0x0d3c,\r
-0x0d4d, 0x0d4d,\r
-0x0dca, 0x0dca,\r
-0x0e47, 0x0e4c,\r
-0x0e4e, 0x0e4e,\r
-0x0eba, 0x0eba,\r
-0x0ec8, 0x0ecc,\r
-0x0f18, 0x0f19,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f3f,\r
-0x0f82, 0x0f84,\r
-0x0f86, 0x0f87,\r
-0x0fc6, 0x0fc6,\r
-0x1037, 0x1037,\r
-0x1039, 0x103a,\r
-0x1063, 0x1064,\r
-0x1069, 0x106d,\r
-0x1087, 0x108d,\r
-0x108f, 0x108f,\r
-0x109a, 0x109b,\r
-0x135d, 0x135f,\r
-0x17c9, 0x17d3,\r
-0x17dd, 0x17dd,\r
-0x1939, 0x193b,\r
-0x1a75, 0x1a7c,\r
-0x1a7f, 0x1a7f,\r
-0x1ab0, 0x1abd,\r
-0x1b34, 0x1b34,\r
-0x1b44, 0x1b44,\r
-0x1b6b, 0x1b73,\r
-0x1baa, 0x1bab,\r
-0x1c36, 0x1c37,\r
-0x1c78, 0x1c7d,\r
-0x1cd0, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf7, 0x1cf9,\r
-0x1d2c, 0x1d6a,\r
-0x1dc4, 0x1dcf,\r
-0x1df5, 0x1df9,\r
-0x1dfd, 0x1dff,\r
-0x1fbd, 0x1fbd,\r
-0x1fbf, 0x1fc1,\r
-0x1fcd, 0x1fcf,\r
-0x1fdd, 0x1fdf,\r
-0x1fed, 0x1fef,\r
-0x1ffd, 0x1ffe,\r
-0x2cef, 0x2cf1,\r
-0x2e2f, 0x2e2f,\r
-0x302a, 0x302f,\r
-0x3099, 0x309c,\r
-0x30fc, 0x30fc,\r
-0xa66f, 0xa66f,\r
-0xa67c, 0xa67d,\r
-0xa67f, 0xa67f,\r
-0xa69c, 0xa69d,\r
-0xa6f0, 0xa6f1,\r
-0xa700, 0xa721,\r
-0xa788, 0xa78a,\r
-0xa7f8, 0xa7f9,\r
-0xa8c4, 0xa8c4,\r
-0xa8e0, 0xa8f1,\r
-0xa92b, 0xa92e,\r
-0xa953, 0xa953,\r
-0xa9b3, 0xa9b3,\r
-0xa9c0, 0xa9c0,\r
-0xa9e5, 0xa9e5,\r
-0xaa7b, 0xaa7d,\r
-0xaabf, 0xaac2,\r
-0xaaf6, 0xaaf6,\r
-0xab5b, 0xab5f,\r
-0xabec, 0xabed,\r
-0xfb1e, 0xfb1e,\r
-0xfe20, 0xfe2f,\r
-0xff3e, 0xff3e,\r
-0xff40, 0xff40,\r
-0xff70, 0xff70,\r
-0xff9e, 0xff9f,\r
-0xffe3, 0xffe3,\r
-0x102e0, 0x102e0,\r
-0x10ae5, 0x10ae6,\r
-0x10d22, 0x10d27,\r
-0x10f46, 0x10f50,\r
-0x110b9, 0x110ba,\r
-0x11133, 0x11134,\r
-0x11173, 0x11173,\r
-0x111c0, 0x111c0,\r
-0x111ca, 0x111cc,\r
-0x11235, 0x11236,\r
-0x112e9, 0x112ea,\r
-0x1133c, 0x1133c,\r
-0x1134d, 0x1134d,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11442, 0x11442,\r
-0x11446, 0x11446,\r
-0x114c2, 0x114c3,\r
-0x115bf, 0x115c0,\r
-0x1163f, 0x1163f,\r
-0x116b6, 0x116b7,\r
-0x1172b, 0x1172b,\r
-0x11839, 0x1183a,\r
-0x119e0, 0x119e0,\r
-0x11a34, 0x11a34,\r
-0x11a47, 0x11a47,\r
-0x11a99, 0x11a99,\r
-0x11c3f, 0x11c3f,\r
-0x11d42, 0x11d42,\r
-0x11d44, 0x11d45,\r
-0x11d97, 0x11d97,\r
-0x16af0, 0x16af4,\r
-0x16b30, 0x16b36,\r
-0x16f8f, 0x16f9f,\r
-0x1d167, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1e130, 0x1e136,\r
-0x1e2ec, 0x1e2ef,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e944, 0x1e946,\r
-0x1e948, 0x1e94a,\r
-}; /* END of CR_Diacritic */\r
-\r
-/* PROPERTY: 'Dogra': Script */\r
-static const OnigCodePoint\r
-CR_Dogra[] = { 1,\r
-0x11800, 0x1183b,\r
-}; /* END of CR_Dogra */\r
-\r
-/* PROPERTY: 'Duployan': Script */\r
-static const OnigCodePoint\r
-CR_Duployan[] = { 5,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bc9f,\r
-}; /* END of CR_Duployan */\r
-\r
-/* PROPERTY: 'Egyptian_Hieroglyphs': Script */\r
-static const OnigCodePoint\r
-CR_Egyptian_Hieroglyphs[] = { 2,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-}; /* END of CR_Egyptian_Hieroglyphs */\r
-\r
-/* PROPERTY: 'Elbasan': Script */\r
-static const OnigCodePoint\r
-CR_Elbasan[] = { 1,\r
-0x10500, 0x10527,\r
-}; /* END of CR_Elbasan */\r
-\r
-/* PROPERTY: 'Elymaic': Script */\r
-static const OnigCodePoint\r
-CR_Elymaic[] = { 1,\r
-0x10fe0, 0x10ff6,\r
-}; /* END of CR_Elymaic */\r
-\r
-/* PROPERTY: 'Emoji': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Emoji[] = { 151,\r
-0x0023, 0x0023,\r
-0x002a, 0x002a,\r
-0x0030, 0x0039,\r
-0x00a9, 0x00a9,\r
-0x00ae, 0x00ae,\r
-0x203c, 0x203c,\r
-0x2049, 0x2049,\r
-0x2122, 0x2122,\r
-0x2139, 0x2139,\r
-0x2194, 0x2199,\r
-0x21a9, 0x21aa,\r
-0x231a, 0x231b,\r
-0x2328, 0x2328,\r
-0x23cf, 0x23cf,\r
-0x23e9, 0x23f3,\r
-0x23f8, 0x23fa,\r
-0x24c2, 0x24c2,\r
-0x25aa, 0x25ab,\r
-0x25b6, 0x25b6,\r
-0x25c0, 0x25c0,\r
-0x25fb, 0x25fe,\r
-0x2600, 0x2604,\r
-0x260e, 0x260e,\r
-0x2611, 0x2611,\r
-0x2614, 0x2615,\r
-0x2618, 0x2618,\r
-0x261d, 0x261d,\r
-0x2620, 0x2620,\r
-0x2622, 0x2623,\r
-0x2626, 0x2626,\r
-0x262a, 0x262a,\r
-0x262e, 0x262f,\r
-0x2638, 0x263a,\r
-0x2640, 0x2640,\r
-0x2642, 0x2642,\r
-0x2648, 0x2653,\r
-0x265f, 0x2660,\r
-0x2663, 0x2663,\r
-0x2665, 0x2666,\r
-0x2668, 0x2668,\r
-0x267b, 0x267b,\r
-0x267e, 0x267f,\r
-0x2692, 0x2697,\r
-0x2699, 0x2699,\r
-0x269b, 0x269c,\r
-0x26a0, 0x26a1,\r
-0x26aa, 0x26ab,\r
-0x26b0, 0x26b1,\r
-0x26bd, 0x26be,\r
-0x26c4, 0x26c5,\r
-0x26c8, 0x26c8,\r
-0x26ce, 0x26cf,\r
-0x26d1, 0x26d1,\r
-0x26d3, 0x26d4,\r
-0x26e9, 0x26ea,\r
-0x26f0, 0x26f5,\r
-0x26f7, 0x26fa,\r
-0x26fd, 0x26fd,\r
-0x2702, 0x2702,\r
-0x2705, 0x2705,\r
-0x2708, 0x270d,\r
-0x270f, 0x270f,\r
-0x2712, 0x2712,\r
-0x2714, 0x2714,\r
-0x2716, 0x2716,\r
-0x271d, 0x271d,\r
-0x2721, 0x2721,\r
-0x2728, 0x2728,\r
-0x2733, 0x2734,\r
-0x2744, 0x2744,\r
-0x2747, 0x2747,\r
-0x274c, 0x274c,\r
-0x274e, 0x274e,\r
-0x2753, 0x2755,\r
-0x2757, 0x2757,\r
-0x2763, 0x2764,\r
-0x2795, 0x2797,\r
-0x27a1, 0x27a1,\r
-0x27b0, 0x27b0,\r
-0x27bf, 0x27bf,\r
-0x2934, 0x2935,\r
-0x2b05, 0x2b07,\r
-0x2b1b, 0x2b1c,\r
-0x2b50, 0x2b50,\r
-0x2b55, 0x2b55,\r
-0x3030, 0x3030,\r
-0x303d, 0x303d,\r
-0x3297, 0x3297,\r
-0x3299, 0x3299,\r
-0x1f004, 0x1f004,\r
-0x1f0cf, 0x1f0cf,\r
-0x1f170, 0x1f171,\r
-0x1f17e, 0x1f17f,\r
-0x1f18e, 0x1f18e,\r
-0x1f191, 0x1f19a,\r
-0x1f1e6, 0x1f1ff,\r
-0x1f201, 0x1f202,\r
-0x1f21a, 0x1f21a,\r
-0x1f22f, 0x1f22f,\r
-0x1f232, 0x1f23a,\r
-0x1f250, 0x1f251,\r
-0x1f300, 0x1f321,\r
-0x1f324, 0x1f393,\r
-0x1f396, 0x1f397,\r
-0x1f399, 0x1f39b,\r
-0x1f39e, 0x1f3f0,\r
-0x1f3f3, 0x1f3f5,\r
-0x1f3f7, 0x1f4fd,\r
-0x1f4ff, 0x1f53d,\r
-0x1f549, 0x1f54e,\r
-0x1f550, 0x1f567,\r
-0x1f56f, 0x1f570,\r
-0x1f573, 0x1f57a,\r
-0x1f587, 0x1f587,\r
-0x1f58a, 0x1f58d,\r
-0x1f590, 0x1f590,\r
-0x1f595, 0x1f596,\r
-0x1f5a4, 0x1f5a5,\r
-0x1f5a8, 0x1f5a8,\r
-0x1f5b1, 0x1f5b2,\r
-0x1f5bc, 0x1f5bc,\r
-0x1f5c2, 0x1f5c4,\r
-0x1f5d1, 0x1f5d3,\r
-0x1f5dc, 0x1f5de,\r
-0x1f5e1, 0x1f5e1,\r
-0x1f5e3, 0x1f5e3,\r
-0x1f5e8, 0x1f5e8,\r
-0x1f5ef, 0x1f5ef,\r
-0x1f5f3, 0x1f5f3,\r
-0x1f5fa, 0x1f64f,\r
-0x1f680, 0x1f6c5,\r
-0x1f6cb, 0x1f6d2,\r
-0x1f6d5, 0x1f6d5,\r
-0x1f6e0, 0x1f6e5,\r
-0x1f6e9, 0x1f6e9,\r
-0x1f6eb, 0x1f6ec,\r
-0x1f6f0, 0x1f6f0,\r
-0x1f6f3, 0x1f6fa,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f90d, 0x1f93a,\r
-0x1f93c, 0x1f945,\r
-0x1f947, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1f9ff,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-}; /* END of CR_Emoji */\r
-\r
-/* PROPERTY: 'Emoji_Component': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Emoji_Component[] = { 10,\r
-0x0023, 0x0023,\r
-0x002a, 0x002a,\r
-0x0030, 0x0039,\r
-0x200d, 0x200d,\r
-0x20e3, 0x20e3,\r
-0xfe0f, 0xfe0f,\r
-0x1f1e6, 0x1f1ff,\r
-0x1f3fb, 0x1f3ff,\r
-0x1f9b0, 0x1f9b3,\r
-0xe0020, 0xe007f,\r
-}; /* END of CR_Emoji_Component */\r
-\r
-/* PROPERTY: 'Emoji_Modifier': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Emoji_Modifier[] = { 1,\r
-0x1f3fb, 0x1f3ff,\r
-}; /* END of CR_Emoji_Modifier */\r
-\r
-/* PROPERTY: 'Emoji_Modifier_Base': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Emoji_Modifier_Base[] = { 36,\r
-0x261d, 0x261d,\r
-0x26f9, 0x26f9,\r
-0x270a, 0x270d,\r
-0x1f385, 0x1f385,\r
-0x1f3c2, 0x1f3c4,\r
-0x1f3c7, 0x1f3c7,\r
-0x1f3ca, 0x1f3cc,\r
-0x1f442, 0x1f443,\r
-0x1f446, 0x1f450,\r
-0x1f466, 0x1f478,\r
-0x1f47c, 0x1f47c,\r
-0x1f481, 0x1f483,\r
-0x1f485, 0x1f487,\r
-0x1f48f, 0x1f48f,\r
-0x1f491, 0x1f491,\r
-0x1f4aa, 0x1f4aa,\r
-0x1f574, 0x1f575,\r
-0x1f57a, 0x1f57a,\r
-0x1f590, 0x1f590,\r
-0x1f595, 0x1f596,\r
-0x1f645, 0x1f647,\r
-0x1f64b, 0x1f64f,\r
-0x1f6a3, 0x1f6a3,\r
-0x1f6b4, 0x1f6b6,\r
-0x1f6c0, 0x1f6c0,\r
-0x1f6cc, 0x1f6cc,\r
-0x1f90f, 0x1f90f,\r
-0x1f918, 0x1f91f,\r
-0x1f926, 0x1f926,\r
-0x1f930, 0x1f939,\r
-0x1f93c, 0x1f93e,\r
-0x1f9b5, 0x1f9b6,\r
-0x1f9b8, 0x1f9b9,\r
-0x1f9bb, 0x1f9bb,\r
-0x1f9cd, 0x1f9cf,\r
-0x1f9d1, 0x1f9dd,\r
-}; /* END of CR_Emoji_Modifier_Base */\r
-\r
-/* PROPERTY: 'Emoji_Presentation': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Emoji_Presentation[] = { 81,\r
-0x231a, 0x231b,\r
-0x23e9, 0x23ec,\r
-0x23f0, 0x23f0,\r
-0x23f3, 0x23f3,\r
-0x25fd, 0x25fe,\r
-0x2614, 0x2615,\r
-0x2648, 0x2653,\r
-0x267f, 0x267f,\r
-0x2693, 0x2693,\r
-0x26a1, 0x26a1,\r
-0x26aa, 0x26ab,\r
-0x26bd, 0x26be,\r
-0x26c4, 0x26c5,\r
-0x26ce, 0x26ce,\r
-0x26d4, 0x26d4,\r
-0x26ea, 0x26ea,\r
-0x26f2, 0x26f3,\r
-0x26f5, 0x26f5,\r
-0x26fa, 0x26fa,\r
-0x26fd, 0x26fd,\r
-0x2705, 0x2705,\r
-0x270a, 0x270b,\r
-0x2728, 0x2728,\r
-0x274c, 0x274c,\r
-0x274e, 0x274e,\r
-0x2753, 0x2755,\r
-0x2757, 0x2757,\r
-0x2795, 0x2797,\r
-0x27b0, 0x27b0,\r
-0x27bf, 0x27bf,\r
-0x2b1b, 0x2b1c,\r
-0x2b50, 0x2b50,\r
-0x2b55, 0x2b55,\r
-0x1f004, 0x1f004,\r
-0x1f0cf, 0x1f0cf,\r
-0x1f18e, 0x1f18e,\r
-0x1f191, 0x1f19a,\r
-0x1f1e6, 0x1f1ff,\r
-0x1f201, 0x1f201,\r
-0x1f21a, 0x1f21a,\r
-0x1f22f, 0x1f22f,\r
-0x1f232, 0x1f236,\r
-0x1f238, 0x1f23a,\r
-0x1f250, 0x1f251,\r
-0x1f300, 0x1f320,\r
-0x1f32d, 0x1f335,\r
-0x1f337, 0x1f37c,\r
-0x1f37e, 0x1f393,\r
-0x1f3a0, 0x1f3ca,\r
-0x1f3cf, 0x1f3d3,\r
-0x1f3e0, 0x1f3f0,\r
-0x1f3f4, 0x1f3f4,\r
-0x1f3f8, 0x1f43e,\r
-0x1f440, 0x1f440,\r
-0x1f442, 0x1f4fc,\r
-0x1f4ff, 0x1f53d,\r
-0x1f54b, 0x1f54e,\r
-0x1f550, 0x1f567,\r
-0x1f57a, 0x1f57a,\r
-0x1f595, 0x1f596,\r
-0x1f5a4, 0x1f5a4,\r
-0x1f5fb, 0x1f64f,\r
-0x1f680, 0x1f6c5,\r
-0x1f6cc, 0x1f6cc,\r
-0x1f6d0, 0x1f6d2,\r
-0x1f6d5, 0x1f6d5,\r
-0x1f6eb, 0x1f6ec,\r
-0x1f6f4, 0x1f6fa,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f90d, 0x1f93a,\r
-0x1f93c, 0x1f945,\r
-0x1f947, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1f9ff,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-}; /* END of CR_Emoji_Presentation */\r
-\r
-/* PROPERTY: 'Ethiopic': Script */\r
-static const OnigCodePoint\r
-CR_Ethiopic[] = { 32,\r
-0x1200, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-}; /* END of CR_Ethiopic */\r
-\r
-/* PROPERTY: 'Extended_Pictographic': Emoji Property */\r
-static const OnigCodePoint\r
-CR_Extended_Pictographic[] = { 77,\r
-0x00a9, 0x00a9,\r
-0x00ae, 0x00ae,\r
-0x203c, 0x203c,\r
-0x2049, 0x2049,\r
-0x2122, 0x2122,\r
-0x2139, 0x2139,\r
-0x2194, 0x2199,\r
-0x21a9, 0x21aa,\r
-0x231a, 0x231b,\r
-0x2328, 0x2328,\r
-0x2388, 0x2388,\r
-0x23cf, 0x23cf,\r
-0x23e9, 0x23f3,\r
-0x23f8, 0x23fa,\r
-0x24c2, 0x24c2,\r
-0x25aa, 0x25ab,\r
-0x25b6, 0x25b6,\r
-0x25c0, 0x25c0,\r
-0x25fb, 0x25fe,\r
-0x2600, 0x2605,\r
-0x2607, 0x2612,\r
-0x2614, 0x2685,\r
-0x2690, 0x2705,\r
-0x2708, 0x2712,\r
-0x2714, 0x2714,\r
-0x2716, 0x2716,\r
-0x271d, 0x271d,\r
-0x2721, 0x2721,\r
-0x2728, 0x2728,\r
-0x2733, 0x2734,\r
-0x2744, 0x2744,\r
-0x2747, 0x2747,\r
-0x274c, 0x274c,\r
-0x274e, 0x274e,\r
-0x2753, 0x2755,\r
-0x2757, 0x2757,\r
-0x2763, 0x2767,\r
-0x2795, 0x2797,\r
-0x27a1, 0x27a1,\r
-0x27b0, 0x27b0,\r
-0x27bf, 0x27bf,\r
-0x2934, 0x2935,\r
-0x2b05, 0x2b07,\r
-0x2b1b, 0x2b1c,\r
-0x2b50, 0x2b50,\r
-0x2b55, 0x2b55,\r
-0x3030, 0x3030,\r
-0x303d, 0x303d,\r
-0x3297, 0x3297,\r
-0x3299, 0x3299,\r
-0x1f000, 0x1f0ff,\r
-0x1f10d, 0x1f10f,\r
-0x1f12f, 0x1f12f,\r
-0x1f16c, 0x1f171,\r
-0x1f17e, 0x1f17f,\r
-0x1f18e, 0x1f18e,\r
-0x1f191, 0x1f19a,\r
-0x1f1ad, 0x1f1e5,\r
-0x1f201, 0x1f20f,\r
-0x1f21a, 0x1f21a,\r
-0x1f22f, 0x1f22f,\r
-0x1f232, 0x1f23a,\r
-0x1f23c, 0x1f23f,\r
-0x1f249, 0x1f3fa,\r
-0x1f400, 0x1f53d,\r
-0x1f546, 0x1f64f,\r
-0x1f680, 0x1f6ff,\r
-0x1f774, 0x1f77f,\r
-0x1f7d5, 0x1f7ff,\r
-0x1f80c, 0x1f80f,\r
-0x1f848, 0x1f84f,\r
-0x1f85a, 0x1f85f,\r
-0x1f888, 0x1f88f,\r
-0x1f8ae, 0x1f8ff,\r
-0x1f90c, 0x1f93a,\r
-0x1f93c, 0x1f945,\r
-0x1f947, 0x1fffd,\r
-}; /* END of CR_Extended_Pictographic */\r
-\r
-/* PROPERTY: 'Extender': Binary Property */\r
-static const OnigCodePoint\r
-CR_Extender[] = { 31,\r
-0x00b7, 0x00b7,\r
-0x02d0, 0x02d1,\r
-0x0640, 0x0640,\r
-0x07fa, 0x07fa,\r
-0x0e46, 0x0e46,\r
-0x0ec6, 0x0ec6,\r
-0x180a, 0x180a,\r
-0x1843, 0x1843,\r
-0x1aa7, 0x1aa7,\r
-0x1c36, 0x1c36,\r
-0x1c7b, 0x1c7b,\r
-0x3005, 0x3005,\r
-0x3031, 0x3035,\r
-0x309d, 0x309e,\r
-0x30fc, 0x30fe,\r
-0xa015, 0xa015,\r
-0xa60c, 0xa60c,\r
-0xa9cf, 0xa9cf,\r
-0xa9e6, 0xa9e6,\r
-0xaa70, 0xaa70,\r
-0xaadd, 0xaadd,\r
-0xaaf3, 0xaaf4,\r
-0xff70, 0xff70,\r
-0x1135d, 0x1135d,\r
-0x115c6, 0x115c8,\r
-0x11a98, 0x11a98,\r
-0x16b42, 0x16b43,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x1e13c, 0x1e13d,\r
-0x1e944, 0x1e946,\r
-}; /* END of CR_Extender */\r
-\r
-/* PROPERTY: 'Georgian': Script */\r
-static const OnigCodePoint\r
-CR_Georgian[] = { 10,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x10ff,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-}; /* END of CR_Georgian */\r
-\r
-/* PROPERTY: 'Glagolitic': Script */\r
-static const OnigCodePoint\r
-CR_Glagolitic[] = { 7,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-}; /* END of CR_Glagolitic */\r
-\r
-/* PROPERTY: 'Gothic': Script */\r
-static const OnigCodePoint\r
-CR_Gothic[] = { 1,\r
-0x10330, 0x1034a,\r
-}; /* END of CR_Gothic */\r
-\r
-/* PROPERTY: 'Grantha': Script */\r
-static const OnigCodePoint\r
-CR_Grantha[] = { 15,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133c, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-}; /* END of CR_Grantha */\r
-\r
-/* PROPERTY: 'Grapheme_Base': Derived Property */\r
-static const OnigCodePoint\r
-CR_Grapheme_Base[] = { 819,\r
-0x0020, 0x007e,\r
-0x00a0, 0x00ac,\r
-0x00ae, 0x02ff,\r
-0x0370, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x0482,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x05be, 0x05be,\r
-0x05c0, 0x05c0,\r
-0x05c3, 0x05c3,\r
-0x05c6, 0x05c6,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0606, 0x060f,\r
-0x061b, 0x061b,\r
-0x061e, 0x064a,\r
-0x0660, 0x066f,\r
-0x0671, 0x06d5,\r
-0x06de, 0x06de,\r
-0x06e5, 0x06e6,\r
-0x06e9, 0x06e9,\r
-0x06ee, 0x070d,\r
-0x0710, 0x0710,\r
-0x0712, 0x072f,\r
-0x074d, 0x07a5,\r
-0x07b1, 0x07b1,\r
-0x07c0, 0x07ea,\r
-0x07f4, 0x07fa,\r
-0x07fe, 0x0815,\r
-0x081a, 0x081a,\r
-0x0824, 0x0824,\r
-0x0828, 0x0828,\r
-0x0830, 0x083e,\r
-0x0840, 0x0858,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x0903, 0x0939,\r
-0x093b, 0x093b,\r
-0x093d, 0x0940,\r
-0x0949, 0x094c,\r
-0x094e, 0x0950,\r
-0x0958, 0x0961,\r
-0x0964, 0x0980,\r
-0x0982, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09bd,\r
-0x09bf, 0x09c0,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09ce, 0x09ce,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e1,\r
-0x09e6, 0x09fd,\r
-0x0a03, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3e, 0x0a40,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a6f,\r
-0x0a72, 0x0a74,\r
-0x0a76, 0x0a76,\r
-0x0a83, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0ac0,\r
-0x0ac9, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae1,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0af9,\r
-0x0b02, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b3d,\r
-0x0b40, 0x0b40,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b61,\r
-0x0b66, 0x0b77,\r
-0x0b83, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbf, 0x0bbf,\r
-0x0bc1, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd0, 0x0bd0,\r
-0x0be6, 0x0bfa,\r
-0x0c01, 0x0c03,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c3d,\r
-0x0c41, 0x0c44,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c61,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c80,\r
-0x0c82, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cbe,\r
-0x0cc0, 0x0cc1,\r
-0x0cc3, 0x0cc4,\r
-0x0cc7, 0x0cc8,\r
-0x0cca, 0x0ccb,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce1,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d02, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d3d,\r
-0x0d3f, 0x0d40,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d4e, 0x0d4f,\r
-0x0d54, 0x0d56,\r
-0x0d58, 0x0d61,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dd0, 0x0dd1,\r
-0x0dd8, 0x0dde,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e30,\r
-0x0e32, 0x0e33,\r
-0x0e3f, 0x0e46,\r
-0x0e4f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb0,\r
-0x0eb2, 0x0eb3,\r
-0x0ebd, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f17,\r
-0x0f1a, 0x0f34,\r
-0x0f36, 0x0f36,\r
-0x0f38, 0x0f38,\r
-0x0f3a, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f7f, 0x0f7f,\r
-0x0f85, 0x0f85,\r
-0x0f88, 0x0f8c,\r
-0x0fbe, 0x0fc5,\r
-0x0fc7, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x102c,\r
-0x1031, 0x1031,\r
-0x1038, 0x1038,\r
-0x103b, 0x103c,\r
-0x103f, 0x1057,\r
-0x105a, 0x105d,\r
-0x1061, 0x1070,\r
-0x1075, 0x1081,\r
-0x1083, 0x1084,\r
-0x1087, 0x108c,\r
-0x108e, 0x109c,\r
-0x109e, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1360, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1711,\r
-0x1720, 0x1731,\r
-0x1735, 0x1736,\r
-0x1740, 0x1751,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1780, 0x17b3,\r
-0x17b6, 0x17b6,\r
-0x17be, 0x17c5,\r
-0x17c7, 0x17c8,\r
-0x17d4, 0x17dc,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180a,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x1884,\r
-0x1887, 0x18a8,\r
-0x18aa, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1923, 0x1926,\r
-0x1929, 0x192b,\r
-0x1930, 0x1931,\r
-0x1933, 0x1938,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a16,\r
-0x1a19, 0x1a1a,\r
-0x1a1e, 0x1a55,\r
-0x1a57, 0x1a57,\r
-0x1a61, 0x1a61,\r
-0x1a63, 0x1a64,\r
-0x1a6d, 0x1a72,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1b04, 0x1b33,\r
-0x1b3b, 0x1b3b,\r
-0x1b3d, 0x1b41,\r
-0x1b43, 0x1b4b,\r
-0x1b50, 0x1b6a,\r
-0x1b74, 0x1b7c,\r
-0x1b82, 0x1ba1,\r
-0x1ba6, 0x1ba7,\r
-0x1baa, 0x1baa,\r
-0x1bae, 0x1be5,\r
-0x1be7, 0x1be7,\r
-0x1bea, 0x1bec,\r
-0x1bee, 0x1bee,\r
-0x1bf2, 0x1bf3,\r
-0x1bfc, 0x1c2b,\r
-0x1c34, 0x1c35,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd3, 0x1cd3,\r
-0x1ce1, 0x1ce1,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf7,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x2000, 0x200a,\r
-0x2010, 0x2027,\r
-0x202f, 0x205f,\r
-0x2070, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2e00, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3000, 0x3029,\r
-0x3030, 0x303f,\r
-0x3041, 0x3096,\r
-0x309b, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa673, 0xa673,\r
-0xa67e, 0xa69d,\r
-0xa6a0, 0xa6ef,\r
-0xa6f2, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa801,\r
-0xa803, 0xa805,\r
-0xa807, 0xa80a,\r
-0xa80c, 0xa824,\r
-0xa827, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c3,\r
-0xa8ce, 0xa8d9,\r
-0xa8f2, 0xa8fe,\r
-0xa900, 0xa925,\r
-0xa92e, 0xa946,\r
-0xa952, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa983, 0xa9b2,\r
-0xa9b4, 0xa9b5,\r
-0xa9ba, 0xa9bb,\r
-0xa9be, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9e4,\r
-0xa9e6, 0xa9fe,\r
-0xaa00, 0xaa28,\r
-0xaa2f, 0xaa30,\r
-0xaa33, 0xaa34,\r
-0xaa40, 0xaa42,\r
-0xaa44, 0xaa4b,\r
-0xaa4d, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaa7b,\r
-0xaa7d, 0xaaaf,\r
-0xaab1, 0xaab1,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaabd,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaaeb,\r
-0xaaee, 0xaaf5,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabe4,\r
-0xabe6, 0xabe7,\r
-0xabe9, 0xabec,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb1d,\r
-0xfb1f, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe10, 0xfe19,\r
-0xfe30, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff01, 0xff9d,\r
-0xffa0, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfffc, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fc,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e1, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x10375,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a00,\r
-0x10a10, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a40, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae4,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d23,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10f51, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11000,\r
-0x11002, 0x11037,\r
-0x11047, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x11082, 0x110b2,\r
-0x110b7, 0x110b8,\r
-0x110bb, 0x110bc,\r
-0x110be, 0x110c1,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11103, 0x11126,\r
-0x1112c, 0x1112c,\r
-0x11136, 0x11146,\r
-0x11150, 0x11172,\r
-0x11174, 0x11176,\r
-0x11182, 0x111b5,\r
-0x111bf, 0x111c8,\r
-0x111cd, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1122e,\r
-0x11232, 0x11233,\r
-0x11235, 0x11235,\r
-0x11238, 0x1123d,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112de,\r
-0x112e0, 0x112e2,\r
-0x112f0, 0x112f9,\r
-0x11302, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x1133d,\r
-0x1133f, 0x1133f,\r
-0x11341, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x1135d, 0x11363,\r
-0x11400, 0x11437,\r
-0x11440, 0x11441,\r
-0x11445, 0x11445,\r
-0x11447, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145d,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114af,\r
-0x114b1, 0x114b2,\r
-0x114b9, 0x114b9,\r
-0x114bb, 0x114bc,\r
-0x114be, 0x114be,\r
-0x114c1, 0x114c1,\r
-0x114c4, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115ae,\r
-0x115b0, 0x115b1,\r
-0x115b8, 0x115bb,\r
-0x115be, 0x115be,\r
-0x115c1, 0x115db,\r
-0x11600, 0x11632,\r
-0x1163b, 0x1163c,\r
-0x1163e, 0x1163e,\r
-0x11641, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116aa,\r
-0x116ac, 0x116ac,\r
-0x116ae, 0x116af,\r
-0x116b6, 0x116b6,\r
-0x116b8, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x11720, 0x11721,\r
-0x11726, 0x11726,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1182e,\r
-0x11838, 0x11838,\r
-0x1183b, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d3,\r
-0x119dc, 0x119df,\r
-0x119e1, 0x119e4,\r
-0x11a00, 0x11a00,\r
-0x11a0b, 0x11a32,\r
-0x11a39, 0x11a3a,\r
-0x11a3f, 0x11a46,\r
-0x11a50, 0x11a50,\r
-0x11a57, 0x11a58,\r
-0x11a5c, 0x11a89,\r
-0x11a97, 0x11a97,\r
-0x11a9a, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c2f,\r
-0x11c3e, 0x11c3e,\r
-0x11c40, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11ca9, 0x11ca9,\r
-0x11cb1, 0x11cb1,\r
-0x11cb4, 0x11cb4,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d30,\r
-0x11d46, 0x11d46,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d93, 0x11d94,\r
-0x11d96, 0x11d96,\r
-0x11d98, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef2,\r
-0x11ef5, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af5, 0x16af5,\r
-0x16b00, 0x16b2f,\r
-0x16b37, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f50, 0x16f87,\r
-0x16f93, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bc9c,\r
-0x1bc9f, 0x1bc9f,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d164,\r
-0x1d166, 0x1d166,\r
-0x1d16a, 0x1d16d,\r
-0x1d183, 0x1d184,\r
-0x1d18c, 0x1d1a9,\r
-0x1d1ae, 0x1d1e8,\r
-0x1d200, 0x1d241,\r
-0x1d245, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1d9ff,\r
-0x1da37, 0x1da3a,\r
-0x1da6d, 0x1da74,\r
-0x1da76, 0x1da83,\r
-0x1da85, 0x1da8b,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8cf,\r
-0x1e900, 0x1e943,\r
-0x1e94b, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Grapheme_Base */\r
-\r
-/* PROPERTY: 'Grapheme_Extend': Derived Property */\r
-static const OnigCodePoint\r
-CR_Grapheme_Extend[] = { 335,\r
-0x0300, 0x036f,\r
-0x0483, 0x0489,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x0610, 0x061a,\r
-0x064b, 0x065f,\r
-0x0670, 0x0670,\r
-0x06d6, 0x06dc,\r
-0x06df, 0x06e4,\r
-0x06e7, 0x06e8,\r
-0x06ea, 0x06ed,\r
-0x0711, 0x0711,\r
-0x0730, 0x074a,\r
-0x07a6, 0x07b0,\r
-0x07eb, 0x07f3,\r
-0x07fd, 0x07fd,\r
-0x0816, 0x0819,\r
-0x081b, 0x0823,\r
-0x0825, 0x0827,\r
-0x0829, 0x082d,\r
-0x0859, 0x085b,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0902,\r
-0x093a, 0x093a,\r
-0x093c, 0x093c,\r
-0x0941, 0x0948,\r
-0x094d, 0x094d,\r
-0x0951, 0x0957,\r
-0x0962, 0x0963,\r
-0x0981, 0x0981,\r
-0x09bc, 0x09bc,\r
-0x09be, 0x09be,\r
-0x09c1, 0x09c4,\r
-0x09cd, 0x09cd,\r
-0x09d7, 0x09d7,\r
-0x09e2, 0x09e3,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a02,\r
-0x0a3c, 0x0a3c,\r
-0x0a41, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a70, 0x0a71,\r
-0x0a75, 0x0a75,\r
-0x0a81, 0x0a82,\r
-0x0abc, 0x0abc,\r
-0x0ac1, 0x0ac5,\r
-0x0ac7, 0x0ac8,\r
-0x0acd, 0x0acd,\r
-0x0ae2, 0x0ae3,\r
-0x0afa, 0x0aff,\r
-0x0b01, 0x0b01,\r
-0x0b3c, 0x0b3c,\r
-0x0b3e, 0x0b3f,\r
-0x0b41, 0x0b44,\r
-0x0b4d, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b62, 0x0b63,\r
-0x0b82, 0x0b82,\r
-0x0bbe, 0x0bbe,\r
-0x0bc0, 0x0bc0,\r
-0x0bcd, 0x0bcd,\r
-0x0bd7, 0x0bd7,\r
-0x0c00, 0x0c00,\r
-0x0c04, 0x0c04,\r
-0x0c3e, 0x0c40,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c62, 0x0c63,\r
-0x0c81, 0x0c81,\r
-0x0cbc, 0x0cbc,\r
-0x0cbf, 0x0cbf,\r
-0x0cc2, 0x0cc2,\r
-0x0cc6, 0x0cc6,\r
-0x0ccc, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0ce2, 0x0ce3,\r
-0x0d00, 0x0d01,\r
-0x0d3b, 0x0d3c,\r
-0x0d3e, 0x0d3e,\r
-0x0d41, 0x0d44,\r
-0x0d4d, 0x0d4d,\r
-0x0d57, 0x0d57,\r
-0x0d62, 0x0d63,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dcf,\r
-0x0dd2, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0ddf, 0x0ddf,\r
-0x0e31, 0x0e31,\r
-0x0e34, 0x0e3a,\r
-0x0e47, 0x0e4e,\r
-0x0eb1, 0x0eb1,\r
-0x0eb4, 0x0ebc,\r
-0x0ec8, 0x0ecd,\r
-0x0f18, 0x0f19,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f71, 0x0f7e,\r
-0x0f80, 0x0f84,\r
-0x0f86, 0x0f87,\r
-0x0f8d, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x102d, 0x1030,\r
-0x1032, 0x1037,\r
-0x1039, 0x103a,\r
-0x103d, 0x103e,\r
-0x1058, 0x1059,\r
-0x105e, 0x1060,\r
-0x1071, 0x1074,\r
-0x1082, 0x1082,\r
-0x1085, 0x1086,\r
-0x108d, 0x108d,\r
-0x109d, 0x109d,\r
-0x135d, 0x135f,\r
-0x1712, 0x1714,\r
-0x1732, 0x1734,\r
-0x1752, 0x1753,\r
-0x1772, 0x1773,\r
-0x17b4, 0x17b5,\r
-0x17b7, 0x17bd,\r
-0x17c6, 0x17c6,\r
-0x17c9, 0x17d3,\r
-0x17dd, 0x17dd,\r
-0x180b, 0x180d,\r
-0x1885, 0x1886,\r
-0x18a9, 0x18a9,\r
-0x1920, 0x1922,\r
-0x1927, 0x1928,\r
-0x1932, 0x1932,\r
-0x1939, 0x193b,\r
-0x1a17, 0x1a18,\r
-0x1a1b, 0x1a1b,\r
-0x1a56, 0x1a56,\r
-0x1a58, 0x1a5e,\r
-0x1a60, 0x1a60,\r
-0x1a62, 0x1a62,\r
-0x1a65, 0x1a6c,\r
-0x1a73, 0x1a7c,\r
-0x1a7f, 0x1a7f,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b03,\r
-0x1b34, 0x1b3a,\r
-0x1b3c, 0x1b3c,\r
-0x1b42, 0x1b42,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1b81,\r
-0x1ba2, 0x1ba5,\r
-0x1ba8, 0x1ba9,\r
-0x1bab, 0x1bad,\r
-0x1be6, 0x1be6,\r
-0x1be8, 0x1be9,\r
-0x1bed, 0x1bed,\r
-0x1bef, 0x1bf1,\r
-0x1c2c, 0x1c33,\r
-0x1c36, 0x1c37,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1ce0,\r
-0x1ce2, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf8, 0x1cf9,\r
-0x1dc0, 0x1df9,\r
-0x1dfb, 0x1dff,\r
-0x200c, 0x200c,\r
-0x20d0, 0x20f0,\r
-0x2cef, 0x2cf1,\r
-0x2d7f, 0x2d7f,\r
-0x2de0, 0x2dff,\r
-0x302a, 0x302f,\r
-0x3099, 0x309a,\r
-0xa66f, 0xa672,\r
-0xa674, 0xa67d,\r
-0xa69e, 0xa69f,\r
-0xa6f0, 0xa6f1,\r
-0xa802, 0xa802,\r
-0xa806, 0xa806,\r
-0xa80b, 0xa80b,\r
-0xa825, 0xa826,\r
-0xa8c4, 0xa8c5,\r
-0xa8e0, 0xa8f1,\r
-0xa8ff, 0xa8ff,\r
-0xa926, 0xa92d,\r
-0xa947, 0xa951,\r
-0xa980, 0xa982,\r
-0xa9b3, 0xa9b3,\r
-0xa9b6, 0xa9b9,\r
-0xa9bc, 0xa9bd,\r
-0xa9e5, 0xa9e5,\r
-0xaa29, 0xaa2e,\r
-0xaa31, 0xaa32,\r
-0xaa35, 0xaa36,\r
-0xaa43, 0xaa43,\r
-0xaa4c, 0xaa4c,\r
-0xaa7c, 0xaa7c,\r
-0xaab0, 0xaab0,\r
-0xaab2, 0xaab4,\r
-0xaab7, 0xaab8,\r
-0xaabe, 0xaabf,\r
-0xaac1, 0xaac1,\r
-0xaaec, 0xaaed,\r
-0xaaf6, 0xaaf6,\r
-0xabe5, 0xabe5,\r
-0xabe8, 0xabe8,\r
-0xabed, 0xabed,\r
-0xfb1e, 0xfb1e,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0xff9e, 0xff9f,\r
-0x101fd, 0x101fd,\r
-0x102e0, 0x102e0,\r
-0x10376, 0x1037a,\r
-0x10a01, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a0f,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10ae5, 0x10ae6,\r
-0x10d24, 0x10d27,\r
-0x10f46, 0x10f50,\r
-0x11001, 0x11001,\r
-0x11038, 0x11046,\r
-0x1107f, 0x11081,\r
-0x110b3, 0x110b6,\r
-0x110b9, 0x110ba,\r
-0x11100, 0x11102,\r
-0x11127, 0x1112b,\r
-0x1112d, 0x11134,\r
-0x11173, 0x11173,\r
-0x11180, 0x11181,\r
-0x111b6, 0x111be,\r
-0x111c9, 0x111cc,\r
-0x1122f, 0x11231,\r
-0x11234, 0x11234,\r
-0x11236, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x112df, 0x112df,\r
-0x112e3, 0x112ea,\r
-0x11300, 0x11301,\r
-0x1133b, 0x1133c,\r
-0x1133e, 0x1133e,\r
-0x11340, 0x11340,\r
-0x11357, 0x11357,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11438, 0x1143f,\r
-0x11442, 0x11444,\r
-0x11446, 0x11446,\r
-0x1145e, 0x1145e,\r
-0x114b0, 0x114b0,\r
-0x114b3, 0x114b8,\r
-0x114ba, 0x114ba,\r
-0x114bd, 0x114bd,\r
-0x114bf, 0x114c0,\r
-0x114c2, 0x114c3,\r
-0x115af, 0x115af,\r
-0x115b2, 0x115b5,\r
-0x115bc, 0x115bd,\r
-0x115bf, 0x115c0,\r
-0x115dc, 0x115dd,\r
-0x11633, 0x1163a,\r
-0x1163d, 0x1163d,\r
-0x1163f, 0x11640,\r
-0x116ab, 0x116ab,\r
-0x116ad, 0x116ad,\r
-0x116b0, 0x116b5,\r
-0x116b7, 0x116b7,\r
-0x1171d, 0x1171f,\r
-0x11722, 0x11725,\r
-0x11727, 0x1172b,\r
-0x1182f, 0x11837,\r
-0x11839, 0x1183a,\r
-0x119d4, 0x119d7,\r
-0x119da, 0x119db,\r
-0x119e0, 0x119e0,\r
-0x11a01, 0x11a0a,\r
-0x11a33, 0x11a38,\r
-0x11a3b, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a51, 0x11a56,\r
-0x11a59, 0x11a5b,\r
-0x11a8a, 0x11a96,\r
-0x11a98, 0x11a99,\r
-0x11c30, 0x11c36,\r
-0x11c38, 0x11c3d,\r
-0x11c3f, 0x11c3f,\r
-0x11c92, 0x11ca7,\r
-0x11caa, 0x11cb0,\r
-0x11cb2, 0x11cb3,\r
-0x11cb5, 0x11cb6,\r
-0x11d31, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d45,\r
-0x11d47, 0x11d47,\r
-0x11d90, 0x11d91,\r
-0x11d95, 0x11d95,\r
-0x11d97, 0x11d97,\r
-0x11ef3, 0x11ef4,\r
-0x16af0, 0x16af4,\r
-0x16b30, 0x16b36,\r
-0x16f4f, 0x16f4f,\r
-0x16f8f, 0x16f92,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d165,\r
-0x1d167, 0x1d169,\r
-0x1d16e, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e130, 0x1e136,\r
-0x1e2ec, 0x1e2ef,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e944, 0x1e94a,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Grapheme_Extend */\r
-\r
-/* PROPERTY: 'Grapheme_Link': Derived Property */\r
-static const OnigCodePoint\r
-CR_Grapheme_Link[] = { 52,\r
-0x094d, 0x094d,\r
-0x09cd, 0x09cd,\r
-0x0a4d, 0x0a4d,\r
-0x0acd, 0x0acd,\r
-0x0b4d, 0x0b4d,\r
-0x0bcd, 0x0bcd,\r
-0x0c4d, 0x0c4d,\r
-0x0ccd, 0x0ccd,\r
-0x0d3b, 0x0d3c,\r
-0x0d4d, 0x0d4d,\r
-0x0dca, 0x0dca,\r
-0x0e3a, 0x0e3a,\r
-0x0eba, 0x0eba,\r
-0x0f84, 0x0f84,\r
-0x1039, 0x103a,\r
-0x1714, 0x1714,\r
-0x1734, 0x1734,\r
-0x17d2, 0x17d2,\r
-0x1a60, 0x1a60,\r
-0x1b44, 0x1b44,\r
-0x1baa, 0x1bab,\r
-0x1bf2, 0x1bf3,\r
-0x2d7f, 0x2d7f,\r
-0xa806, 0xa806,\r
-0xa8c4, 0xa8c4,\r
-0xa953, 0xa953,\r
-0xa9c0, 0xa9c0,\r
-0xaaf6, 0xaaf6,\r
-0xabed, 0xabed,\r
-0x10a3f, 0x10a3f,\r
-0x11046, 0x11046,\r
-0x1107f, 0x1107f,\r
-0x110b9, 0x110b9,\r
-0x11133, 0x11134,\r
-0x111c0, 0x111c0,\r
-0x11235, 0x11235,\r
-0x112ea, 0x112ea,\r
-0x1134d, 0x1134d,\r
-0x11442, 0x11442,\r
-0x114c2, 0x114c2,\r
-0x115bf, 0x115bf,\r
-0x1163f, 0x1163f,\r
-0x116b6, 0x116b6,\r
-0x1172b, 0x1172b,\r
-0x11839, 0x11839,\r
-0x119e0, 0x119e0,\r
-0x11a34, 0x11a34,\r
-0x11a47, 0x11a47,\r
-0x11a99, 0x11a99,\r
-0x11c3f, 0x11c3f,\r
-0x11d44, 0x11d45,\r
-0x11d97, 0x11d97,\r
-}; /* END of CR_Grapheme_Link */\r
-\r
-/* PROPERTY: 'Greek': Script */\r
-static const OnigCodePoint\r
-CR_Greek[] = { 36,\r
-0x0370, 0x0373,\r
-0x0375, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0384, 0x0384,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03e1,\r
-0x03f0, 0x03ff,\r
-0x1d26, 0x1d2a,\r
-0x1d5d, 0x1d61,\r
-0x1d66, 0x1d6a,\r
-0x1dbf, 0x1dbf,\r
-0x1f00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x2126, 0x2126,\r
-0xab65, 0xab65,\r
-0x10140, 0x1018e,\r
-0x101a0, 0x101a0,\r
-0x1d200, 0x1d245,\r
-}; /* END of CR_Greek */\r
-\r
-/* PROPERTY: 'Gujarati': Script */\r
-static const OnigCodePoint\r
-CR_Gujarati[] = { 14,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-}; /* END of CR_Gujarati */\r
-\r
-/* PROPERTY: 'Gunjala_Gondi': Script */\r
-static const OnigCodePoint\r
-CR_Gunjala_Gondi[] = { 6,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-}; /* END of CR_Gunjala_Gondi */\r
-\r
-/* PROPERTY: 'Gurmukhi': Script */\r
-static const OnigCodePoint\r
-CR_Gurmukhi[] = { 16,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-}; /* END of CR_Gurmukhi */\r
-\r
-/* PROPERTY: 'Han': Script */\r
-static const OnigCodePoint\r
-CR_Han[] = { 17,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x3005, 0x3005,\r
-0x3007, 0x3007,\r
-0x3021, 0x3029,\r
-0x3038, 0x303b,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Han */\r
-\r
-/* PROPERTY: 'Hangul': Script */\r
-static const OnigCodePoint\r
-CR_Hangul[] = { 14,\r
-0x1100, 0x11ff,\r
-0x302e, 0x302f,\r
-0x3131, 0x318e,\r
-0x3200, 0x321e,\r
-0x3260, 0x327e,\r
-0xa960, 0xa97c,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xffa0, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-}; /* END of CR_Hangul */\r
-\r
-/* PROPERTY: 'Hanifi_Rohingya': Script */\r
-static const OnigCodePoint\r
-CR_Hanifi_Rohingya[] = { 2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-}; /* END of CR_Hanifi_Rohingya */\r
-\r
-/* PROPERTY: 'Hanunoo': Script */\r
-static const OnigCodePoint\r
-CR_Hanunoo[] = { 1,\r
-0x1720, 0x1734,\r
-}; /* END of CR_Hanunoo */\r
-\r
-/* PROPERTY: 'Hatran': Script */\r
-static const OnigCodePoint\r
-CR_Hatran[] = { 3,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x108ff,\r
-}; /* END of CR_Hatran */\r
-\r
-/* PROPERTY: 'Hebrew': Script */\r
-static const OnigCodePoint\r
-CR_Hebrew[] = { 9,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfb4f,\r
-}; /* END of CR_Hebrew */\r
-\r
-/* PROPERTY: 'Hex_Digit': Binary Property */\r
-static const OnigCodePoint\r
-CR_Hex_Digit[] = { 6,\r
-0x0030, 0x0039,\r
-0x0041, 0x0046,\r
-0x0061, 0x0066,\r
-0xff10, 0xff19,\r
-0xff21, 0xff26,\r
-0xff41, 0xff46,\r
-}; /* END of CR_Hex_Digit */\r
-\r
-/* PROPERTY: 'Hiragana': Script */\r
-static const OnigCodePoint\r
-CR_Hiragana[] = { 5,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x1b001, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1f200, 0x1f200,\r
-}; /* END of CR_Hiragana */\r
-\r
-/* PROPERTY: 'Hyphen': Binary Property */\r
-static const OnigCodePoint\r
-CR_Hyphen[] = { 10,\r
-0x002d, 0x002d,\r
-0x00ad, 0x00ad,\r
-0x058a, 0x058a,\r
-0x1806, 0x1806,\r
-0x2010, 0x2011,\r
-0x2e17, 0x2e17,\r
-0x30fb, 0x30fb,\r
-0xfe63, 0xfe63,\r
-0xff0d, 0xff0d,\r
-0xff65, 0xff65,\r
-}; /* END of CR_Hyphen */\r
-\r
-/* PROPERTY: 'IDS_Binary_Operator': Binary Property */\r
-static const OnigCodePoint\r
-CR_IDS_Binary_Operator[] = { 2,\r
-0x2ff0, 0x2ff1,\r
-0x2ff4, 0x2ffb,\r
-}; /* END of CR_IDS_Binary_Operator */\r
-\r
-/* PROPERTY: 'IDS_Trinary_Operator': Binary Property */\r
-static const OnigCodePoint\r
-CR_IDS_Trinary_Operator[] = { 1,\r
-0x2ff2, 0x2ff3,\r
-}; /* END of CR_IDS_Trinary_Operator */\r
-\r
-/* PROPERTY: 'ID_Continue': Derived Property */\r
-static const OnigCodePoint\r
-CR_ID_Continue[] = { 713,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x005f, 0x005f,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00b7, 0x00b7,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0300, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x0483, 0x0487,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06df, 0x06e8,\r
-0x06ea, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x07fd, 0x07fd,\r
-0x0800, 0x082d,\r
-0x0840, 0x085b,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e4e,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f18, 0x0f19,\r
-0x0f20, 0x0f29,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f84,\r
-0x0f86, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x1000, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x135f,\r
-0x1369, 0x1371,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1734,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17d3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x180b, 0x180d,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1ab0, 0x1abd,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1bf3,\r
-0x1c00, 0x1c37,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x203f, 0x2040,\r
-0x2054, 0x2054,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x20d0, 0x20dc,\r
-0x20e1, 0x20e1,\r
-0x20e5, 0x20f0,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2118, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x3005, 0x3007,\r
-0x3021, 0x302f,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x3099, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa66f,\r
-0xa674, 0xa67d,\r
-0xa67f, 0xa6f1,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8e0, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92d,\r
-0xa930, 0xa953,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9c0,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabec, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0xfe33, 0xfe34,\r
-0xfe4d, 0xfe4f,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff3f, 0xff3f,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x101fd, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102e0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae6,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f50,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11046,\r
-0x11066, 0x1106f,\r
-0x1107f, 0x110ba,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11173,\r
-0x11176, 0x11176,\r
-0x11180, 0x111c4,\r
-0x111c9, 0x111cc,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145e, 0x1145f,\r
-0x11480, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115c0,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x11739,\r
-0x11800, 0x1183a,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a50, 0x11a99,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af4,\r
-0x16b00, 0x16b36,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_ID_Continue */\r
-\r
-/* PROPERTY: 'ID_Start': Derived Property */\r
-static const OnigCodePoint\r
-CR_ID_Start[] = { 609,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0620, 0x064a,\r
-0x066e, 0x066f,\r
-0x0671, 0x06d3,\r
-0x06d5, 0x06d5,\r
-0x06e5, 0x06e6,\r
-0x06ee, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x0710,\r
-0x0712, 0x072f,\r
-0x074d, 0x07a5,\r
-0x07b1, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0815,\r
-0x081a, 0x081a,\r
-0x0824, 0x0824,\r
-0x0828, 0x0828,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x0904, 0x0939,\r
-0x093d, 0x093d,\r
-0x0950, 0x0950,\r
-0x0958, 0x0961,\r
-0x0971, 0x0980,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09bd,\r
-0x09ce, 0x09ce,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e1,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a72, 0x0a74,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0abd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae1,\r
-0x0af9, 0x0af9,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b3d,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b61,\r
-0x0b71, 0x0b71,\r
-0x0b83, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bd0, 0x0bd0,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c3d,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c61,\r
-0x0c80, 0x0c80,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cbd,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce1,\r
-0x0cf1, 0x0cf2,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d3d,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d56,\r
-0x0d5f, 0x0d61,\r
-0x0d7a, 0x0d7f,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0e01, 0x0e30,\r
-0x0e32, 0x0e33,\r
-0x0e40, 0x0e46,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb0,\r
-0x0eb2, 0x0eb3,\r
-0x0ebd, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f88, 0x0f8c,\r
-0x1000, 0x102a,\r
-0x103f, 0x103f,\r
-0x1050, 0x1055,\r
-0x105a, 0x105d,\r
-0x1061, 0x1061,\r
-0x1065, 0x1066,\r
-0x106e, 0x1070,\r
-0x1075, 0x1081,\r
-0x108e, 0x108e,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1711,\r
-0x1720, 0x1731,\r
-0x1740, 0x1751,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1780, 0x17b3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1878,\r
-0x1880, 0x18a8,\r
-0x18aa, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a16,\r
-0x1a20, 0x1a54,\r
-0x1aa7, 0x1aa7,\r
-0x1b05, 0x1b33,\r
-0x1b45, 0x1b4b,\r
-0x1b83, 0x1ba0,\r
-0x1bae, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1c00, 0x1c23,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2118, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309b, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa67f, 0xa69d,\r
-0xa6a0, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa801,\r
-0xa803, 0xa805,\r
-0xa807, 0xa80a,\r
-0xa80c, 0xa822,\r
-0xa840, 0xa873,\r
-0xa882, 0xa8b3,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8fe,\r
-0xa90a, 0xa925,\r
-0xa930, 0xa946,\r
-0xa960, 0xa97c,\r
-0xa984, 0xa9b2,\r
-0xa9cf, 0xa9cf,\r
-0xa9e0, 0xa9e4,\r
-0xa9e6, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa28,\r
-0xaa40, 0xaa42,\r
-0xaa44, 0xaa4b,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaa7a,\r
-0xaa7e, 0xaaaf,\r
-0xaab1, 0xaab1,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaabd,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaea,\r
-0xaaf2, 0xaaf4,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabe2,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb1d,\r
-0xfb1f, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x10375,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a00,\r
-0x10a10, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d23,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11003, 0x11037,\r
-0x11083, 0x110af,\r
-0x110d0, 0x110e8,\r
-0x11103, 0x11126,\r
-0x11144, 0x11144,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11183, 0x111b2,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x1122b,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112de,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x1133d,\r
-0x11350, 0x11350,\r
-0x1135d, 0x11361,\r
-0x11400, 0x11434,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114af,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115ae,\r
-0x115d8, 0x115db,\r
-0x11600, 0x1162f,\r
-0x11644, 0x11644,\r
-0x11680, 0x116aa,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x11800, 0x1182b,\r
-0x118a0, 0x118df,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d0,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e3,\r
-0x11a00, 0x11a00,\r
-0x11a0b, 0x11a32,\r
-0x11a3a, 0x11a3a,\r
-0x11a50, 0x11a50,\r
-0x11a5c, 0x11a89,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c2e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d30,\r
-0x11d46, 0x11d46,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d89,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef2,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f50, 0x16f50,\r
-0x16f93, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e94b, 0x1e94b,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_ID_Start */\r
-\r
-/* PROPERTY: 'Ideographic': Binary Property */\r
-static const OnigCodePoint\r
-CR_Ideographic[] = { 16,\r
-0x3006, 0x3007,\r
-0x3021, 0x3029,\r
-0x3038, 0x303a,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b170, 0x1b2fb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Ideographic */\r
-\r
-/* PROPERTY: 'Imperial_Aramaic': Script */\r
-static const OnigCodePoint\r
-CR_Imperial_Aramaic[] = { 2,\r
-0x10840, 0x10855,\r
-0x10857, 0x1085f,\r
-}; /* END of CR_Imperial_Aramaic */\r
-\r
-/* PROPERTY: 'Inherited': Script */\r
-static const OnigCodePoint\r
-CR_Inherited[] = { 28,\r
-0x0300, 0x036f,\r
-0x0485, 0x0486,\r
-0x064b, 0x0655,\r
-0x0670, 0x0670,\r
-0x0951, 0x0954,\r
-0x1ab0, 0x1abe,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1ce0,\r
-0x1ce2, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf8, 0x1cf9,\r
-0x1dc0, 0x1df9,\r
-0x1dfb, 0x1dff,\r
-0x200c, 0x200d,\r
-0x20d0, 0x20f0,\r
-0x302a, 0x302d,\r
-0x3099, 0x309a,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2d,\r
-0x101fd, 0x101fd,\r
-0x102e0, 0x102e0,\r
-0x1133b, 0x1133b,\r
-0x1d167, 0x1d169,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Inherited */\r
-\r
-/* PROPERTY: 'Inscriptional_Pahlavi': Script */\r
-static const OnigCodePoint\r
-CR_Inscriptional_Pahlavi[] = { 2,\r
-0x10b60, 0x10b72,\r
-0x10b78, 0x10b7f,\r
-}; /* END of CR_Inscriptional_Pahlavi */\r
-\r
-/* PROPERTY: 'Inscriptional_Parthian': Script */\r
-static const OnigCodePoint\r
-CR_Inscriptional_Parthian[] = { 2,\r
-0x10b40, 0x10b55,\r
-0x10b58, 0x10b5f,\r
-}; /* END of CR_Inscriptional_Parthian */\r
-\r
-/* PROPERTY: 'Javanese': Script */\r
-static const OnigCodePoint\r
-CR_Javanese[] = { 3,\r
-0xa980, 0xa9cd,\r
-0xa9d0, 0xa9d9,\r
-0xa9de, 0xa9df,\r
-}; /* END of CR_Javanese */\r
-\r
-/* PROPERTY: 'Join_Control': Binary Property */\r
-static const OnigCodePoint\r
-CR_Join_Control[] = { 1,\r
-0x200c, 0x200d,\r
-}; /* END of CR_Join_Control */\r
-\r
-/* PROPERTY: 'Kaithi': Script */\r
-static const OnigCodePoint\r
-CR_Kaithi[] = { 2,\r
-0x11080, 0x110c1,\r
-0x110cd, 0x110cd,\r
-}; /* END of CR_Kaithi */\r
-\r
-/* PROPERTY: 'Kannada': Script */\r
-static const OnigCodePoint\r
-CR_Kannada[] = { 13,\r
-0x0c80, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-}; /* END of CR_Kannada */\r
-\r
-/* PROPERTY: 'Katakana': Script */\r
-static const OnigCodePoint\r
-CR_Katakana[] = { 9,\r
-0x30a1, 0x30fa,\r
-0x30fd, 0x30ff,\r
-0x31f0, 0x31ff,\r
-0x32d0, 0x32fe,\r
-0x3300, 0x3357,\r
-0xff66, 0xff6f,\r
-0xff71, 0xff9d,\r
-0x1b000, 0x1b000,\r
-0x1b164, 0x1b167,\r
-}; /* END of CR_Katakana */\r
-\r
-/* PROPERTY: 'Kayah_Li': Script */\r
-static const OnigCodePoint\r
-CR_Kayah_Li[] = { 2,\r
-0xa900, 0xa92d,\r
-0xa92f, 0xa92f,\r
-}; /* END of CR_Kayah_Li */\r
-\r
-/* PROPERTY: 'Kharoshthi': Script */\r
-static const OnigCodePoint\r
-CR_Kharoshthi[] = { 8,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-}; /* END of CR_Kharoshthi */\r
-\r
-/* PROPERTY: 'Khmer': Script */\r
-static const OnigCodePoint\r
-CR_Khmer[] = { 4,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x19e0, 0x19ff,\r
-}; /* END of CR_Khmer */\r
-\r
-/* PROPERTY: 'Khojki': Script */\r
-static const OnigCodePoint\r
-CR_Khojki[] = { 2,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-}; /* END of CR_Khojki */\r
-\r
-/* PROPERTY: 'Khudawadi': Script */\r
-static const OnigCodePoint\r
-CR_Khudawadi[] = { 2,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-}; /* END of CR_Khudawadi */\r
-\r
-/* PROPERTY: 'L': Major Category */\r
-static const OnigCodePoint\r
-CR_L[] = { 609,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0620, 0x064a,\r
-0x066e, 0x066f,\r
-0x0671, 0x06d3,\r
-0x06d5, 0x06d5,\r
-0x06e5, 0x06e6,\r
-0x06ee, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x0710,\r
-0x0712, 0x072f,\r
-0x074d, 0x07a5,\r
-0x07b1, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0815,\r
-0x081a, 0x081a,\r
-0x0824, 0x0824,\r
-0x0828, 0x0828,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x0904, 0x0939,\r
-0x093d, 0x093d,\r
-0x0950, 0x0950,\r
-0x0958, 0x0961,\r
-0x0971, 0x0980,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09bd,\r
-0x09ce, 0x09ce,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e1,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a72, 0x0a74,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0abd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae1,\r
-0x0af9, 0x0af9,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b3d,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b61,\r
-0x0b71, 0x0b71,\r
-0x0b83, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bd0, 0x0bd0,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c3d,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c61,\r
-0x0c80, 0x0c80,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cbd,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce1,\r
-0x0cf1, 0x0cf2,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d3d,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d56,\r
-0x0d5f, 0x0d61,\r
-0x0d7a, 0x0d7f,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0e01, 0x0e30,\r
-0x0e32, 0x0e33,\r
-0x0e40, 0x0e46,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb0,\r
-0x0eb2, 0x0eb3,\r
-0x0ebd, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f88, 0x0f8c,\r
-0x1000, 0x102a,\r
-0x103f, 0x103f,\r
-0x1050, 0x1055,\r
-0x105a, 0x105d,\r
-0x1061, 0x1061,\r
-0x1065, 0x1066,\r
-0x106e, 0x1070,\r
-0x1075, 0x1081,\r
-0x108e, 0x108e,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16f1, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1711,\r
-0x1720, 0x1731,\r
-0x1740, 0x1751,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1780, 0x17b3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1878,\r
-0x1880, 0x1884,\r
-0x1887, 0x18a8,\r
-0x18aa, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a16,\r
-0x1a20, 0x1a54,\r
-0x1aa7, 0x1aa7,\r
-0x1b05, 0x1b33,\r
-0x1b45, 0x1b4b,\r
-0x1b83, 0x1ba0,\r
-0x1bae, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1c00, 0x1c23,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2183, 0x2184,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3006,\r
-0x3031, 0x3035,\r
-0x303b, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa67f, 0xa69d,\r
-0xa6a0, 0xa6e5,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa801,\r
-0xa803, 0xa805,\r
-0xa807, 0xa80a,\r
-0xa80c, 0xa822,\r
-0xa840, 0xa873,\r
-0xa882, 0xa8b3,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8fe,\r
-0xa90a, 0xa925,\r
-0xa930, 0xa946,\r
-0xa960, 0xa97c,\r
-0xa984, 0xa9b2,\r
-0xa9cf, 0xa9cf,\r
-0xa9e0, 0xa9e4,\r
-0xa9e6, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa28,\r
-0xaa40, 0xaa42,\r
-0xaa44, 0xaa4b,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaa7a,\r
-0xaa7e, 0xaaaf,\r
-0xaab1, 0xaab1,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaabd,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaea,\r
-0xaaf2, 0xaaf4,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabe2,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb1d,\r
-0xfb1f, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x10340,\r
-0x10342, 0x10349,\r
-0x10350, 0x10375,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x10400, 0x1049d,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a00,\r
-0x10a10, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d23,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11003, 0x11037,\r
-0x11083, 0x110af,\r
-0x110d0, 0x110e8,\r
-0x11103, 0x11126,\r
-0x11144, 0x11144,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11183, 0x111b2,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x1122b,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112de,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x1133d,\r
-0x11350, 0x11350,\r
-0x1135d, 0x11361,\r
-0x11400, 0x11434,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114af,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115ae,\r
-0x115d8, 0x115db,\r
-0x11600, 0x1162f,\r
-0x11644, 0x11644,\r
-0x11680, 0x116aa,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x11800, 0x1182b,\r
-0x118a0, 0x118df,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d0,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e3,\r
-0x11a00, 0x11a00,\r
-0x11a0b, 0x11a32,\r
-0x11a3a, 0x11a3a,\r
-0x11a50, 0x11a50,\r
-0x11a5c, 0x11a89,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c2e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d30,\r
-0x11d46, 0x11d46,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d89,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef2,\r
-0x12000, 0x12399,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f50, 0x16f50,\r
-0x16f93, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e94b, 0x1e94b,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_L */\r
-\r
-/* PROPERTY: 'LC': General Category */\r
-static const OnigCodePoint\r
-CR_LC[] = { 131,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00b5, 0x00b5,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x01ba,\r
-0x01bc, 0x01bf,\r
-0x01c4, 0x0293,\r
-0x0295, 0x02af,\r
-0x0370, 0x0373,\r
-0x0376, 0x0377,\r
-0x037b, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0560, 0x0588,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1d00, 0x1d2b,\r
-0x1d6b, 0x1d77,\r
-0x1d79, 0x1d9a,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2134,\r
-0x2139, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2183, 0x2184,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2c7b,\r
-0x2c7e, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa640, 0xa66d,\r
-0xa680, 0xa69b,\r
-0xa722, 0xa76f,\r
-0xa771, 0xa787,\r
-0xa78b, 0xa78e,\r
-0xa790, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7fa, 0xa7fa,\r
-0xab30, 0xab5a,\r
-0xab60, 0xab67,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0x10400, 0x1044f,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x118a0, 0x118df,\r
-0x16e40, 0x16e7f,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e900, 0x1e943,\r
-}; /* END of CR_LC */\r
-\r
-/* PROPERTY: 'Lao': Script */\r
-static const OnigCodePoint\r
-CR_Lao[] = { 11,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-}; /* END of CR_Lao */\r
-\r
-/* PROPERTY: 'Latin': Script */\r
-static const OnigCodePoint\r
-CR_Latin[] = { 32,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02b8,\r
-0x02e0, 0x02e4,\r
-0x1d00, 0x1d25,\r
-0x1d2c, 0x1d5c,\r
-0x1d62, 0x1d65,\r
-0x1d6b, 0x1d77,\r
-0x1d79, 0x1dbe,\r
-0x1e00, 0x1eff,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x212a, 0x212b,\r
-0x2132, 0x2132,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x2c60, 0x2c7f,\r
-0xa722, 0xa787,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa7ff,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab64,\r
-0xab66, 0xab67,\r
-0xfb00, 0xfb06,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-}; /* END of CR_Latin */\r
-\r
-/* PROPERTY: 'Lepcha': Script */\r
-static const OnigCodePoint\r
-CR_Lepcha[] = { 3,\r
-0x1c00, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c4f,\r
-}; /* END of CR_Lepcha */\r
-\r
-/* PROPERTY: 'Limbu': Script */\r
-static const OnigCodePoint\r
-CR_Limbu[] = { 5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x194f,\r
-}; /* END of CR_Limbu */\r
-\r
-/* PROPERTY: 'Linear_A': Script */\r
-static const OnigCodePoint\r
-CR_Linear_A[] = { 3,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-}; /* END of CR_Linear_A */\r
-\r
-/* PROPERTY: 'Linear_B': Script */\r
-static const OnigCodePoint\r
-CR_Linear_B[] = { 7,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-}; /* END of CR_Linear_B */\r
-\r
-/* PROPERTY: 'Lisu': Script */\r
-static const OnigCodePoint\r
-CR_Lisu[] = { 1,\r
-0xa4d0, 0xa4ff,\r
-}; /* END of CR_Lisu */\r
-\r
-/* PROPERTY: 'Ll': General Category */\r
-static const OnigCodePoint\r
-CR_Ll[] = { 642,\r
-0x0061, 0x007a,\r
-0x00b5, 0x00b5,\r
-0x00df, 0x00f6,\r
-0x00f8, 0x00ff,\r
-0x0101, 0x0101,\r
-0x0103, 0x0103,\r
-0x0105, 0x0105,\r
-0x0107, 0x0107,\r
-0x0109, 0x0109,\r
-0x010b, 0x010b,\r
-0x010d, 0x010d,\r
-0x010f, 0x010f,\r
-0x0111, 0x0111,\r
-0x0113, 0x0113,\r
-0x0115, 0x0115,\r
-0x0117, 0x0117,\r
-0x0119, 0x0119,\r
-0x011b, 0x011b,\r
-0x011d, 0x011d,\r
-0x011f, 0x011f,\r
-0x0121, 0x0121,\r
-0x0123, 0x0123,\r
-0x0125, 0x0125,\r
-0x0127, 0x0127,\r
-0x0129, 0x0129,\r
-0x012b, 0x012b,\r
-0x012d, 0x012d,\r
-0x012f, 0x012f,\r
-0x0131, 0x0131,\r
-0x0133, 0x0133,\r
-0x0135, 0x0135,\r
-0x0137, 0x0138,\r
-0x013a, 0x013a,\r
-0x013c, 0x013c,\r
-0x013e, 0x013e,\r
-0x0140, 0x0140,\r
-0x0142, 0x0142,\r
-0x0144, 0x0144,\r
-0x0146, 0x0146,\r
-0x0148, 0x0149,\r
-0x014b, 0x014b,\r
-0x014d, 0x014d,\r
-0x014f, 0x014f,\r
-0x0151, 0x0151,\r
-0x0153, 0x0153,\r
-0x0155, 0x0155,\r
-0x0157, 0x0157,\r
-0x0159, 0x0159,\r
-0x015b, 0x015b,\r
-0x015d, 0x015d,\r
-0x015f, 0x015f,\r
-0x0161, 0x0161,\r
-0x0163, 0x0163,\r
-0x0165, 0x0165,\r
-0x0167, 0x0167,\r
-0x0169, 0x0169,\r
-0x016b, 0x016b,\r
-0x016d, 0x016d,\r
-0x016f, 0x016f,\r
-0x0171, 0x0171,\r
-0x0173, 0x0173,\r
-0x0175, 0x0175,\r
-0x0177, 0x0177,\r
-0x017a, 0x017a,\r
-0x017c, 0x017c,\r
-0x017e, 0x0180,\r
-0x0183, 0x0183,\r
-0x0185, 0x0185,\r
-0x0188, 0x0188,\r
-0x018c, 0x018d,\r
-0x0192, 0x0192,\r
-0x0195, 0x0195,\r
-0x0199, 0x019b,\r
-0x019e, 0x019e,\r
-0x01a1, 0x01a1,\r
-0x01a3, 0x01a3,\r
-0x01a5, 0x01a5,\r
-0x01a8, 0x01a8,\r
-0x01aa, 0x01ab,\r
-0x01ad, 0x01ad,\r
-0x01b0, 0x01b0,\r
-0x01b4, 0x01b4,\r
-0x01b6, 0x01b6,\r
-0x01b9, 0x01ba,\r
-0x01bd, 0x01bf,\r
-0x01c6, 0x01c6,\r
-0x01c9, 0x01c9,\r
-0x01cc, 0x01cc,\r
-0x01ce, 0x01ce,\r
-0x01d0, 0x01d0,\r
-0x01d2, 0x01d2,\r
-0x01d4, 0x01d4,\r
-0x01d6, 0x01d6,\r
-0x01d8, 0x01d8,\r
-0x01da, 0x01da,\r
-0x01dc, 0x01dd,\r
-0x01df, 0x01df,\r
-0x01e1, 0x01e1,\r
-0x01e3, 0x01e3,\r
-0x01e5, 0x01e5,\r
-0x01e7, 0x01e7,\r
-0x01e9, 0x01e9,\r
-0x01eb, 0x01eb,\r
-0x01ed, 0x01ed,\r
-0x01ef, 0x01f0,\r
-0x01f3, 0x01f3,\r
-0x01f5, 0x01f5,\r
-0x01f9, 0x01f9,\r
-0x01fb, 0x01fb,\r
-0x01fd, 0x01fd,\r
-0x01ff, 0x01ff,\r
-0x0201, 0x0201,\r
-0x0203, 0x0203,\r
-0x0205, 0x0205,\r
-0x0207, 0x0207,\r
-0x0209, 0x0209,\r
-0x020b, 0x020b,\r
-0x020d, 0x020d,\r
-0x020f, 0x020f,\r
-0x0211, 0x0211,\r
-0x0213, 0x0213,\r
-0x0215, 0x0215,\r
-0x0217, 0x0217,\r
-0x0219, 0x0219,\r
-0x021b, 0x021b,\r
-0x021d, 0x021d,\r
-0x021f, 0x021f,\r
-0x0221, 0x0221,\r
-0x0223, 0x0223,\r
-0x0225, 0x0225,\r
-0x0227, 0x0227,\r
-0x0229, 0x0229,\r
-0x022b, 0x022b,\r
-0x022d, 0x022d,\r
-0x022f, 0x022f,\r
-0x0231, 0x0231,\r
-0x0233, 0x0239,\r
-0x023c, 0x023c,\r
-0x023f, 0x0240,\r
-0x0242, 0x0242,\r
-0x0247, 0x0247,\r
-0x0249, 0x0249,\r
-0x024b, 0x024b,\r
-0x024d, 0x024d,\r
-0x024f, 0x0293,\r
-0x0295, 0x02af,\r
-0x0371, 0x0371,\r
-0x0373, 0x0373,\r
-0x0377, 0x0377,\r
-0x037b, 0x037d,\r
-0x0390, 0x0390,\r
-0x03ac, 0x03ce,\r
-0x03d0, 0x03d1,\r
-0x03d5, 0x03d7,\r
-0x03d9, 0x03d9,\r
-0x03db, 0x03db,\r
-0x03dd, 0x03dd,\r
-0x03df, 0x03df,\r
-0x03e1, 0x03e1,\r
-0x03e3, 0x03e3,\r
-0x03e5, 0x03e5,\r
-0x03e7, 0x03e7,\r
-0x03e9, 0x03e9,\r
-0x03eb, 0x03eb,\r
-0x03ed, 0x03ed,\r
-0x03ef, 0x03f3,\r
-0x03f5, 0x03f5,\r
-0x03f8, 0x03f8,\r
-0x03fb, 0x03fc,\r
-0x0430, 0x045f,\r
-0x0461, 0x0461,\r
-0x0463, 0x0463,\r
-0x0465, 0x0465,\r
-0x0467, 0x0467,\r
-0x0469, 0x0469,\r
-0x046b, 0x046b,\r
-0x046d, 0x046d,\r
-0x046f, 0x046f,\r
-0x0471, 0x0471,\r
-0x0473, 0x0473,\r
-0x0475, 0x0475,\r
-0x0477, 0x0477,\r
-0x0479, 0x0479,\r
-0x047b, 0x047b,\r
-0x047d, 0x047d,\r
-0x047f, 0x047f,\r
-0x0481, 0x0481,\r
-0x048b, 0x048b,\r
-0x048d, 0x048d,\r
-0x048f, 0x048f,\r
-0x0491, 0x0491,\r
-0x0493, 0x0493,\r
-0x0495, 0x0495,\r
-0x0497, 0x0497,\r
-0x0499, 0x0499,\r
-0x049b, 0x049b,\r
-0x049d, 0x049d,\r
-0x049f, 0x049f,\r
-0x04a1, 0x04a1,\r
-0x04a3, 0x04a3,\r
-0x04a5, 0x04a5,\r
-0x04a7, 0x04a7,\r
-0x04a9, 0x04a9,\r
-0x04ab, 0x04ab,\r
-0x04ad, 0x04ad,\r
-0x04af, 0x04af,\r
-0x04b1, 0x04b1,\r
-0x04b3, 0x04b3,\r
-0x04b5, 0x04b5,\r
-0x04b7, 0x04b7,\r
-0x04b9, 0x04b9,\r
-0x04bb, 0x04bb,\r
-0x04bd, 0x04bd,\r
-0x04bf, 0x04bf,\r
-0x04c2, 0x04c2,\r
-0x04c4, 0x04c4,\r
-0x04c6, 0x04c6,\r
-0x04c8, 0x04c8,\r
-0x04ca, 0x04ca,\r
-0x04cc, 0x04cc,\r
-0x04ce, 0x04cf,\r
-0x04d1, 0x04d1,\r
-0x04d3, 0x04d3,\r
-0x04d5, 0x04d5,\r
-0x04d7, 0x04d7,\r
-0x04d9, 0x04d9,\r
-0x04db, 0x04db,\r
-0x04dd, 0x04dd,\r
-0x04df, 0x04df,\r
-0x04e1, 0x04e1,\r
-0x04e3, 0x04e3,\r
-0x04e5, 0x04e5,\r
-0x04e7, 0x04e7,\r
-0x04e9, 0x04e9,\r
-0x04eb, 0x04eb,\r
-0x04ed, 0x04ed,\r
-0x04ef, 0x04ef,\r
-0x04f1, 0x04f1,\r
-0x04f3, 0x04f3,\r
-0x04f5, 0x04f5,\r
-0x04f7, 0x04f7,\r
-0x04f9, 0x04f9,\r
-0x04fb, 0x04fb,\r
-0x04fd, 0x04fd,\r
-0x04ff, 0x04ff,\r
-0x0501, 0x0501,\r
-0x0503, 0x0503,\r
-0x0505, 0x0505,\r
-0x0507, 0x0507,\r
-0x0509, 0x0509,\r
-0x050b, 0x050b,\r
-0x050d, 0x050d,\r
-0x050f, 0x050f,\r
-0x0511, 0x0511,\r
-0x0513, 0x0513,\r
-0x0515, 0x0515,\r
-0x0517, 0x0517,\r
-0x0519, 0x0519,\r
-0x051b, 0x051b,\r
-0x051d, 0x051d,\r
-0x051f, 0x051f,\r
-0x0521, 0x0521,\r
-0x0523, 0x0523,\r
-0x0525, 0x0525,\r
-0x0527, 0x0527,\r
-0x0529, 0x0529,\r
-0x052b, 0x052b,\r
-0x052d, 0x052d,\r
-0x052f, 0x052f,\r
-0x0560, 0x0588,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1d00, 0x1d2b,\r
-0x1d6b, 0x1d77,\r
-0x1d79, 0x1d9a,\r
-0x1e01, 0x1e01,\r
-0x1e03, 0x1e03,\r
-0x1e05, 0x1e05,\r
-0x1e07, 0x1e07,\r
-0x1e09, 0x1e09,\r
-0x1e0b, 0x1e0b,\r
-0x1e0d, 0x1e0d,\r
-0x1e0f, 0x1e0f,\r
-0x1e11, 0x1e11,\r
-0x1e13, 0x1e13,\r
-0x1e15, 0x1e15,\r
-0x1e17, 0x1e17,\r
-0x1e19, 0x1e19,\r
-0x1e1b, 0x1e1b,\r
-0x1e1d, 0x1e1d,\r
-0x1e1f, 0x1e1f,\r
-0x1e21, 0x1e21,\r
-0x1e23, 0x1e23,\r
-0x1e25, 0x1e25,\r
-0x1e27, 0x1e27,\r
-0x1e29, 0x1e29,\r
-0x1e2b, 0x1e2b,\r
-0x1e2d, 0x1e2d,\r
-0x1e2f, 0x1e2f,\r
-0x1e31, 0x1e31,\r
-0x1e33, 0x1e33,\r
-0x1e35, 0x1e35,\r
-0x1e37, 0x1e37,\r
-0x1e39, 0x1e39,\r
-0x1e3b, 0x1e3b,\r
-0x1e3d, 0x1e3d,\r
-0x1e3f, 0x1e3f,\r
-0x1e41, 0x1e41,\r
-0x1e43, 0x1e43,\r
-0x1e45, 0x1e45,\r
-0x1e47, 0x1e47,\r
-0x1e49, 0x1e49,\r
-0x1e4b, 0x1e4b,\r
-0x1e4d, 0x1e4d,\r
-0x1e4f, 0x1e4f,\r
-0x1e51, 0x1e51,\r
-0x1e53, 0x1e53,\r
-0x1e55, 0x1e55,\r
-0x1e57, 0x1e57,\r
-0x1e59, 0x1e59,\r
-0x1e5b, 0x1e5b,\r
-0x1e5d, 0x1e5d,\r
-0x1e5f, 0x1e5f,\r
-0x1e61, 0x1e61,\r
-0x1e63, 0x1e63,\r
-0x1e65, 0x1e65,\r
-0x1e67, 0x1e67,\r
-0x1e69, 0x1e69,\r
-0x1e6b, 0x1e6b,\r
-0x1e6d, 0x1e6d,\r
-0x1e6f, 0x1e6f,\r
-0x1e71, 0x1e71,\r
-0x1e73, 0x1e73,\r
-0x1e75, 0x1e75,\r
-0x1e77, 0x1e77,\r
-0x1e79, 0x1e79,\r
-0x1e7b, 0x1e7b,\r
-0x1e7d, 0x1e7d,\r
-0x1e7f, 0x1e7f,\r
-0x1e81, 0x1e81,\r
-0x1e83, 0x1e83,\r
-0x1e85, 0x1e85,\r
-0x1e87, 0x1e87,\r
-0x1e89, 0x1e89,\r
-0x1e8b, 0x1e8b,\r
-0x1e8d, 0x1e8d,\r
-0x1e8f, 0x1e8f,\r
-0x1e91, 0x1e91,\r
-0x1e93, 0x1e93,\r
-0x1e95, 0x1e9d,\r
-0x1e9f, 0x1e9f,\r
-0x1ea1, 0x1ea1,\r
-0x1ea3, 0x1ea3,\r
-0x1ea5, 0x1ea5,\r
-0x1ea7, 0x1ea7,\r
-0x1ea9, 0x1ea9,\r
-0x1eab, 0x1eab,\r
-0x1ead, 0x1ead,\r
-0x1eaf, 0x1eaf,\r
-0x1eb1, 0x1eb1,\r
-0x1eb3, 0x1eb3,\r
-0x1eb5, 0x1eb5,\r
-0x1eb7, 0x1eb7,\r
-0x1eb9, 0x1eb9,\r
-0x1ebb, 0x1ebb,\r
-0x1ebd, 0x1ebd,\r
-0x1ebf, 0x1ebf,\r
-0x1ec1, 0x1ec1,\r
-0x1ec3, 0x1ec3,\r
-0x1ec5, 0x1ec5,\r
-0x1ec7, 0x1ec7,\r
-0x1ec9, 0x1ec9,\r
-0x1ecb, 0x1ecb,\r
-0x1ecd, 0x1ecd,\r
-0x1ecf, 0x1ecf,\r
-0x1ed1, 0x1ed1,\r
-0x1ed3, 0x1ed3,\r
-0x1ed5, 0x1ed5,\r
-0x1ed7, 0x1ed7,\r
-0x1ed9, 0x1ed9,\r
-0x1edb, 0x1edb,\r
-0x1edd, 0x1edd,\r
-0x1edf, 0x1edf,\r
-0x1ee1, 0x1ee1,\r
-0x1ee3, 0x1ee3,\r
-0x1ee5, 0x1ee5,\r
-0x1ee7, 0x1ee7,\r
-0x1ee9, 0x1ee9,\r
-0x1eeb, 0x1eeb,\r
-0x1eed, 0x1eed,\r
-0x1eef, 0x1eef,\r
-0x1ef1, 0x1ef1,\r
-0x1ef3, 0x1ef3,\r
-0x1ef5, 0x1ef5,\r
-0x1ef7, 0x1ef7,\r
-0x1ef9, 0x1ef9,\r
-0x1efb, 0x1efb,\r
-0x1efd, 0x1efd,\r
-0x1eff, 0x1f07,\r
-0x1f10, 0x1f15,\r
-0x1f20, 0x1f27,\r
-0x1f30, 0x1f37,\r
-0x1f40, 0x1f45,\r
-0x1f50, 0x1f57,\r
-0x1f60, 0x1f67,\r
-0x1f70, 0x1f7d,\r
-0x1f80, 0x1f87,\r
-0x1f90, 0x1f97,\r
-0x1fa0, 0x1fa7,\r
-0x1fb0, 0x1fb4,\r
-0x1fb6, 0x1fb7,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fc7,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fd7,\r
-0x1fe0, 0x1fe7,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ff7,\r
-0x210a, 0x210a,\r
-0x210e, 0x210f,\r
-0x2113, 0x2113,\r
-0x212f, 0x212f,\r
-0x2134, 0x2134,\r
-0x2139, 0x2139,\r
-0x213c, 0x213d,\r
-0x2146, 0x2149,\r
-0x214e, 0x214e,\r
-0x2184, 0x2184,\r
-0x2c30, 0x2c5e,\r
-0x2c61, 0x2c61,\r
-0x2c65, 0x2c66,\r
-0x2c68, 0x2c68,\r
-0x2c6a, 0x2c6a,\r
-0x2c6c, 0x2c6c,\r
-0x2c71, 0x2c71,\r
-0x2c73, 0x2c74,\r
-0x2c76, 0x2c7b,\r
-0x2c81, 0x2c81,\r
-0x2c83, 0x2c83,\r
-0x2c85, 0x2c85,\r
-0x2c87, 0x2c87,\r
-0x2c89, 0x2c89,\r
-0x2c8b, 0x2c8b,\r
-0x2c8d, 0x2c8d,\r
-0x2c8f, 0x2c8f,\r
-0x2c91, 0x2c91,\r
-0x2c93, 0x2c93,\r
-0x2c95, 0x2c95,\r
-0x2c97, 0x2c97,\r
-0x2c99, 0x2c99,\r
-0x2c9b, 0x2c9b,\r
-0x2c9d, 0x2c9d,\r
-0x2c9f, 0x2c9f,\r
-0x2ca1, 0x2ca1,\r
-0x2ca3, 0x2ca3,\r
-0x2ca5, 0x2ca5,\r
-0x2ca7, 0x2ca7,\r
-0x2ca9, 0x2ca9,\r
-0x2cab, 0x2cab,\r
-0x2cad, 0x2cad,\r
-0x2caf, 0x2caf,\r
-0x2cb1, 0x2cb1,\r
-0x2cb3, 0x2cb3,\r
-0x2cb5, 0x2cb5,\r
-0x2cb7, 0x2cb7,\r
-0x2cb9, 0x2cb9,\r
-0x2cbb, 0x2cbb,\r
-0x2cbd, 0x2cbd,\r
-0x2cbf, 0x2cbf,\r
-0x2cc1, 0x2cc1,\r
-0x2cc3, 0x2cc3,\r
-0x2cc5, 0x2cc5,\r
-0x2cc7, 0x2cc7,\r
-0x2cc9, 0x2cc9,\r
-0x2ccb, 0x2ccb,\r
-0x2ccd, 0x2ccd,\r
-0x2ccf, 0x2ccf,\r
-0x2cd1, 0x2cd1,\r
-0x2cd3, 0x2cd3,\r
-0x2cd5, 0x2cd5,\r
-0x2cd7, 0x2cd7,\r
-0x2cd9, 0x2cd9,\r
-0x2cdb, 0x2cdb,\r
-0x2cdd, 0x2cdd,\r
-0x2cdf, 0x2cdf,\r
-0x2ce1, 0x2ce1,\r
-0x2ce3, 0x2ce4,\r
-0x2cec, 0x2cec,\r
-0x2cee, 0x2cee,\r
-0x2cf3, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa641, 0xa641,\r
-0xa643, 0xa643,\r
-0xa645, 0xa645,\r
-0xa647, 0xa647,\r
-0xa649, 0xa649,\r
-0xa64b, 0xa64b,\r
-0xa64d, 0xa64d,\r
-0xa64f, 0xa64f,\r
-0xa651, 0xa651,\r
-0xa653, 0xa653,\r
-0xa655, 0xa655,\r
-0xa657, 0xa657,\r
-0xa659, 0xa659,\r
-0xa65b, 0xa65b,\r
-0xa65d, 0xa65d,\r
-0xa65f, 0xa65f,\r
-0xa661, 0xa661,\r
-0xa663, 0xa663,\r
-0xa665, 0xa665,\r
-0xa667, 0xa667,\r
-0xa669, 0xa669,\r
-0xa66b, 0xa66b,\r
-0xa66d, 0xa66d,\r
-0xa681, 0xa681,\r
-0xa683, 0xa683,\r
-0xa685, 0xa685,\r
-0xa687, 0xa687,\r
-0xa689, 0xa689,\r
-0xa68b, 0xa68b,\r
-0xa68d, 0xa68d,\r
-0xa68f, 0xa68f,\r
-0xa691, 0xa691,\r
-0xa693, 0xa693,\r
-0xa695, 0xa695,\r
-0xa697, 0xa697,\r
-0xa699, 0xa699,\r
-0xa69b, 0xa69b,\r
-0xa723, 0xa723,\r
-0xa725, 0xa725,\r
-0xa727, 0xa727,\r
-0xa729, 0xa729,\r
-0xa72b, 0xa72b,\r
-0xa72d, 0xa72d,\r
-0xa72f, 0xa731,\r
-0xa733, 0xa733,\r
-0xa735, 0xa735,\r
-0xa737, 0xa737,\r
-0xa739, 0xa739,\r
-0xa73b, 0xa73b,\r
-0xa73d, 0xa73d,\r
-0xa73f, 0xa73f,\r
-0xa741, 0xa741,\r
-0xa743, 0xa743,\r
-0xa745, 0xa745,\r
-0xa747, 0xa747,\r
-0xa749, 0xa749,\r
-0xa74b, 0xa74b,\r
-0xa74d, 0xa74d,\r
-0xa74f, 0xa74f,\r
-0xa751, 0xa751,\r
-0xa753, 0xa753,\r
-0xa755, 0xa755,\r
-0xa757, 0xa757,\r
-0xa759, 0xa759,\r
-0xa75b, 0xa75b,\r
-0xa75d, 0xa75d,\r
-0xa75f, 0xa75f,\r
-0xa761, 0xa761,\r
-0xa763, 0xa763,\r
-0xa765, 0xa765,\r
-0xa767, 0xa767,\r
-0xa769, 0xa769,\r
-0xa76b, 0xa76b,\r
-0xa76d, 0xa76d,\r
-0xa76f, 0xa76f,\r
-0xa771, 0xa778,\r
-0xa77a, 0xa77a,\r
-0xa77c, 0xa77c,\r
-0xa77f, 0xa77f,\r
-0xa781, 0xa781,\r
-0xa783, 0xa783,\r
-0xa785, 0xa785,\r
-0xa787, 0xa787,\r
-0xa78c, 0xa78c,\r
-0xa78e, 0xa78e,\r
-0xa791, 0xa791,\r
-0xa793, 0xa795,\r
-0xa797, 0xa797,\r
-0xa799, 0xa799,\r
-0xa79b, 0xa79b,\r
-0xa79d, 0xa79d,\r
-0xa79f, 0xa79f,\r
-0xa7a1, 0xa7a1,\r
-0xa7a3, 0xa7a3,\r
-0xa7a5, 0xa7a5,\r
-0xa7a7, 0xa7a7,\r
-0xa7a9, 0xa7a9,\r
-0xa7af, 0xa7af,\r
-0xa7b5, 0xa7b5,\r
-0xa7b7, 0xa7b7,\r
-0xa7b9, 0xa7b9,\r
-0xa7bb, 0xa7bb,\r
-0xa7bd, 0xa7bd,\r
-0xa7bf, 0xa7bf,\r
-0xa7c3, 0xa7c3,\r
-0xa7fa, 0xa7fa,\r
-0xab30, 0xab5a,\r
-0xab60, 0xab67,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff41, 0xff5a,\r
-0x10428, 0x1044f,\r
-0x104d8, 0x104fb,\r
-0x10cc0, 0x10cf2,\r
-0x118c0, 0x118df,\r
-0x16e60, 0x16e7f,\r
-0x1d41a, 0x1d433,\r
-0x1d44e, 0x1d454,\r
-0x1d456, 0x1d467,\r
-0x1d482, 0x1d49b,\r
-0x1d4b6, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d4cf,\r
-0x1d4ea, 0x1d503,\r
-0x1d51e, 0x1d537,\r
-0x1d552, 0x1d56b,\r
-0x1d586, 0x1d59f,\r
-0x1d5ba, 0x1d5d3,\r
-0x1d5ee, 0x1d607,\r
-0x1d622, 0x1d63b,\r
-0x1d656, 0x1d66f,\r
-0x1d68a, 0x1d6a5,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6e1,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d71b,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d755,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d78f,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7c9,\r
-0x1d7cb, 0x1d7cb,\r
-0x1e922, 0x1e943,\r
-}; /* END of CR_Ll */\r
-\r
-/* PROPERTY: 'Lm': General Category */\r
-static const OnigCodePoint\r
-CR_Lm[] = { 60,\r
-0x02b0, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0374, 0x0374,\r
-0x037a, 0x037a,\r
-0x0559, 0x0559,\r
-0x0640, 0x0640,\r
-0x06e5, 0x06e6,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x081a, 0x081a,\r
-0x0824, 0x0824,\r
-0x0828, 0x0828,\r
-0x0971, 0x0971,\r
-0x0e46, 0x0e46,\r
-0x0ec6, 0x0ec6,\r
-0x10fc, 0x10fc,\r
-0x17d7, 0x17d7,\r
-0x1843, 0x1843,\r
-0x1aa7, 0x1aa7,\r
-0x1c78, 0x1c7d,\r
-0x1d2c, 0x1d6a,\r
-0x1d78, 0x1d78,\r
-0x1d9b, 0x1dbf,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2c7c, 0x2c7d,\r
-0x2d6f, 0x2d6f,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3005,\r
-0x3031, 0x3035,\r
-0x303b, 0x303b,\r
-0x309d, 0x309e,\r
-0x30fc, 0x30fe,\r
-0xa015, 0xa015,\r
-0xa4f8, 0xa4fd,\r
-0xa60c, 0xa60c,\r
-0xa67f, 0xa67f,\r
-0xa69c, 0xa69d,\r
-0xa717, 0xa71f,\r
-0xa770, 0xa770,\r
-0xa788, 0xa788,\r
-0xa7f8, 0xa7f9,\r
-0xa9cf, 0xa9cf,\r
-0xa9e6, 0xa9e6,\r
-0xaa70, 0xaa70,\r
-0xaadd, 0xaadd,\r
-0xaaf3, 0xaaf4,\r
-0xab5c, 0xab5f,\r
-0xff70, 0xff70,\r
-0xff9e, 0xff9f,\r
-0x16b40, 0x16b43,\r
-0x16f93, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x1e137, 0x1e13d,\r
-0x1e94b, 0x1e94b,\r
-}; /* END of CR_Lm */\r
-\r
-/* PROPERTY: 'Lo': General Category */\r
-static const OnigCodePoint\r
-CR_Lo[] = { 476,\r
-0x00aa, 0x00aa,\r
-0x00ba, 0x00ba,\r
-0x01bb, 0x01bb,\r
-0x01c0, 0x01c3,\r
-0x0294, 0x0294,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0620, 0x063f,\r
-0x0641, 0x064a,\r
-0x066e, 0x066f,\r
-0x0671, 0x06d3,\r
-0x06d5, 0x06d5,\r
-0x06ee, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x0710,\r
-0x0712, 0x072f,\r
-0x074d, 0x07a5,\r
-0x07b1, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x0800, 0x0815,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x0904, 0x0939,\r
-0x093d, 0x093d,\r
-0x0950, 0x0950,\r
-0x0958, 0x0961,\r
-0x0972, 0x0980,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09bd,\r
-0x09ce, 0x09ce,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e1,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a72, 0x0a74,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0abd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae1,\r
-0x0af9, 0x0af9,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b3d,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b61,\r
-0x0b71, 0x0b71,\r
-0x0b83, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bd0, 0x0bd0,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c3d,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c61,\r
-0x0c80, 0x0c80,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cbd,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce1,\r
-0x0cf1, 0x0cf2,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d3d,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d56,\r
-0x0d5f, 0x0d61,\r
-0x0d7a, 0x0d7f,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0e01, 0x0e30,\r
-0x0e32, 0x0e33,\r
-0x0e40, 0x0e45,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb0,\r
-0x0eb2, 0x0eb3,\r
-0x0ebd, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f88, 0x0f8c,\r
-0x1000, 0x102a,\r
-0x103f, 0x103f,\r
-0x1050, 0x1055,\r
-0x105a, 0x105d,\r
-0x1061, 0x1061,\r
-0x1065, 0x1066,\r
-0x106e, 0x1070,\r
-0x1075, 0x1081,\r
-0x108e, 0x108e,\r
-0x1100, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16f1, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1711,\r
-0x1720, 0x1731,\r
-0x1740, 0x1751,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1780, 0x17b3,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1842,\r
-0x1844, 0x1878,\r
-0x1880, 0x1884,\r
-0x1887, 0x18a8,\r
-0x18aa, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a16,\r
-0x1a20, 0x1a54,\r
-0x1b05, 0x1b33,\r
-0x1b45, 0x1b4b,\r
-0x1b83, 0x1ba0,\r
-0x1bae, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1c00, 0x1c23,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c77,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x2135, 0x2138,\r
-0x2d30, 0x2d67,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x3006, 0x3006,\r
-0x303c, 0x303c,\r
-0x3041, 0x3096,\r
-0x309f, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30ff, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa014,\r
-0xa016, 0xa48c,\r
-0xa4d0, 0xa4f7,\r
-0xa500, 0xa60b,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa66e, 0xa66e,\r
-0xa6a0, 0xa6e5,\r
-0xa78f, 0xa78f,\r
-0xa7f7, 0xa7f7,\r
-0xa7fb, 0xa801,\r
-0xa803, 0xa805,\r
-0xa807, 0xa80a,\r
-0xa80c, 0xa822,\r
-0xa840, 0xa873,\r
-0xa882, 0xa8b3,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8fe,\r
-0xa90a, 0xa925,\r
-0xa930, 0xa946,\r
-0xa960, 0xa97c,\r
-0xa984, 0xa9b2,\r
-0xa9e0, 0xa9e4,\r
-0xa9e7, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa28,\r
-0xaa40, 0xaa42,\r
-0xaa44, 0xaa4b,\r
-0xaa60, 0xaa6f,\r
-0xaa71, 0xaa76,\r
-0xaa7a, 0xaa7a,\r
-0xaa7e, 0xaaaf,\r
-0xaab1, 0xaab1,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaabd,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadc,\r
-0xaae0, 0xaaea,\r
-0xaaf2, 0xaaf2,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xabc0, 0xabe2,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb1d, 0xfb1d,\r
-0xfb1f, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff66, 0xff6f,\r
-0xff71, 0xff9d,\r
-0xffa0, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x10340,\r
-0x10342, 0x10349,\r
-0x10350, 0x10375,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x10450, 0x1049d,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a00,\r
-0x10a10, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10d00, 0x10d23,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11003, 0x11037,\r
-0x11083, 0x110af,\r
-0x110d0, 0x110e8,\r
-0x11103, 0x11126,\r
-0x11144, 0x11144,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11183, 0x111b2,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x1122b,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112de,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x1133d,\r
-0x11350, 0x11350,\r
-0x1135d, 0x11361,\r
-0x11400, 0x11434,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114af,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115ae,\r
-0x115d8, 0x115db,\r
-0x11600, 0x1162f,\r
-0x11644, 0x11644,\r
-0x11680, 0x116aa,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x11800, 0x1182b,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d0,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e3,\r
-0x11a00, 0x11a00,\r
-0x11a0b, 0x11a32,\r
-0x11a3a, 0x11a3a,\r
-0x11a50, 0x11a50,\r
-0x11a5c, 0x11a89,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c2e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d30,\r
-0x11d46, 0x11d46,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d89,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef2,\r
-0x12000, 0x12399,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16f00, 0x16f4a,\r
-0x16f50, 0x16f50,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1e100, 0x1e12c,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Lo */\r
-\r
-/* PROPERTY: 'Logical_Order_Exception': Binary Property */\r
-static const OnigCodePoint\r
-CR_Logical_Order_Exception[] = { 7,\r
-0x0e40, 0x0e44,\r
-0x0ec0, 0x0ec4,\r
-0x19b5, 0x19b7,\r
-0x19ba, 0x19ba,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaab9,\r
-0xaabb, 0xaabc,\r
-}; /* END of CR_Logical_Order_Exception */\r
-\r
-/* PROPERTY: 'Lowercase': Derived Property */\r
-#define CR_Lowercase CR_Lower\r
-\r
-/* PROPERTY: 'Lt': General Category */\r
-static const OnigCodePoint\r
-CR_Lt[] = { 10,\r
-0x01c5, 0x01c5,\r
-0x01c8, 0x01c8,\r
-0x01cb, 0x01cb,\r
-0x01f2, 0x01f2,\r
-0x1f88, 0x1f8f,\r
-0x1f98, 0x1f9f,\r
-0x1fa8, 0x1faf,\r
-0x1fbc, 0x1fbc,\r
-0x1fcc, 0x1fcc,\r
-0x1ffc, 0x1ffc,\r
-}; /* END of CR_Lt */\r
-\r
-/* PROPERTY: 'Lu': General Category */\r
-static const OnigCodePoint\r
-CR_Lu[] = { 636,\r
-0x0041, 0x005a,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00de,\r
-0x0100, 0x0100,\r
-0x0102, 0x0102,\r
-0x0104, 0x0104,\r
-0x0106, 0x0106,\r
-0x0108, 0x0108,\r
-0x010a, 0x010a,\r
-0x010c, 0x010c,\r
-0x010e, 0x010e,\r
-0x0110, 0x0110,\r
-0x0112, 0x0112,\r
-0x0114, 0x0114,\r
-0x0116, 0x0116,\r
-0x0118, 0x0118,\r
-0x011a, 0x011a,\r
-0x011c, 0x011c,\r
-0x011e, 0x011e,\r
-0x0120, 0x0120,\r
-0x0122, 0x0122,\r
-0x0124, 0x0124,\r
-0x0126, 0x0126,\r
-0x0128, 0x0128,\r
-0x012a, 0x012a,\r
-0x012c, 0x012c,\r
-0x012e, 0x012e,\r
-0x0130, 0x0130,\r
-0x0132, 0x0132,\r
-0x0134, 0x0134,\r
-0x0136, 0x0136,\r
-0x0139, 0x0139,\r
-0x013b, 0x013b,\r
-0x013d, 0x013d,\r
-0x013f, 0x013f,\r
-0x0141, 0x0141,\r
-0x0143, 0x0143,\r
-0x0145, 0x0145,\r
-0x0147, 0x0147,\r
-0x014a, 0x014a,\r
-0x014c, 0x014c,\r
-0x014e, 0x014e,\r
-0x0150, 0x0150,\r
-0x0152, 0x0152,\r
-0x0154, 0x0154,\r
-0x0156, 0x0156,\r
-0x0158, 0x0158,\r
-0x015a, 0x015a,\r
-0x015c, 0x015c,\r
-0x015e, 0x015e,\r
-0x0160, 0x0160,\r
-0x0162, 0x0162,\r
-0x0164, 0x0164,\r
-0x0166, 0x0166,\r
-0x0168, 0x0168,\r
-0x016a, 0x016a,\r
-0x016c, 0x016c,\r
-0x016e, 0x016e,\r
-0x0170, 0x0170,\r
-0x0172, 0x0172,\r
-0x0174, 0x0174,\r
-0x0176, 0x0176,\r
-0x0178, 0x0179,\r
-0x017b, 0x017b,\r
-0x017d, 0x017d,\r
-0x0181, 0x0182,\r
-0x0184, 0x0184,\r
-0x0186, 0x0187,\r
-0x0189, 0x018b,\r
-0x018e, 0x0191,\r
-0x0193, 0x0194,\r
-0x0196, 0x0198,\r
-0x019c, 0x019d,\r
-0x019f, 0x01a0,\r
-0x01a2, 0x01a2,\r
-0x01a4, 0x01a4,\r
-0x01a6, 0x01a7,\r
-0x01a9, 0x01a9,\r
-0x01ac, 0x01ac,\r
-0x01ae, 0x01af,\r
-0x01b1, 0x01b3,\r
-0x01b5, 0x01b5,\r
-0x01b7, 0x01b8,\r
-0x01bc, 0x01bc,\r
-0x01c4, 0x01c4,\r
-0x01c7, 0x01c7,\r
-0x01ca, 0x01ca,\r
-0x01cd, 0x01cd,\r
-0x01cf, 0x01cf,\r
-0x01d1, 0x01d1,\r
-0x01d3, 0x01d3,\r
-0x01d5, 0x01d5,\r
-0x01d7, 0x01d7,\r
-0x01d9, 0x01d9,\r
-0x01db, 0x01db,\r
-0x01de, 0x01de,\r
-0x01e0, 0x01e0,\r
-0x01e2, 0x01e2,\r
-0x01e4, 0x01e4,\r
-0x01e6, 0x01e6,\r
-0x01e8, 0x01e8,\r
-0x01ea, 0x01ea,\r
-0x01ec, 0x01ec,\r
-0x01ee, 0x01ee,\r
-0x01f1, 0x01f1,\r
-0x01f4, 0x01f4,\r
-0x01f6, 0x01f8,\r
-0x01fa, 0x01fa,\r
-0x01fc, 0x01fc,\r
-0x01fe, 0x01fe,\r
-0x0200, 0x0200,\r
-0x0202, 0x0202,\r
-0x0204, 0x0204,\r
-0x0206, 0x0206,\r
-0x0208, 0x0208,\r
-0x020a, 0x020a,\r
-0x020c, 0x020c,\r
-0x020e, 0x020e,\r
-0x0210, 0x0210,\r
-0x0212, 0x0212,\r
-0x0214, 0x0214,\r
-0x0216, 0x0216,\r
-0x0218, 0x0218,\r
-0x021a, 0x021a,\r
-0x021c, 0x021c,\r
-0x021e, 0x021e,\r
-0x0220, 0x0220,\r
-0x0222, 0x0222,\r
-0x0224, 0x0224,\r
-0x0226, 0x0226,\r
-0x0228, 0x0228,\r
-0x022a, 0x022a,\r
-0x022c, 0x022c,\r
-0x022e, 0x022e,\r
-0x0230, 0x0230,\r
-0x0232, 0x0232,\r
-0x023a, 0x023b,\r
-0x023d, 0x023e,\r
-0x0241, 0x0241,\r
-0x0243, 0x0246,\r
-0x0248, 0x0248,\r
-0x024a, 0x024a,\r
-0x024c, 0x024c,\r
-0x024e, 0x024e,\r
-0x0370, 0x0370,\r
-0x0372, 0x0372,\r
-0x0376, 0x0376,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x038f,\r
-0x0391, 0x03a1,\r
-0x03a3, 0x03ab,\r
-0x03cf, 0x03cf,\r
-0x03d2, 0x03d4,\r
-0x03d8, 0x03d8,\r
-0x03da, 0x03da,\r
-0x03dc, 0x03dc,\r
-0x03de, 0x03de,\r
-0x03e0, 0x03e0,\r
-0x03e2, 0x03e2,\r
-0x03e4, 0x03e4,\r
-0x03e6, 0x03e6,\r
-0x03e8, 0x03e8,\r
-0x03ea, 0x03ea,\r
-0x03ec, 0x03ec,\r
-0x03ee, 0x03ee,\r
-0x03f4, 0x03f4,\r
-0x03f7, 0x03f7,\r
-0x03f9, 0x03fa,\r
-0x03fd, 0x042f,\r
-0x0460, 0x0460,\r
-0x0462, 0x0462,\r
-0x0464, 0x0464,\r
-0x0466, 0x0466,\r
-0x0468, 0x0468,\r
-0x046a, 0x046a,\r
-0x046c, 0x046c,\r
-0x046e, 0x046e,\r
-0x0470, 0x0470,\r
-0x0472, 0x0472,\r
-0x0474, 0x0474,\r
-0x0476, 0x0476,\r
-0x0478, 0x0478,\r
-0x047a, 0x047a,\r
-0x047c, 0x047c,\r
-0x047e, 0x047e,\r
-0x0480, 0x0480,\r
-0x048a, 0x048a,\r
-0x048c, 0x048c,\r
-0x048e, 0x048e,\r
-0x0490, 0x0490,\r
-0x0492, 0x0492,\r
-0x0494, 0x0494,\r
-0x0496, 0x0496,\r
-0x0498, 0x0498,\r
-0x049a, 0x049a,\r
-0x049c, 0x049c,\r
-0x049e, 0x049e,\r
-0x04a0, 0x04a0,\r
-0x04a2, 0x04a2,\r
-0x04a4, 0x04a4,\r
-0x04a6, 0x04a6,\r
-0x04a8, 0x04a8,\r
-0x04aa, 0x04aa,\r
-0x04ac, 0x04ac,\r
-0x04ae, 0x04ae,\r
-0x04b0, 0x04b0,\r
-0x04b2, 0x04b2,\r
-0x04b4, 0x04b4,\r
-0x04b6, 0x04b6,\r
-0x04b8, 0x04b8,\r
-0x04ba, 0x04ba,\r
-0x04bc, 0x04bc,\r
-0x04be, 0x04be,\r
-0x04c0, 0x04c1,\r
-0x04c3, 0x04c3,\r
-0x04c5, 0x04c5,\r
-0x04c7, 0x04c7,\r
-0x04c9, 0x04c9,\r
-0x04cb, 0x04cb,\r
-0x04cd, 0x04cd,\r
-0x04d0, 0x04d0,\r
-0x04d2, 0x04d2,\r
-0x04d4, 0x04d4,\r
-0x04d6, 0x04d6,\r
-0x04d8, 0x04d8,\r
-0x04da, 0x04da,\r
-0x04dc, 0x04dc,\r
-0x04de, 0x04de,\r
-0x04e0, 0x04e0,\r
-0x04e2, 0x04e2,\r
-0x04e4, 0x04e4,\r
-0x04e6, 0x04e6,\r
-0x04e8, 0x04e8,\r
-0x04ea, 0x04ea,\r
-0x04ec, 0x04ec,\r
-0x04ee, 0x04ee,\r
-0x04f0, 0x04f0,\r
-0x04f2, 0x04f2,\r
-0x04f4, 0x04f4,\r
-0x04f6, 0x04f6,\r
-0x04f8, 0x04f8,\r
-0x04fa, 0x04fa,\r
-0x04fc, 0x04fc,\r
-0x04fe, 0x04fe,\r
-0x0500, 0x0500,\r
-0x0502, 0x0502,\r
-0x0504, 0x0504,\r
-0x0506, 0x0506,\r
-0x0508, 0x0508,\r
-0x050a, 0x050a,\r
-0x050c, 0x050c,\r
-0x050e, 0x050e,\r
-0x0510, 0x0510,\r
-0x0512, 0x0512,\r
-0x0514, 0x0514,\r
-0x0516, 0x0516,\r
-0x0518, 0x0518,\r
-0x051a, 0x051a,\r
-0x051c, 0x051c,\r
-0x051e, 0x051e,\r
-0x0520, 0x0520,\r
-0x0522, 0x0522,\r
-0x0524, 0x0524,\r
-0x0526, 0x0526,\r
-0x0528, 0x0528,\r
-0x052a, 0x052a,\r
-0x052c, 0x052c,\r
-0x052e, 0x052e,\r
-0x0531, 0x0556,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x13a0, 0x13f5,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1e00, 0x1e00,\r
-0x1e02, 0x1e02,\r
-0x1e04, 0x1e04,\r
-0x1e06, 0x1e06,\r
-0x1e08, 0x1e08,\r
-0x1e0a, 0x1e0a,\r
-0x1e0c, 0x1e0c,\r
-0x1e0e, 0x1e0e,\r
-0x1e10, 0x1e10,\r
-0x1e12, 0x1e12,\r
-0x1e14, 0x1e14,\r
-0x1e16, 0x1e16,\r
-0x1e18, 0x1e18,\r
-0x1e1a, 0x1e1a,\r
-0x1e1c, 0x1e1c,\r
-0x1e1e, 0x1e1e,\r
-0x1e20, 0x1e20,\r
-0x1e22, 0x1e22,\r
-0x1e24, 0x1e24,\r
-0x1e26, 0x1e26,\r
-0x1e28, 0x1e28,\r
-0x1e2a, 0x1e2a,\r
-0x1e2c, 0x1e2c,\r
-0x1e2e, 0x1e2e,\r
-0x1e30, 0x1e30,\r
-0x1e32, 0x1e32,\r
-0x1e34, 0x1e34,\r
-0x1e36, 0x1e36,\r
-0x1e38, 0x1e38,\r
-0x1e3a, 0x1e3a,\r
-0x1e3c, 0x1e3c,\r
-0x1e3e, 0x1e3e,\r
-0x1e40, 0x1e40,\r
-0x1e42, 0x1e42,\r
-0x1e44, 0x1e44,\r
-0x1e46, 0x1e46,\r
-0x1e48, 0x1e48,\r
-0x1e4a, 0x1e4a,\r
-0x1e4c, 0x1e4c,\r
-0x1e4e, 0x1e4e,\r
-0x1e50, 0x1e50,\r
-0x1e52, 0x1e52,\r
-0x1e54, 0x1e54,\r
-0x1e56, 0x1e56,\r
-0x1e58, 0x1e58,\r
-0x1e5a, 0x1e5a,\r
-0x1e5c, 0x1e5c,\r
-0x1e5e, 0x1e5e,\r
-0x1e60, 0x1e60,\r
-0x1e62, 0x1e62,\r
-0x1e64, 0x1e64,\r
-0x1e66, 0x1e66,\r
-0x1e68, 0x1e68,\r
-0x1e6a, 0x1e6a,\r
-0x1e6c, 0x1e6c,\r
-0x1e6e, 0x1e6e,\r
-0x1e70, 0x1e70,\r
-0x1e72, 0x1e72,\r
-0x1e74, 0x1e74,\r
-0x1e76, 0x1e76,\r
-0x1e78, 0x1e78,\r
-0x1e7a, 0x1e7a,\r
-0x1e7c, 0x1e7c,\r
-0x1e7e, 0x1e7e,\r
-0x1e80, 0x1e80,\r
-0x1e82, 0x1e82,\r
-0x1e84, 0x1e84,\r
-0x1e86, 0x1e86,\r
-0x1e88, 0x1e88,\r
-0x1e8a, 0x1e8a,\r
-0x1e8c, 0x1e8c,\r
-0x1e8e, 0x1e8e,\r
-0x1e90, 0x1e90,\r
-0x1e92, 0x1e92,\r
-0x1e94, 0x1e94,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1ea0,\r
-0x1ea2, 0x1ea2,\r
-0x1ea4, 0x1ea4,\r
-0x1ea6, 0x1ea6,\r
-0x1ea8, 0x1ea8,\r
-0x1eaa, 0x1eaa,\r
-0x1eac, 0x1eac,\r
-0x1eae, 0x1eae,\r
-0x1eb0, 0x1eb0,\r
-0x1eb2, 0x1eb2,\r
-0x1eb4, 0x1eb4,\r
-0x1eb6, 0x1eb6,\r
-0x1eb8, 0x1eb8,\r
-0x1eba, 0x1eba,\r
-0x1ebc, 0x1ebc,\r
-0x1ebe, 0x1ebe,\r
-0x1ec0, 0x1ec0,\r
-0x1ec2, 0x1ec2,\r
-0x1ec4, 0x1ec4,\r
-0x1ec6, 0x1ec6,\r
-0x1ec8, 0x1ec8,\r
-0x1eca, 0x1eca,\r
-0x1ecc, 0x1ecc,\r
-0x1ece, 0x1ece,\r
-0x1ed0, 0x1ed0,\r
-0x1ed2, 0x1ed2,\r
-0x1ed4, 0x1ed4,\r
-0x1ed6, 0x1ed6,\r
-0x1ed8, 0x1ed8,\r
-0x1eda, 0x1eda,\r
-0x1edc, 0x1edc,\r
-0x1ede, 0x1ede,\r
-0x1ee0, 0x1ee0,\r
-0x1ee2, 0x1ee2,\r
-0x1ee4, 0x1ee4,\r
-0x1ee6, 0x1ee6,\r
-0x1ee8, 0x1ee8,\r
-0x1eea, 0x1eea,\r
-0x1eec, 0x1eec,\r
-0x1eee, 0x1eee,\r
-0x1ef0, 0x1ef0,\r
-0x1ef2, 0x1ef2,\r
-0x1ef4, 0x1ef4,\r
-0x1ef6, 0x1ef6,\r
-0x1ef8, 0x1ef8,\r
-0x1efa, 0x1efa,\r
-0x1efc, 0x1efc,\r
-0x1efe, 0x1efe,\r
-0x1f08, 0x1f0f,\r
-0x1f18, 0x1f1d,\r
-0x1f28, 0x1f2f,\r
-0x1f38, 0x1f3f,\r
-0x1f48, 0x1f4d,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f5f,\r
-0x1f68, 0x1f6f,\r
-0x1fb8, 0x1fbb,\r
-0x1fc8, 0x1fcb,\r
-0x1fd8, 0x1fdb,\r
-0x1fe8, 0x1fec,\r
-0x1ff8, 0x1ffb,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210b, 0x210d,\r
-0x2110, 0x2112,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x2130, 0x2133,\r
-0x213e, 0x213f,\r
-0x2145, 0x2145,\r
-0x2183, 0x2183,\r
-0x2c00, 0x2c2e,\r
-0x2c60, 0x2c60,\r
-0x2c62, 0x2c64,\r
-0x2c67, 0x2c67,\r
-0x2c69, 0x2c69,\r
-0x2c6b, 0x2c6b,\r
-0x2c6d, 0x2c70,\r
-0x2c72, 0x2c72,\r
-0x2c75, 0x2c75,\r
-0x2c7e, 0x2c80,\r
-0x2c82, 0x2c82,\r
-0x2c84, 0x2c84,\r
-0x2c86, 0x2c86,\r
-0x2c88, 0x2c88,\r
-0x2c8a, 0x2c8a,\r
-0x2c8c, 0x2c8c,\r
-0x2c8e, 0x2c8e,\r
-0x2c90, 0x2c90,\r
-0x2c92, 0x2c92,\r
-0x2c94, 0x2c94,\r
-0x2c96, 0x2c96,\r
-0x2c98, 0x2c98,\r
-0x2c9a, 0x2c9a,\r
-0x2c9c, 0x2c9c,\r
-0x2c9e, 0x2c9e,\r
-0x2ca0, 0x2ca0,\r
-0x2ca2, 0x2ca2,\r
-0x2ca4, 0x2ca4,\r
-0x2ca6, 0x2ca6,\r
-0x2ca8, 0x2ca8,\r
-0x2caa, 0x2caa,\r
-0x2cac, 0x2cac,\r
-0x2cae, 0x2cae,\r
-0x2cb0, 0x2cb0,\r
-0x2cb2, 0x2cb2,\r
-0x2cb4, 0x2cb4,\r
-0x2cb6, 0x2cb6,\r
-0x2cb8, 0x2cb8,\r
-0x2cba, 0x2cba,\r
-0x2cbc, 0x2cbc,\r
-0x2cbe, 0x2cbe,\r
-0x2cc0, 0x2cc0,\r
-0x2cc2, 0x2cc2,\r
-0x2cc4, 0x2cc4,\r
-0x2cc6, 0x2cc6,\r
-0x2cc8, 0x2cc8,\r
-0x2cca, 0x2cca,\r
-0x2ccc, 0x2ccc,\r
-0x2cce, 0x2cce,\r
-0x2cd0, 0x2cd0,\r
-0x2cd2, 0x2cd2,\r
-0x2cd4, 0x2cd4,\r
-0x2cd6, 0x2cd6,\r
-0x2cd8, 0x2cd8,\r
-0x2cda, 0x2cda,\r
-0x2cdc, 0x2cdc,\r
-0x2cde, 0x2cde,\r
-0x2ce0, 0x2ce0,\r
-0x2ce2, 0x2ce2,\r
-0x2ceb, 0x2ceb,\r
-0x2ced, 0x2ced,\r
-0x2cf2, 0x2cf2,\r
-0xa640, 0xa640,\r
-0xa642, 0xa642,\r
-0xa644, 0xa644,\r
-0xa646, 0xa646,\r
-0xa648, 0xa648,\r
-0xa64a, 0xa64a,\r
-0xa64c, 0xa64c,\r
-0xa64e, 0xa64e,\r
-0xa650, 0xa650,\r
-0xa652, 0xa652,\r
-0xa654, 0xa654,\r
-0xa656, 0xa656,\r
-0xa658, 0xa658,\r
-0xa65a, 0xa65a,\r
-0xa65c, 0xa65c,\r
-0xa65e, 0xa65e,\r
-0xa660, 0xa660,\r
-0xa662, 0xa662,\r
-0xa664, 0xa664,\r
-0xa666, 0xa666,\r
-0xa668, 0xa668,\r
-0xa66a, 0xa66a,\r
-0xa66c, 0xa66c,\r
-0xa680, 0xa680,\r
-0xa682, 0xa682,\r
-0xa684, 0xa684,\r
-0xa686, 0xa686,\r
-0xa688, 0xa688,\r
-0xa68a, 0xa68a,\r
-0xa68c, 0xa68c,\r
-0xa68e, 0xa68e,\r
-0xa690, 0xa690,\r
-0xa692, 0xa692,\r
-0xa694, 0xa694,\r
-0xa696, 0xa696,\r
-0xa698, 0xa698,\r
-0xa69a, 0xa69a,\r
-0xa722, 0xa722,\r
-0xa724, 0xa724,\r
-0xa726, 0xa726,\r
-0xa728, 0xa728,\r
-0xa72a, 0xa72a,\r
-0xa72c, 0xa72c,\r
-0xa72e, 0xa72e,\r
-0xa732, 0xa732,\r
-0xa734, 0xa734,\r
-0xa736, 0xa736,\r
-0xa738, 0xa738,\r
-0xa73a, 0xa73a,\r
-0xa73c, 0xa73c,\r
-0xa73e, 0xa73e,\r
-0xa740, 0xa740,\r
-0xa742, 0xa742,\r
-0xa744, 0xa744,\r
-0xa746, 0xa746,\r
-0xa748, 0xa748,\r
-0xa74a, 0xa74a,\r
-0xa74c, 0xa74c,\r
-0xa74e, 0xa74e,\r
-0xa750, 0xa750,\r
-0xa752, 0xa752,\r
-0xa754, 0xa754,\r
-0xa756, 0xa756,\r
-0xa758, 0xa758,\r
-0xa75a, 0xa75a,\r
-0xa75c, 0xa75c,\r
-0xa75e, 0xa75e,\r
-0xa760, 0xa760,\r
-0xa762, 0xa762,\r
-0xa764, 0xa764,\r
-0xa766, 0xa766,\r
-0xa768, 0xa768,\r
-0xa76a, 0xa76a,\r
-0xa76c, 0xa76c,\r
-0xa76e, 0xa76e,\r
-0xa779, 0xa779,\r
-0xa77b, 0xa77b,\r
-0xa77d, 0xa77e,\r
-0xa780, 0xa780,\r
-0xa782, 0xa782,\r
-0xa784, 0xa784,\r
-0xa786, 0xa786,\r
-0xa78b, 0xa78b,\r
-0xa78d, 0xa78d,\r
-0xa790, 0xa790,\r
-0xa792, 0xa792,\r
-0xa796, 0xa796,\r
-0xa798, 0xa798,\r
-0xa79a, 0xa79a,\r
-0xa79c, 0xa79c,\r
-0xa79e, 0xa79e,\r
-0xa7a0, 0xa7a0,\r
-0xa7a2, 0xa7a2,\r
-0xa7a4, 0xa7a4,\r
-0xa7a6, 0xa7a6,\r
-0xa7a8, 0xa7a8,\r
-0xa7aa, 0xa7ae,\r
-0xa7b0, 0xa7b4,\r
-0xa7b6, 0xa7b6,\r
-0xa7b8, 0xa7b8,\r
-0xa7ba, 0xa7ba,\r
-0xa7bc, 0xa7bc,\r
-0xa7be, 0xa7be,\r
-0xa7c2, 0xa7c2,\r
-0xa7c4, 0xa7c6,\r
-0xff21, 0xff3a,\r
-0x10400, 0x10427,\r
-0x104b0, 0x104d3,\r
-0x10c80, 0x10cb2,\r
-0x118a0, 0x118bf,\r
-0x16e40, 0x16e5f,\r
-0x1d400, 0x1d419,\r
-0x1d434, 0x1d44d,\r
-0x1d468, 0x1d481,\r
-0x1d49c, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b5,\r
-0x1d4d0, 0x1d4e9,\r
-0x1d504, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d538, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d56c, 0x1d585,\r
-0x1d5a0, 0x1d5b9,\r
-0x1d5d4, 0x1d5ed,\r
-0x1d608, 0x1d621,\r
-0x1d63c, 0x1d655,\r
-0x1d670, 0x1d689,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6e2, 0x1d6fa,\r
-0x1d71c, 0x1d734,\r
-0x1d756, 0x1d76e,\r
-0x1d790, 0x1d7a8,\r
-0x1d7ca, 0x1d7ca,\r
-0x1e900, 0x1e921,\r
-}; /* END of CR_Lu */\r
-\r
-/* PROPERTY: 'Lycian': Script */\r
-static const OnigCodePoint\r
-CR_Lycian[] = { 1,\r
-0x10280, 0x1029c,\r
-}; /* END of CR_Lycian */\r
-\r
-/* PROPERTY: 'Lydian': Script */\r
-static const OnigCodePoint\r
-CR_Lydian[] = { 2,\r
-0x10920, 0x10939,\r
-0x1093f, 0x1093f,\r
-}; /* END of CR_Lydian */\r
-\r
-/* PROPERTY: 'M': Major Category */\r
-static const OnigCodePoint\r
-CR_M[] = { 280,\r
-0x0300, 0x036f,\r
-0x0483, 0x0489,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x0610, 0x061a,\r
-0x064b, 0x065f,\r
-0x0670, 0x0670,\r
-0x06d6, 0x06dc,\r
-0x06df, 0x06e4,\r
-0x06e7, 0x06e8,\r
-0x06ea, 0x06ed,\r
-0x0711, 0x0711,\r
-0x0730, 0x074a,\r
-0x07a6, 0x07b0,\r
-0x07eb, 0x07f3,\r
-0x07fd, 0x07fd,\r
-0x0816, 0x0819,\r
-0x081b, 0x0823,\r
-0x0825, 0x0827,\r
-0x0829, 0x082d,\r
-0x0859, 0x085b,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0903,\r
-0x093a, 0x093c,\r
-0x093e, 0x094f,\r
-0x0951, 0x0957,\r
-0x0962, 0x0963,\r
-0x0981, 0x0983,\r
-0x09bc, 0x09bc,\r
-0x09be, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cd,\r
-0x09d7, 0x09d7,\r
-0x09e2, 0x09e3,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a70, 0x0a71,\r
-0x0a75, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0abc, 0x0abc,\r
-0x0abe, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ae2, 0x0ae3,\r
-0x0afa, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b3c, 0x0b3c,\r
-0x0b3e, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b62, 0x0b63,\r
-0x0b82, 0x0b82,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd7, 0x0bd7,\r
-0x0c00, 0x0c04,\r
-0x0c3e, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c62, 0x0c63,\r
-0x0c81, 0x0c83,\r
-0x0cbc, 0x0cbc,\r
-0x0cbe, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0ce2, 0x0ce3,\r
-0x0d00, 0x0d03,\r
-0x0d3b, 0x0d3c,\r
-0x0d3e, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4d,\r
-0x0d57, 0x0d57,\r
-0x0d62, 0x0d63,\r
-0x0d82, 0x0d83,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0df2, 0x0df3,\r
-0x0e31, 0x0e31,\r
-0x0e34, 0x0e3a,\r
-0x0e47, 0x0e4e,\r
-0x0eb1, 0x0eb1,\r
-0x0eb4, 0x0ebc,\r
-0x0ec8, 0x0ecd,\r
-0x0f18, 0x0f19,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f3f,\r
-0x0f71, 0x0f84,\r
-0x0f86, 0x0f87,\r
-0x0f8d, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x102b, 0x103e,\r
-0x1056, 0x1059,\r
-0x105e, 0x1060,\r
-0x1062, 0x1064,\r
-0x1067, 0x106d,\r
-0x1071, 0x1074,\r
-0x1082, 0x108d,\r
-0x108f, 0x108f,\r
-0x109a, 0x109d,\r
-0x135d, 0x135f,\r
-0x1712, 0x1714,\r
-0x1732, 0x1734,\r
-0x1752, 0x1753,\r
-0x1772, 0x1773,\r
-0x17b4, 0x17d3,\r
-0x17dd, 0x17dd,\r
-0x180b, 0x180d,\r
-0x1885, 0x1886,\r
-0x18a9, 0x18a9,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1a17, 0x1a1b,\r
-0x1a55, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a7f,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b04,\r
-0x1b34, 0x1b44,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1b82,\r
-0x1ba1, 0x1bad,\r
-0x1be6, 0x1bf3,\r
-0x1c24, 0x1c37,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf7, 0x1cf9,\r
-0x1dc0, 0x1df9,\r
-0x1dfb, 0x1dff,\r
-0x20d0, 0x20f0,\r
-0x2cef, 0x2cf1,\r
-0x2d7f, 0x2d7f,\r
-0x2de0, 0x2dff,\r
-0x302a, 0x302f,\r
-0x3099, 0x309a,\r
-0xa66f, 0xa672,\r
-0xa674, 0xa67d,\r
-0xa69e, 0xa69f,\r
-0xa6f0, 0xa6f1,\r
-0xa802, 0xa802,\r
-0xa806, 0xa806,\r
-0xa80b, 0xa80b,\r
-0xa823, 0xa827,\r
-0xa880, 0xa881,\r
-0xa8b4, 0xa8c5,\r
-0xa8e0, 0xa8f1,\r
-0xa8ff, 0xa8ff,\r
-0xa926, 0xa92d,\r
-0xa947, 0xa953,\r
-0xa980, 0xa983,\r
-0xa9b3, 0xa9c0,\r
-0xa9e5, 0xa9e5,\r
-0xaa29, 0xaa36,\r
-0xaa43, 0xaa43,\r
-0xaa4c, 0xaa4d,\r
-0xaa7b, 0xaa7d,\r
-0xaab0, 0xaab0,\r
-0xaab2, 0xaab4,\r
-0xaab7, 0xaab8,\r
-0xaabe, 0xaabf,\r
-0xaac1, 0xaac1,\r
-0xaaeb, 0xaaef,\r
-0xaaf5, 0xaaf6,\r
-0xabe3, 0xabea,\r
-0xabec, 0xabed,\r
-0xfb1e, 0xfb1e,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0x101fd, 0x101fd,\r
-0x102e0, 0x102e0,\r
-0x10376, 0x1037a,\r
-0x10a01, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a0f,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10ae5, 0x10ae6,\r
-0x10d24, 0x10d27,\r
-0x10f46, 0x10f50,\r
-0x11000, 0x11002,\r
-0x11038, 0x11046,\r
-0x1107f, 0x11082,\r
-0x110b0, 0x110ba,\r
-0x11100, 0x11102,\r
-0x11127, 0x11134,\r
-0x11145, 0x11146,\r
-0x11173, 0x11173,\r
-0x11180, 0x11182,\r
-0x111b3, 0x111c0,\r
-0x111c9, 0x111cc,\r
-0x1122c, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x112df, 0x112ea,\r
-0x11300, 0x11303,\r
-0x1133b, 0x1133c,\r
-0x1133e, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11357, 0x11357,\r
-0x11362, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11435, 0x11446,\r
-0x1145e, 0x1145e,\r
-0x114b0, 0x114c3,\r
-0x115af, 0x115b5,\r
-0x115b8, 0x115c0,\r
-0x115dc, 0x115dd,\r
-0x11630, 0x11640,\r
-0x116ab, 0x116b7,\r
-0x1171d, 0x1172b,\r
-0x1182c, 0x1183a,\r
-0x119d1, 0x119d7,\r
-0x119da, 0x119e0,\r
-0x119e4, 0x119e4,\r
-0x11a01, 0x11a0a,\r
-0x11a33, 0x11a39,\r
-0x11a3b, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a51, 0x11a5b,\r
-0x11a8a, 0x11a99,\r
-0x11c2f, 0x11c36,\r
-0x11c38, 0x11c3f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d31, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d45,\r
-0x11d47, 0x11d47,\r
-0x11d8a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d97,\r
-0x11ef3, 0x11ef6,\r
-0x16af0, 0x16af4,\r
-0x16b30, 0x16b36,\r
-0x16f4f, 0x16f4f,\r
-0x16f51, 0x16f87,\r
-0x16f8f, 0x16f92,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e130, 0x1e136,\r
-0x1e2ec, 0x1e2ef,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e944, 0x1e94a,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_M */\r
-\r
-/* PROPERTY: 'Mahajani': Script */\r
-static const OnigCodePoint\r
-CR_Mahajani[] = { 1,\r
-0x11150, 0x11176,\r
-}; /* END of CR_Mahajani */\r
-\r
-/* PROPERTY: 'Makasar': Script */\r
-static const OnigCodePoint\r
-CR_Makasar[] = { 1,\r
-0x11ee0, 0x11ef8,\r
-}; /* END of CR_Makasar */\r
-\r
-/* PROPERTY: 'Malayalam': Script */\r
-static const OnigCodePoint\r
-CR_Malayalam[] = { 8,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-}; /* END of CR_Malayalam */\r
-\r
-/* PROPERTY: 'Mandaic': Script */\r
-static const OnigCodePoint\r
-CR_Mandaic[] = { 2,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-}; /* END of CR_Mandaic */\r
-\r
-/* PROPERTY: 'Manichaean': Script */\r
-static const OnigCodePoint\r
-CR_Manichaean[] = { 2,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-}; /* END of CR_Manichaean */\r
-\r
-/* PROPERTY: 'Marchen': Script */\r
-static const OnigCodePoint\r
-CR_Marchen[] = { 3,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-}; /* END of CR_Marchen */\r
-\r
-/* PROPERTY: 'Masaram_Gondi': Script */\r
-static const OnigCodePoint\r
-CR_Masaram_Gondi[] = { 7,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-}; /* END of CR_Masaram_Gondi */\r
-\r
-/* PROPERTY: 'Math': Derived Property */\r
-static const OnigCodePoint\r
-CR_Math[] = { 138,\r
-0x002b, 0x002b,\r
-0x003c, 0x003e,\r
-0x005e, 0x005e,\r
-0x007c, 0x007c,\r
-0x007e, 0x007e,\r
-0x00ac, 0x00ac,\r
-0x00b1, 0x00b1,\r
-0x00d7, 0x00d7,\r
-0x00f7, 0x00f7,\r
-0x03d0, 0x03d2,\r
-0x03d5, 0x03d5,\r
-0x03f0, 0x03f1,\r
-0x03f4, 0x03f6,\r
-0x0606, 0x0608,\r
-0x2016, 0x2016,\r
-0x2032, 0x2034,\r
-0x2040, 0x2040,\r
-0x2044, 0x2044,\r
-0x2052, 0x2052,\r
-0x2061, 0x2064,\r
-0x207a, 0x207e,\r
-0x208a, 0x208e,\r
-0x20d0, 0x20dc,\r
-0x20e1, 0x20e1,\r
-0x20e5, 0x20e6,\r
-0x20eb, 0x20ef,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2118, 0x211d,\r
-0x2124, 0x2124,\r
-0x2128, 0x2129,\r
-0x212c, 0x212d,\r
-0x212f, 0x2131,\r
-0x2133, 0x2138,\r
-0x213c, 0x2149,\r
-0x214b, 0x214b,\r
-0x2190, 0x21a7,\r
-0x21a9, 0x21ae,\r
-0x21b0, 0x21b1,\r
-0x21b6, 0x21b7,\r
-0x21bc, 0x21db,\r
-0x21dd, 0x21dd,\r
-0x21e4, 0x21e5,\r
-0x21f4, 0x22ff,\r
-0x2308, 0x230b,\r
-0x2320, 0x2321,\r
-0x237c, 0x237c,\r
-0x239b, 0x23b5,\r
-0x23b7, 0x23b7,\r
-0x23d0, 0x23d0,\r
-0x23dc, 0x23e2,\r
-0x25a0, 0x25a1,\r
-0x25ae, 0x25b7,\r
-0x25bc, 0x25c1,\r
-0x25c6, 0x25c7,\r
-0x25ca, 0x25cb,\r
-0x25cf, 0x25d3,\r
-0x25e2, 0x25e2,\r
-0x25e4, 0x25e4,\r
-0x25e7, 0x25ec,\r
-0x25f8, 0x25ff,\r
-0x2605, 0x2606,\r
-0x2640, 0x2640,\r
-0x2642, 0x2642,\r
-0x2660, 0x2663,\r
-0x266d, 0x266f,\r
-0x27c0, 0x27ff,\r
-0x2900, 0x2aff,\r
-0x2b30, 0x2b44,\r
-0x2b47, 0x2b4c,\r
-0xfb29, 0xfb29,\r
-0xfe61, 0xfe66,\r
-0xfe68, 0xfe68,\r
-0xff0b, 0xff0b,\r
-0xff1c, 0xff1e,\r
-0xff3c, 0xff3c,\r
-0xff3e, 0xff3e,\r
-0xff5c, 0xff5c,\r
-0xff5e, 0xff5e,\r
-0xffe2, 0xffe2,\r
-0xffe9, 0xffec,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-}; /* END of CR_Math */\r
-\r
-/* PROPERTY: 'Mc': General Category */\r
-static const OnigCodePoint\r
-CR_Mc[] = { 168,\r
-0x0903, 0x0903,\r
-0x093b, 0x093b,\r
-0x093e, 0x0940,\r
-0x0949, 0x094c,\r
-0x094e, 0x094f,\r
-0x0982, 0x0983,\r
-0x09be, 0x09c0,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09d7, 0x09d7,\r
-0x0a03, 0x0a03,\r
-0x0a3e, 0x0a40,\r
-0x0a83, 0x0a83,\r
-0x0abe, 0x0ac0,\r
-0x0ac9, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0b02, 0x0b03,\r
-0x0b3e, 0x0b3e,\r
-0x0b40, 0x0b40,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b57, 0x0b57,\r
-0x0bbe, 0x0bbf,\r
-0x0bc1, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd7, 0x0bd7,\r
-0x0c01, 0x0c03,\r
-0x0c41, 0x0c44,\r
-0x0c82, 0x0c83,\r
-0x0cbe, 0x0cbe,\r
-0x0cc0, 0x0cc4,\r
-0x0cc7, 0x0cc8,\r
-0x0cca, 0x0ccb,\r
-0x0cd5, 0x0cd6,\r
-0x0d02, 0x0d03,\r
-0x0d3e, 0x0d40,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d57, 0x0d57,\r
-0x0d82, 0x0d83,\r
-0x0dcf, 0x0dd1,\r
-0x0dd8, 0x0ddf,\r
-0x0df2, 0x0df3,\r
-0x0f3e, 0x0f3f,\r
-0x0f7f, 0x0f7f,\r
-0x102b, 0x102c,\r
-0x1031, 0x1031,\r
-0x1038, 0x1038,\r
-0x103b, 0x103c,\r
-0x1056, 0x1057,\r
-0x1062, 0x1064,\r
-0x1067, 0x106d,\r
-0x1083, 0x1084,\r
-0x1087, 0x108c,\r
-0x108f, 0x108f,\r
-0x109a, 0x109c,\r
-0x17b6, 0x17b6,\r
-0x17be, 0x17c5,\r
-0x17c7, 0x17c8,\r
-0x1923, 0x1926,\r
-0x1929, 0x192b,\r
-0x1930, 0x1931,\r
-0x1933, 0x1938,\r
-0x1a19, 0x1a1a,\r
-0x1a55, 0x1a55,\r
-0x1a57, 0x1a57,\r
-0x1a61, 0x1a61,\r
-0x1a63, 0x1a64,\r
-0x1a6d, 0x1a72,\r
-0x1b04, 0x1b04,\r
-0x1b35, 0x1b35,\r
-0x1b3b, 0x1b3b,\r
-0x1b3d, 0x1b41,\r
-0x1b43, 0x1b44,\r
-0x1b82, 0x1b82,\r
-0x1ba1, 0x1ba1,\r
-0x1ba6, 0x1ba7,\r
-0x1baa, 0x1baa,\r
-0x1be7, 0x1be7,\r
-0x1bea, 0x1bec,\r
-0x1bee, 0x1bee,\r
-0x1bf2, 0x1bf3,\r
-0x1c24, 0x1c2b,\r
-0x1c34, 0x1c35,\r
-0x1ce1, 0x1ce1,\r
-0x1cf7, 0x1cf7,\r
-0x302e, 0x302f,\r
-0xa823, 0xa824,\r
-0xa827, 0xa827,\r
-0xa880, 0xa881,\r
-0xa8b4, 0xa8c3,\r
-0xa952, 0xa953,\r
-0xa983, 0xa983,\r
-0xa9b4, 0xa9b5,\r
-0xa9ba, 0xa9bb,\r
-0xa9be, 0xa9c0,\r
-0xaa2f, 0xaa30,\r
-0xaa33, 0xaa34,\r
-0xaa4d, 0xaa4d,\r
-0xaa7b, 0xaa7b,\r
-0xaa7d, 0xaa7d,\r
-0xaaeb, 0xaaeb,\r
-0xaaee, 0xaaef,\r
-0xaaf5, 0xaaf5,\r
-0xabe3, 0xabe4,\r
-0xabe6, 0xabe7,\r
-0xabe9, 0xabea,\r
-0xabec, 0xabec,\r
-0x11000, 0x11000,\r
-0x11002, 0x11002,\r
-0x11082, 0x11082,\r
-0x110b0, 0x110b2,\r
-0x110b7, 0x110b8,\r
-0x1112c, 0x1112c,\r
-0x11145, 0x11146,\r
-0x11182, 0x11182,\r
-0x111b3, 0x111b5,\r
-0x111bf, 0x111c0,\r
-0x1122c, 0x1122e,\r
-0x11232, 0x11233,\r
-0x11235, 0x11235,\r
-0x112e0, 0x112e2,\r
-0x11302, 0x11303,\r
-0x1133e, 0x1133f,\r
-0x11341, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11357, 0x11357,\r
-0x11362, 0x11363,\r
-0x11435, 0x11437,\r
-0x11440, 0x11441,\r
-0x11445, 0x11445,\r
-0x114b0, 0x114b2,\r
-0x114b9, 0x114b9,\r
-0x114bb, 0x114be,\r
-0x114c1, 0x114c1,\r
-0x115af, 0x115b1,\r
-0x115b8, 0x115bb,\r
-0x115be, 0x115be,\r
-0x11630, 0x11632,\r
-0x1163b, 0x1163c,\r
-0x1163e, 0x1163e,\r
-0x116ac, 0x116ac,\r
-0x116ae, 0x116af,\r
-0x116b6, 0x116b6,\r
-0x11720, 0x11721,\r
-0x11726, 0x11726,\r
-0x1182c, 0x1182e,\r
-0x11838, 0x11838,\r
-0x119d1, 0x119d3,\r
-0x119dc, 0x119df,\r
-0x119e4, 0x119e4,\r
-0x11a39, 0x11a39,\r
-0x11a57, 0x11a58,\r
-0x11a97, 0x11a97,\r
-0x11c2f, 0x11c2f,\r
-0x11c3e, 0x11c3e,\r
-0x11ca9, 0x11ca9,\r
-0x11cb1, 0x11cb1,\r
-0x11cb4, 0x11cb4,\r
-0x11d8a, 0x11d8e,\r
-0x11d93, 0x11d94,\r
-0x11d96, 0x11d96,\r
-0x11ef5, 0x11ef6,\r
-0x16f51, 0x16f87,\r
-0x1d165, 0x1d166,\r
-0x1d16d, 0x1d172,\r
-}; /* END of CR_Mc */\r
-\r
-/* PROPERTY: 'Me': General Category */\r
-static const OnigCodePoint\r
-CR_Me[] = { 5,\r
-0x0488, 0x0489,\r
-0x1abe, 0x1abe,\r
-0x20dd, 0x20e0,\r
-0x20e2, 0x20e4,\r
-0xa670, 0xa672,\r
-}; /* END of CR_Me */\r
-\r
-/* PROPERTY: 'Medefaidrin': Script */\r
-static const OnigCodePoint\r
-CR_Medefaidrin[] = { 1,\r
-0x16e40, 0x16e9a,\r
-}; /* END of CR_Medefaidrin */\r
-\r
-/* PROPERTY: 'Meetei_Mayek': Script */\r
-static const OnigCodePoint\r
-CR_Meetei_Mayek[] = { 3,\r
-0xaae0, 0xaaf6,\r
-0xabc0, 0xabed,\r
-0xabf0, 0xabf9,\r
-}; /* END of CR_Meetei_Mayek */\r
-\r
-/* PROPERTY: 'Mende_Kikakui': Script */\r
-static const OnigCodePoint\r
-CR_Mende_Kikakui[] = { 2,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-}; /* END of CR_Mende_Kikakui */\r
-\r
-/* PROPERTY: 'Meroitic_Cursive': Script */\r
-static const OnigCodePoint\r
-CR_Meroitic_Cursive[] = { 3,\r
-0x109a0, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x109ff,\r
-}; /* END of CR_Meroitic_Cursive */\r
-\r
-/* PROPERTY: 'Meroitic_Hieroglyphs': Script */\r
-static const OnigCodePoint\r
-CR_Meroitic_Hieroglyphs[] = { 1,\r
-0x10980, 0x1099f,\r
-}; /* END of CR_Meroitic_Hieroglyphs */\r
-\r
-/* PROPERTY: 'Miao': Script */\r
-static const OnigCodePoint\r
-CR_Miao[] = { 3,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-}; /* END of CR_Miao */\r
-\r
-/* PROPERTY: 'Mn': General Category */\r
-static const OnigCodePoint\r
-CR_Mn[] = { 318,\r
-0x0300, 0x036f,\r
-0x0483, 0x0487,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x0610, 0x061a,\r
-0x064b, 0x065f,\r
-0x0670, 0x0670,\r
-0x06d6, 0x06dc,\r
-0x06df, 0x06e4,\r
-0x06e7, 0x06e8,\r
-0x06ea, 0x06ed,\r
-0x0711, 0x0711,\r
-0x0730, 0x074a,\r
-0x07a6, 0x07b0,\r
-0x07eb, 0x07f3,\r
-0x07fd, 0x07fd,\r
-0x0816, 0x0819,\r
-0x081b, 0x0823,\r
-0x0825, 0x0827,\r
-0x0829, 0x082d,\r
-0x0859, 0x085b,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0902,\r
-0x093a, 0x093a,\r
-0x093c, 0x093c,\r
-0x0941, 0x0948,\r
-0x094d, 0x094d,\r
-0x0951, 0x0957,\r
-0x0962, 0x0963,\r
-0x0981, 0x0981,\r
-0x09bc, 0x09bc,\r
-0x09c1, 0x09c4,\r
-0x09cd, 0x09cd,\r
-0x09e2, 0x09e3,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a02,\r
-0x0a3c, 0x0a3c,\r
-0x0a41, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a70, 0x0a71,\r
-0x0a75, 0x0a75,\r
-0x0a81, 0x0a82,\r
-0x0abc, 0x0abc,\r
-0x0ac1, 0x0ac5,\r
-0x0ac7, 0x0ac8,\r
-0x0acd, 0x0acd,\r
-0x0ae2, 0x0ae3,\r
-0x0afa, 0x0aff,\r
-0x0b01, 0x0b01,\r
-0x0b3c, 0x0b3c,\r
-0x0b3f, 0x0b3f,\r
-0x0b41, 0x0b44,\r
-0x0b4d, 0x0b4d,\r
-0x0b56, 0x0b56,\r
-0x0b62, 0x0b63,\r
-0x0b82, 0x0b82,\r
-0x0bc0, 0x0bc0,\r
-0x0bcd, 0x0bcd,\r
-0x0c00, 0x0c00,\r
-0x0c04, 0x0c04,\r
-0x0c3e, 0x0c40,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c62, 0x0c63,\r
-0x0c81, 0x0c81,\r
-0x0cbc, 0x0cbc,\r
-0x0cbf, 0x0cbf,\r
-0x0cc6, 0x0cc6,\r
-0x0ccc, 0x0ccd,\r
-0x0ce2, 0x0ce3,\r
-0x0d00, 0x0d01,\r
-0x0d3b, 0x0d3c,\r
-0x0d41, 0x0d44,\r
-0x0d4d, 0x0d4d,\r
-0x0d62, 0x0d63,\r
-0x0dca, 0x0dca,\r
-0x0dd2, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0e31, 0x0e31,\r
-0x0e34, 0x0e3a,\r
-0x0e47, 0x0e4e,\r
-0x0eb1, 0x0eb1,\r
-0x0eb4, 0x0ebc,\r
-0x0ec8, 0x0ecd,\r
-0x0f18, 0x0f19,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f71, 0x0f7e,\r
-0x0f80, 0x0f84,\r
-0x0f86, 0x0f87,\r
-0x0f8d, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x102d, 0x1030,\r
-0x1032, 0x1037,\r
-0x1039, 0x103a,\r
-0x103d, 0x103e,\r
-0x1058, 0x1059,\r
-0x105e, 0x1060,\r
-0x1071, 0x1074,\r
-0x1082, 0x1082,\r
-0x1085, 0x1086,\r
-0x108d, 0x108d,\r
-0x109d, 0x109d,\r
-0x135d, 0x135f,\r
-0x1712, 0x1714,\r
-0x1732, 0x1734,\r
-0x1752, 0x1753,\r
-0x1772, 0x1773,\r
-0x17b4, 0x17b5,\r
-0x17b7, 0x17bd,\r
-0x17c6, 0x17c6,\r
-0x17c9, 0x17d3,\r
-0x17dd, 0x17dd,\r
-0x180b, 0x180d,\r
-0x1885, 0x1886,\r
-0x18a9, 0x18a9,\r
-0x1920, 0x1922,\r
-0x1927, 0x1928,\r
-0x1932, 0x1932,\r
-0x1939, 0x193b,\r
-0x1a17, 0x1a18,\r
-0x1a1b, 0x1a1b,\r
-0x1a56, 0x1a56,\r
-0x1a58, 0x1a5e,\r
-0x1a60, 0x1a60,\r
-0x1a62, 0x1a62,\r
-0x1a65, 0x1a6c,\r
-0x1a73, 0x1a7c,\r
-0x1a7f, 0x1a7f,\r
-0x1ab0, 0x1abd,\r
-0x1b00, 0x1b03,\r
-0x1b34, 0x1b34,\r
-0x1b36, 0x1b3a,\r
-0x1b3c, 0x1b3c,\r
-0x1b42, 0x1b42,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1b81,\r
-0x1ba2, 0x1ba5,\r
-0x1ba8, 0x1ba9,\r
-0x1bab, 0x1bad,\r
-0x1be6, 0x1be6,\r
-0x1be8, 0x1be9,\r
-0x1bed, 0x1bed,\r
-0x1bef, 0x1bf1,\r
-0x1c2c, 0x1c33,\r
-0x1c36, 0x1c37,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1ce0,\r
-0x1ce2, 0x1ce8,\r
-0x1ced, 0x1ced,\r
-0x1cf4, 0x1cf4,\r
-0x1cf8, 0x1cf9,\r
-0x1dc0, 0x1df9,\r
-0x1dfb, 0x1dff,\r
-0x20d0, 0x20dc,\r
-0x20e1, 0x20e1,\r
-0x20e5, 0x20f0,\r
-0x2cef, 0x2cf1,\r
-0x2d7f, 0x2d7f,\r
-0x2de0, 0x2dff,\r
-0x302a, 0x302d,\r
-0x3099, 0x309a,\r
-0xa66f, 0xa66f,\r
-0xa674, 0xa67d,\r
-0xa69e, 0xa69f,\r
-0xa6f0, 0xa6f1,\r
-0xa802, 0xa802,\r
-0xa806, 0xa806,\r
-0xa80b, 0xa80b,\r
-0xa825, 0xa826,\r
-0xa8c4, 0xa8c5,\r
-0xa8e0, 0xa8f1,\r
-0xa8ff, 0xa8ff,\r
-0xa926, 0xa92d,\r
-0xa947, 0xa951,\r
-0xa980, 0xa982,\r
-0xa9b3, 0xa9b3,\r
-0xa9b6, 0xa9b9,\r
-0xa9bc, 0xa9bd,\r
-0xa9e5, 0xa9e5,\r
-0xaa29, 0xaa2e,\r
-0xaa31, 0xaa32,\r
-0xaa35, 0xaa36,\r
-0xaa43, 0xaa43,\r
-0xaa4c, 0xaa4c,\r
-0xaa7c, 0xaa7c,\r
-0xaab0, 0xaab0,\r
-0xaab2, 0xaab4,\r
-0xaab7, 0xaab8,\r
-0xaabe, 0xaabf,\r
-0xaac1, 0xaac1,\r
-0xaaec, 0xaaed,\r
-0xaaf6, 0xaaf6,\r
-0xabe5, 0xabe5,\r
-0xabe8, 0xabe8,\r
-0xabed, 0xabed,\r
-0xfb1e, 0xfb1e,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0x101fd, 0x101fd,\r
-0x102e0, 0x102e0,\r
-0x10376, 0x1037a,\r
-0x10a01, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a0f,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10ae5, 0x10ae6,\r
-0x10d24, 0x10d27,\r
-0x10f46, 0x10f50,\r
-0x11001, 0x11001,\r
-0x11038, 0x11046,\r
-0x1107f, 0x11081,\r
-0x110b3, 0x110b6,\r
-0x110b9, 0x110ba,\r
-0x11100, 0x11102,\r
-0x11127, 0x1112b,\r
-0x1112d, 0x11134,\r
-0x11173, 0x11173,\r
-0x11180, 0x11181,\r
-0x111b6, 0x111be,\r
-0x111c9, 0x111cc,\r
-0x1122f, 0x11231,\r
-0x11234, 0x11234,\r
-0x11236, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x112df, 0x112df,\r
-0x112e3, 0x112ea,\r
-0x11300, 0x11301,\r
-0x1133b, 0x1133c,\r
-0x11340, 0x11340,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11438, 0x1143f,\r
-0x11442, 0x11444,\r
-0x11446, 0x11446,\r
-0x1145e, 0x1145e,\r
-0x114b3, 0x114b8,\r
-0x114ba, 0x114ba,\r
-0x114bf, 0x114c0,\r
-0x114c2, 0x114c3,\r
-0x115b2, 0x115b5,\r
-0x115bc, 0x115bd,\r
-0x115bf, 0x115c0,\r
-0x115dc, 0x115dd,\r
-0x11633, 0x1163a,\r
-0x1163d, 0x1163d,\r
-0x1163f, 0x11640,\r
-0x116ab, 0x116ab,\r
-0x116ad, 0x116ad,\r
-0x116b0, 0x116b5,\r
-0x116b7, 0x116b7,\r
-0x1171d, 0x1171f,\r
-0x11722, 0x11725,\r
-0x11727, 0x1172b,\r
-0x1182f, 0x11837,\r
-0x11839, 0x1183a,\r
-0x119d4, 0x119d7,\r
-0x119da, 0x119db,\r
-0x119e0, 0x119e0,\r
-0x11a01, 0x11a0a,\r
-0x11a33, 0x11a38,\r
-0x11a3b, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a51, 0x11a56,\r
-0x11a59, 0x11a5b,\r
-0x11a8a, 0x11a96,\r
-0x11a98, 0x11a99,\r
-0x11c30, 0x11c36,\r
-0x11c38, 0x11c3d,\r
-0x11c3f, 0x11c3f,\r
-0x11c92, 0x11ca7,\r
-0x11caa, 0x11cb0,\r
-0x11cb2, 0x11cb3,\r
-0x11cb5, 0x11cb6,\r
-0x11d31, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d45,\r
-0x11d47, 0x11d47,\r
-0x11d90, 0x11d91,\r
-0x11d95, 0x11d95,\r
-0x11d97, 0x11d97,\r
-0x11ef3, 0x11ef4,\r
-0x16af0, 0x16af4,\r
-0x16b30, 0x16b36,\r
-0x16f4f, 0x16f4f,\r
-0x16f8f, 0x16f92,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d167, 0x1d169,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e130, 0x1e136,\r
-0x1e2ec, 0x1e2ef,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e944, 0x1e94a,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Mn */\r
-\r
-/* PROPERTY: 'Modi': Script */\r
-static const OnigCodePoint\r
-CR_Modi[] = { 2,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-}; /* END of CR_Modi */\r
-\r
-/* PROPERTY: 'Mongolian': Script */\r
-static const OnigCodePoint\r
-CR_Mongolian[] = { 7,\r
-0x1800, 0x1801,\r
-0x1804, 0x1804,\r
-0x1806, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x11660, 0x1166c,\r
-}; /* END of CR_Mongolian */\r
-\r
-/* PROPERTY: 'Mro': Script */\r
-static const OnigCodePoint\r
-CR_Mro[] = { 3,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-}; /* END of CR_Mro */\r
-\r
-/* PROPERTY: 'Multani': Script */\r
-static const OnigCodePoint\r
-CR_Multani[] = { 5,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-}; /* END of CR_Multani */\r
-\r
-/* PROPERTY: 'Myanmar': Script */\r
-static const OnigCodePoint\r
-CR_Myanmar[] = { 3,\r
-0x1000, 0x109f,\r
-0xa9e0, 0xa9fe,\r
-0xaa60, 0xaa7f,\r
-}; /* END of CR_Myanmar */\r
-\r
-/* PROPERTY: 'N': Major Category */\r
-static const OnigCodePoint\r
-CR_N[] = { 130,\r
-0x0030, 0x0039,\r
-0x00b2, 0x00b3,\r
-0x00b9, 0x00b9,\r
-0x00bc, 0x00be,\r
-0x0660, 0x0669,\r
-0x06f0, 0x06f9,\r
-0x07c0, 0x07c9,\r
-0x0966, 0x096f,\r
-0x09e6, 0x09ef,\r
-0x09f4, 0x09f9,\r
-0x0a66, 0x0a6f,\r
-0x0ae6, 0x0aef,\r
-0x0b66, 0x0b6f,\r
-0x0b72, 0x0b77,\r
-0x0be6, 0x0bf2,\r
-0x0c66, 0x0c6f,\r
-0x0c78, 0x0c7e,\r
-0x0ce6, 0x0cef,\r
-0x0d58, 0x0d5e,\r
-0x0d66, 0x0d78,\r
-0x0de6, 0x0def,\r
-0x0e50, 0x0e59,\r
-0x0ed0, 0x0ed9,\r
-0x0f20, 0x0f33,\r
-0x1040, 0x1049,\r
-0x1090, 0x1099,\r
-0x1369, 0x137c,\r
-0x16ee, 0x16f0,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1810, 0x1819,\r
-0x1946, 0x194f,\r
-0x19d0, 0x19da,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1b50, 0x1b59,\r
-0x1bb0, 0x1bb9,\r
-0x1c40, 0x1c49,\r
-0x1c50, 0x1c59,\r
-0x2070, 0x2070,\r
-0x2074, 0x2079,\r
-0x2080, 0x2089,\r
-0x2150, 0x2182,\r
-0x2185, 0x2189,\r
-0x2460, 0x249b,\r
-0x24ea, 0x24ff,\r
-0x2776, 0x2793,\r
-0x2cfd, 0x2cfd,\r
-0x3007, 0x3007,\r
-0x3021, 0x3029,\r
-0x3038, 0x303a,\r
-0x3192, 0x3195,\r
-0x3220, 0x3229,\r
-0x3248, 0x324f,\r
-0x3251, 0x325f,\r
-0x3280, 0x3289,\r
-0x32b1, 0x32bf,\r
-0xa620, 0xa629,\r
-0xa6e6, 0xa6ef,\r
-0xa830, 0xa835,\r
-0xa8d0, 0xa8d9,\r
-0xa900, 0xa909,\r
-0xa9d0, 0xa9d9,\r
-0xa9f0, 0xa9f9,\r
-0xaa50, 0xaa59,\r
-0xabf0, 0xabf9,\r
-0xff10, 0xff19,\r
-0x10107, 0x10133,\r
-0x10140, 0x10178,\r
-0x1018a, 0x1018b,\r
-0x102e1, 0x102fb,\r
-0x10320, 0x10323,\r
-0x10341, 0x10341,\r
-0x1034a, 0x1034a,\r
-0x103d1, 0x103d5,\r
-0x104a0, 0x104a9,\r
-0x10858, 0x1085f,\r
-0x10879, 0x1087f,\r
-0x108a7, 0x108af,\r
-0x108fb, 0x108ff,\r
-0x10916, 0x1091b,\r
-0x109bc, 0x109bd,\r
-0x109c0, 0x109cf,\r
-0x109d2, 0x109ff,\r
-0x10a40, 0x10a48,\r
-0x10a7d, 0x10a7e,\r
-0x10a9d, 0x10a9f,\r
-0x10aeb, 0x10aef,\r
-0x10b58, 0x10b5f,\r
-0x10b78, 0x10b7f,\r
-0x10ba9, 0x10baf,\r
-0x10cfa, 0x10cff,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f1d, 0x10f26,\r
-0x10f51, 0x10f54,\r
-0x11052, 0x1106f,\r
-0x110f0, 0x110f9,\r
-0x11136, 0x1113f,\r
-0x111d0, 0x111d9,\r
-0x111e1, 0x111f4,\r
-0x112f0, 0x112f9,\r
-0x11450, 0x11459,\r
-0x114d0, 0x114d9,\r
-0x11650, 0x11659,\r
-0x116c0, 0x116c9,\r
-0x11730, 0x1173b,\r
-0x118e0, 0x118f2,\r
-0x11c50, 0x11c6c,\r
-0x11d50, 0x11d59,\r
-0x11da0, 0x11da9,\r
-0x11fc0, 0x11fd4,\r
-0x12400, 0x1246e,\r
-0x16a60, 0x16a69,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16e80, 0x16e96,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d360, 0x1d378,\r
-0x1d7ce, 0x1d7ff,\r
-0x1e140, 0x1e149,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e8c7, 0x1e8cf,\r
-0x1e950, 0x1e959,\r
-0x1ec71, 0x1ecab,\r
-0x1ecad, 0x1ecaf,\r
-0x1ecb1, 0x1ecb4,\r
-0x1ed01, 0x1ed2d,\r
-0x1ed2f, 0x1ed3d,\r
-0x1f100, 0x1f10c,\r
-}; /* END of CR_N */\r
-\r
-/* PROPERTY: 'Nabataean': Script */\r
-static const OnigCodePoint\r
-CR_Nabataean[] = { 2,\r
-0x10880, 0x1089e,\r
-0x108a7, 0x108af,\r
-}; /* END of CR_Nabataean */\r
-\r
-/* PROPERTY: 'Nandinagari': Script */\r
-static const OnigCodePoint\r
-CR_Nandinagari[] = { 3,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-}; /* END of CR_Nandinagari */\r
-\r
-/* PROPERTY: 'Nd': General Category */\r
-#define CR_Nd CR_Digit\r
-\r
-/* PROPERTY: 'New_Tai_Lue': Script */\r
-static const OnigCodePoint\r
-CR_New_Tai_Lue[] = { 4,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x19df,\r
-}; /* END of CR_New_Tai_Lue */\r
-\r
-/* PROPERTY: 'Newa': Script */\r
-static const OnigCodePoint\r
-CR_Newa[] = { 3,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-}; /* END of CR_Newa */\r
-\r
-/* PROPERTY: 'Nko': Script */\r
-static const OnigCodePoint\r
-CR_Nko[] = { 2,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x07ff,\r
-}; /* END of CR_Nko */\r
-\r
-/* PROPERTY: 'Nl': General Category */\r
-static const OnigCodePoint\r
-CR_Nl[] = { 12,\r
-0x16ee, 0x16f0,\r
-0x2160, 0x2182,\r
-0x2185, 0x2188,\r
-0x3007, 0x3007,\r
-0x3021, 0x3029,\r
-0x3038, 0x303a,\r
-0xa6e6, 0xa6ef,\r
-0x10140, 0x10174,\r
-0x10341, 0x10341,\r
-0x1034a, 0x1034a,\r
-0x103d1, 0x103d5,\r
-0x12400, 0x1246e,\r
-}; /* END of CR_Nl */\r
-\r
-/* PROPERTY: 'No': General Category */\r
-static const OnigCodePoint\r
-CR_No[] = { 70,\r
-0x00b2, 0x00b3,\r
-0x00b9, 0x00b9,\r
-0x00bc, 0x00be,\r
-0x09f4, 0x09f9,\r
-0x0b72, 0x0b77,\r
-0x0bf0, 0x0bf2,\r
-0x0c78, 0x0c7e,\r
-0x0d58, 0x0d5e,\r
-0x0d70, 0x0d78,\r
-0x0f2a, 0x0f33,\r
-0x1369, 0x137c,\r
-0x17f0, 0x17f9,\r
-0x19da, 0x19da,\r
-0x2070, 0x2070,\r
-0x2074, 0x2079,\r
-0x2080, 0x2089,\r
-0x2150, 0x215f,\r
-0x2189, 0x2189,\r
-0x2460, 0x249b,\r
-0x24ea, 0x24ff,\r
-0x2776, 0x2793,\r
-0x2cfd, 0x2cfd,\r
-0x3192, 0x3195,\r
-0x3220, 0x3229,\r
-0x3248, 0x324f,\r
-0x3251, 0x325f,\r
-0x3280, 0x3289,\r
-0x32b1, 0x32bf,\r
-0xa830, 0xa835,\r
-0x10107, 0x10133,\r
-0x10175, 0x10178,\r
-0x1018a, 0x1018b,\r
-0x102e1, 0x102fb,\r
-0x10320, 0x10323,\r
-0x10858, 0x1085f,\r
-0x10879, 0x1087f,\r
-0x108a7, 0x108af,\r
-0x108fb, 0x108ff,\r
-0x10916, 0x1091b,\r
-0x109bc, 0x109bd,\r
-0x109c0, 0x109cf,\r
-0x109d2, 0x109ff,\r
-0x10a40, 0x10a48,\r
-0x10a7d, 0x10a7e,\r
-0x10a9d, 0x10a9f,\r
-0x10aeb, 0x10aef,\r
-0x10b58, 0x10b5f,\r
-0x10b78, 0x10b7f,\r
-0x10ba9, 0x10baf,\r
-0x10cfa, 0x10cff,\r
-0x10e60, 0x10e7e,\r
-0x10f1d, 0x10f26,\r
-0x10f51, 0x10f54,\r
-0x11052, 0x11065,\r
-0x111e1, 0x111f4,\r
-0x1173a, 0x1173b,\r
-0x118ea, 0x118f2,\r
-0x11c5a, 0x11c6c,\r
-0x11fc0, 0x11fd4,\r
-0x16b5b, 0x16b61,\r
-0x16e80, 0x16e96,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d360, 0x1d378,\r
-0x1e8c7, 0x1e8cf,\r
-0x1ec71, 0x1ecab,\r
-0x1ecad, 0x1ecaf,\r
-0x1ecb1, 0x1ecb4,\r
-0x1ed01, 0x1ed2d,\r
-0x1ed2f, 0x1ed3d,\r
-0x1f100, 0x1f10c,\r
-}; /* END of CR_No */\r
-\r
-/* PROPERTY: 'Noncharacter_Code_Point': Binary Property */\r
-static const OnigCodePoint\r
-CR_Noncharacter_Code_Point[] = { 18,\r
-0xfdd0, 0xfdef,\r
-0xfffe, 0xffff,\r
-0x1fffe, 0x1ffff,\r
-0x2fffe, 0x2ffff,\r
-0x3fffe, 0x3ffff,\r
-0x4fffe, 0x4ffff,\r
-0x5fffe, 0x5ffff,\r
-0x6fffe, 0x6ffff,\r
-0x7fffe, 0x7ffff,\r
-0x8fffe, 0x8ffff,\r
-0x9fffe, 0x9ffff,\r
-0xafffe, 0xaffff,\r
-0xbfffe, 0xbffff,\r
-0xcfffe, 0xcffff,\r
-0xdfffe, 0xdffff,\r
-0xefffe, 0xeffff,\r
-0xffffe, 0xfffff,\r
-0x10fffe, 0x10ffff,\r
-}; /* END of CR_Noncharacter_Code_Point */\r
-\r
-/* PROPERTY: 'Nushu': Script */\r
-static const OnigCodePoint\r
-CR_Nushu[] = { 2,\r
-0x16fe1, 0x16fe1,\r
-0x1b170, 0x1b2fb,\r
-}; /* END of CR_Nushu */\r
-\r
-/* PROPERTY: 'Nyiakeng_Puachue_Hmong': Script */\r
-static const OnigCodePoint\r
-CR_Nyiakeng_Puachue_Hmong[] = { 4,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-}; /* END of CR_Nyiakeng_Puachue_Hmong */\r
-\r
-/* PROPERTY: 'Ogham': Script */\r
-static const OnigCodePoint\r
-CR_Ogham[] = { 1,\r
-0x1680, 0x169c,\r
-}; /* END of CR_Ogham */\r
-\r
-/* PROPERTY: 'Ol_Chiki': Script */\r
-static const OnigCodePoint\r
-CR_Ol_Chiki[] = { 1,\r
-0x1c50, 0x1c7f,\r
-}; /* END of CR_Ol_Chiki */\r
-\r
-/* PROPERTY: 'Old_Hungarian': Script */\r
-static const OnigCodePoint\r
-CR_Old_Hungarian[] = { 3,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10cff,\r
-}; /* END of CR_Old_Hungarian */\r
-\r
-/* PROPERTY: 'Old_Italic': Script */\r
-static const OnigCodePoint\r
-CR_Old_Italic[] = { 2,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1032f,\r
-}; /* END of CR_Old_Italic */\r
-\r
-/* PROPERTY: 'Old_North_Arabian': Script */\r
-static const OnigCodePoint\r
-CR_Old_North_Arabian[] = { 1,\r
-0x10a80, 0x10a9f,\r
-}; /* END of CR_Old_North_Arabian */\r
-\r
-/* PROPERTY: 'Old_Permic': Script */\r
-static const OnigCodePoint\r
-CR_Old_Permic[] = { 1,\r
-0x10350, 0x1037a,\r
-}; /* END of CR_Old_Permic */\r
-\r
-/* PROPERTY: 'Old_Persian': Script */\r
-static const OnigCodePoint\r
-CR_Old_Persian[] = { 2,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103d5,\r
-}; /* END of CR_Old_Persian */\r
-\r
-/* PROPERTY: 'Old_Sogdian': Script */\r
-static const OnigCodePoint\r
-CR_Old_Sogdian[] = { 1,\r
-0x10f00, 0x10f27,\r
-}; /* END of CR_Old_Sogdian */\r
-\r
-/* PROPERTY: 'Old_South_Arabian': Script */\r
-static const OnigCodePoint\r
-CR_Old_South_Arabian[] = { 1,\r
-0x10a60, 0x10a7f,\r
-}; /* END of CR_Old_South_Arabian */\r
-\r
-/* PROPERTY: 'Old_Turkic': Script */\r
-static const OnigCodePoint\r
-CR_Old_Turkic[] = { 1,\r
-0x10c00, 0x10c48,\r
-}; /* END of CR_Old_Turkic */\r
-\r
-/* PROPERTY: 'Oriya': Script */\r
-static const OnigCodePoint\r
-CR_Oriya[] = { 14,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-}; /* END of CR_Oriya */\r
-\r
-/* PROPERTY: 'Osage': Script */\r
-static const OnigCodePoint\r
-CR_Osage[] = { 2,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-}; /* END of CR_Osage */\r
-\r
-/* PROPERTY: 'Osmanya': Script */\r
-static const OnigCodePoint\r
-CR_Osmanya[] = { 2,\r
-0x10480, 0x1049d,\r
-0x104a0, 0x104a9,\r
-}; /* END of CR_Osmanya */\r
-\r
-/* PROPERTY: 'Other_Alphabetic': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Alphabetic[] = { 221,\r
-0x0345, 0x0345,\r
-0x05b0, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x0610, 0x061a,\r
-0x064b, 0x0657,\r
-0x0659, 0x065f,\r
-0x0670, 0x0670,\r
-0x06d6, 0x06dc,\r
-0x06e1, 0x06e4,\r
-0x06e7, 0x06e8,\r
-0x06ed, 0x06ed,\r
-0x0711, 0x0711,\r
-0x0730, 0x073f,\r
-0x07a6, 0x07b0,\r
-0x0816, 0x0817,\r
-0x081b, 0x0823,\r
-0x0825, 0x0827,\r
-0x0829, 0x082c,\r
-0x08d4, 0x08df,\r
-0x08e3, 0x08e9,\r
-0x08f0, 0x0903,\r
-0x093a, 0x093b,\r
-0x093e, 0x094c,\r
-0x094e, 0x094f,\r
-0x0955, 0x0957,\r
-0x0962, 0x0963,\r
-0x0981, 0x0983,\r
-0x09be, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09d7, 0x09d7,\r
-0x09e2, 0x09e3,\r
-0x0a01, 0x0a03,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4c,\r
-0x0a51, 0x0a51,\r
-0x0a70, 0x0a71,\r
-0x0a75, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0abe, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ae2, 0x0ae3,\r
-0x0afa, 0x0afc,\r
-0x0b01, 0x0b03,\r
-0x0b3e, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b56, 0x0b57,\r
-0x0b62, 0x0b63,\r
-0x0b82, 0x0b82,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd7, 0x0bd7,\r
-0x0c00, 0x0c03,\r
-0x0c3e, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4c,\r
-0x0c55, 0x0c56,\r
-0x0c62, 0x0c63,\r
-0x0c81, 0x0c83,\r
-0x0cbe, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccc,\r
-0x0cd5, 0x0cd6,\r
-0x0ce2, 0x0ce3,\r
-0x0d00, 0x0d03,\r
-0x0d3e, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d57, 0x0d57,\r
-0x0d62, 0x0d63,\r
-0x0d82, 0x0d83,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0df2, 0x0df3,\r
-0x0e31, 0x0e31,\r
-0x0e34, 0x0e3a,\r
-0x0e4d, 0x0e4d,\r
-0x0eb1, 0x0eb1,\r
-0x0eb4, 0x0eb9,\r
-0x0ebb, 0x0ebc,\r
-0x0ecd, 0x0ecd,\r
-0x0f71, 0x0f81,\r
-0x0f8d, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x102b, 0x1036,\r
-0x1038, 0x1038,\r
-0x103b, 0x103e,\r
-0x1056, 0x1059,\r
-0x105e, 0x1060,\r
-0x1062, 0x1064,\r
-0x1067, 0x106d,\r
-0x1071, 0x1074,\r
-0x1082, 0x108d,\r
-0x108f, 0x108f,\r
-0x109a, 0x109d,\r
-0x1712, 0x1713,\r
-0x1732, 0x1733,\r
-0x1752, 0x1753,\r
-0x1772, 0x1773,\r
-0x17b6, 0x17c8,\r
-0x1885, 0x1886,\r
-0x18a9, 0x18a9,\r
-0x1920, 0x192b,\r
-0x1930, 0x1938,\r
-0x1a17, 0x1a1b,\r
-0x1a55, 0x1a5e,\r
-0x1a61, 0x1a74,\r
-0x1b00, 0x1b04,\r
-0x1b35, 0x1b43,\r
-0x1b80, 0x1b82,\r
-0x1ba1, 0x1ba9,\r
-0x1bac, 0x1bad,\r
-0x1be7, 0x1bf1,\r
-0x1c24, 0x1c36,\r
-0x1de7, 0x1df4,\r
-0x24b6, 0x24e9,\r
-0x2de0, 0x2dff,\r
-0xa674, 0xa67b,\r
-0xa69e, 0xa69f,\r
-0xa802, 0xa802,\r
-0xa80b, 0xa80b,\r
-0xa823, 0xa827,\r
-0xa880, 0xa881,\r
-0xa8b4, 0xa8c3,\r
-0xa8c5, 0xa8c5,\r
-0xa8ff, 0xa8ff,\r
-0xa926, 0xa92a,\r
-0xa947, 0xa952,\r
-0xa980, 0xa983,\r
-0xa9b4, 0xa9bf,\r
-0xa9e5, 0xa9e5,\r
-0xaa29, 0xaa36,\r
-0xaa43, 0xaa43,\r
-0xaa4c, 0xaa4d,\r
-0xaa7b, 0xaa7d,\r
-0xaab0, 0xaab0,\r
-0xaab2, 0xaab4,\r
-0xaab7, 0xaab8,\r
-0xaabe, 0xaabe,\r
-0xaaeb, 0xaaef,\r
-0xaaf5, 0xaaf5,\r
-0xabe3, 0xabea,\r
-0xfb1e, 0xfb1e,\r
-0x10376, 0x1037a,\r
-0x10a01, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a0f,\r
-0x10d24, 0x10d27,\r
-0x11000, 0x11002,\r
-0x11038, 0x11045,\r
-0x11082, 0x11082,\r
-0x110b0, 0x110b8,\r
-0x11100, 0x11102,\r
-0x11127, 0x11132,\r
-0x11145, 0x11146,\r
-0x11180, 0x11182,\r
-0x111b3, 0x111bf,\r
-0x1122c, 0x11234,\r
-0x11237, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x112df, 0x112e8,\r
-0x11300, 0x11303,\r
-0x1133e, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134c,\r
-0x11357, 0x11357,\r
-0x11362, 0x11363,\r
-0x11435, 0x11441,\r
-0x11443, 0x11445,\r
-0x114b0, 0x114c1,\r
-0x115af, 0x115b5,\r
-0x115b8, 0x115be,\r
-0x115dc, 0x115dd,\r
-0x11630, 0x1163e,\r
-0x11640, 0x11640,\r
-0x116ab, 0x116b5,\r
-0x1171d, 0x1172a,\r
-0x1182c, 0x11838,\r
-0x119d1, 0x119d7,\r
-0x119da, 0x119df,\r
-0x119e4, 0x119e4,\r
-0x11a01, 0x11a0a,\r
-0x11a35, 0x11a39,\r
-0x11a3b, 0x11a3e,\r
-0x11a51, 0x11a5b,\r
-0x11a8a, 0x11a97,\r
-0x11c2f, 0x11c36,\r
-0x11c38, 0x11c3e,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d31, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d41,\r
-0x11d43, 0x11d43,\r
-0x11d47, 0x11d47,\r
-0x11d8a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d96,\r
-0x11ef3, 0x11ef6,\r
-0x16f4f, 0x16f4f,\r
-0x16f51, 0x16f87,\r
-0x16f8f, 0x16f92,\r
-0x1bc9e, 0x1bc9e,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e947, 0x1e947,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-}; /* END of CR_Other_Alphabetic */\r
-\r
-/* PROPERTY: 'Other_Default_Ignorable_Code_Point': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Default_Ignorable_Code_Point[] = { 11,\r
-0x034f, 0x034f,\r
-0x115f, 0x1160,\r
-0x17b4, 0x17b5,\r
-0x2065, 0x2065,\r
-0x3164, 0x3164,\r
-0xffa0, 0xffa0,\r
-0xfff0, 0xfff8,\r
-0xe0000, 0xe0000,\r
-0xe0002, 0xe001f,\r
-0xe0080, 0xe00ff,\r
-0xe01f0, 0xe0fff,\r
-}; /* END of CR_Other_Default_Ignorable_Code_Point */\r
-\r
-/* PROPERTY: 'Other_Grapheme_Extend': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Grapheme_Extend[] = { 24,\r
-0x09be, 0x09be,\r
-0x09d7, 0x09d7,\r
-0x0b3e, 0x0b3e,\r
-0x0b57, 0x0b57,\r
-0x0bbe, 0x0bbe,\r
-0x0bd7, 0x0bd7,\r
-0x0cc2, 0x0cc2,\r
-0x0cd5, 0x0cd6,\r
-0x0d3e, 0x0d3e,\r
-0x0d57, 0x0d57,\r
-0x0dcf, 0x0dcf,\r
-0x0ddf, 0x0ddf,\r
-0x1b35, 0x1b35,\r
-0x200c, 0x200c,\r
-0x302e, 0x302f,\r
-0xff9e, 0xff9f,\r
-0x1133e, 0x1133e,\r
-0x11357, 0x11357,\r
-0x114b0, 0x114b0,\r
-0x114bd, 0x114bd,\r
-0x115af, 0x115af,\r
-0x1d165, 0x1d165,\r
-0x1d16e, 0x1d172,\r
-0xe0020, 0xe007f,\r
-}; /* END of CR_Other_Grapheme_Extend */\r
-\r
-/* PROPERTY: 'Other_ID_Continue': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_ID_Continue[] = { 4,\r
-0x00b7, 0x00b7,\r
-0x0387, 0x0387,\r
-0x1369, 0x1371,\r
-0x19da, 0x19da,\r
-}; /* END of CR_Other_ID_Continue */\r
-\r
-/* PROPERTY: 'Other_ID_Start': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_ID_Start[] = { 4,\r
-0x1885, 0x1886,\r
-0x2118, 0x2118,\r
-0x212e, 0x212e,\r
-0x309b, 0x309c,\r
-}; /* END of CR_Other_ID_Start */\r
-\r
-/* PROPERTY: 'Other_Lowercase': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Lowercase[] = { 20,\r
-0x00aa, 0x00aa,\r
-0x00ba, 0x00ba,\r
-0x02b0, 0x02b8,\r
-0x02c0, 0x02c1,\r
-0x02e0, 0x02e4,\r
-0x0345, 0x0345,\r
-0x037a, 0x037a,\r
-0x1d2c, 0x1d6a,\r
-0x1d78, 0x1d78,\r
-0x1d9b, 0x1dbf,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2170, 0x217f,\r
-0x24d0, 0x24e9,\r
-0x2c7c, 0x2c7d,\r
-0xa69c, 0xa69d,\r
-0xa770, 0xa770,\r
-0xa7f8, 0xa7f9,\r
-0xab5c, 0xab5f,\r
-}; /* END of CR_Other_Lowercase */\r
-\r
-/* PROPERTY: 'Other_Math': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Math[] = { 134,\r
-0x005e, 0x005e,\r
-0x03d0, 0x03d2,\r
-0x03d5, 0x03d5,\r
-0x03f0, 0x03f1,\r
-0x03f4, 0x03f5,\r
-0x2016, 0x2016,\r
-0x2032, 0x2034,\r
-0x2040, 0x2040,\r
-0x2061, 0x2064,\r
-0x207d, 0x207e,\r
-0x208d, 0x208e,\r
-0x20d0, 0x20dc,\r
-0x20e1, 0x20e1,\r
-0x20e5, 0x20e6,\r
-0x20eb, 0x20ef,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2128, 0x2129,\r
-0x212c, 0x212d,\r
-0x212f, 0x2131,\r
-0x2133, 0x2138,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x2195, 0x2199,\r
-0x219c, 0x219f,\r
-0x21a1, 0x21a2,\r
-0x21a4, 0x21a5,\r
-0x21a7, 0x21a7,\r
-0x21a9, 0x21ad,\r
-0x21b0, 0x21b1,\r
-0x21b6, 0x21b7,\r
-0x21bc, 0x21cd,\r
-0x21d0, 0x21d1,\r
-0x21d3, 0x21d3,\r
-0x21d5, 0x21db,\r
-0x21dd, 0x21dd,\r
-0x21e4, 0x21e5,\r
-0x2308, 0x230b,\r
-0x23b4, 0x23b5,\r
-0x23b7, 0x23b7,\r
-0x23d0, 0x23d0,\r
-0x23e2, 0x23e2,\r
-0x25a0, 0x25a1,\r
-0x25ae, 0x25b6,\r
-0x25bc, 0x25c0,\r
-0x25c6, 0x25c7,\r
-0x25ca, 0x25cb,\r
-0x25cf, 0x25d3,\r
-0x25e2, 0x25e2,\r
-0x25e4, 0x25e4,\r
-0x25e7, 0x25ec,\r
-0x2605, 0x2606,\r
-0x2640, 0x2640,\r
-0x2642, 0x2642,\r
-0x2660, 0x2663,\r
-0x266d, 0x266e,\r
-0x27c5, 0x27c6,\r
-0x27e6, 0x27ef,\r
-0x2983, 0x2998,\r
-0x29d8, 0x29db,\r
-0x29fc, 0x29fd,\r
-0xfe61, 0xfe61,\r
-0xfe63, 0xfe63,\r
-0xfe68, 0xfe68,\r
-0xff3c, 0xff3c,\r
-0xff3e, 0xff3e,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-}; /* END of CR_Other_Math */\r
-\r
-/* PROPERTY: 'Other_Uppercase': Binary Property */\r
-static const OnigCodePoint\r
-CR_Other_Uppercase[] = { 5,\r
-0x2160, 0x216f,\r
-0x24b6, 0x24cf,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-}; /* END of CR_Other_Uppercase */\r
-\r
-/* PROPERTY: 'P': Major Category */\r
-#define CR_P CR_Punct\r
-\r
-/* PROPERTY: 'Pahawh_Hmong': Script */\r
-static const OnigCodePoint\r
-CR_Pahawh_Hmong[] = { 5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-}; /* END of CR_Pahawh_Hmong */\r
-\r
-/* PROPERTY: 'Palmyrene': Script */\r
-static const OnigCodePoint\r
-CR_Palmyrene[] = { 1,\r
-0x10860, 0x1087f,\r
-}; /* END of CR_Palmyrene */\r
-\r
-/* PROPERTY: 'Pattern_Syntax': Binary Property */\r
-static const OnigCodePoint\r
-CR_Pattern_Syntax[] = { 28,\r
-0x0021, 0x002f,\r
-0x003a, 0x0040,\r
-0x005b, 0x005e,\r
-0x0060, 0x0060,\r
-0x007b, 0x007e,\r
-0x00a1, 0x00a7,\r
-0x00a9, 0x00a9,\r
-0x00ab, 0x00ac,\r
-0x00ae, 0x00ae,\r
-0x00b0, 0x00b1,\r
-0x00b6, 0x00b6,\r
-0x00bb, 0x00bb,\r
-0x00bf, 0x00bf,\r
-0x00d7, 0x00d7,\r
-0x00f7, 0x00f7,\r
-0x2010, 0x2027,\r
-0x2030, 0x203e,\r
-0x2041, 0x2053,\r
-0x2055, 0x205e,\r
-0x2190, 0x245f,\r
-0x2500, 0x2775,\r
-0x2794, 0x2bff,\r
-0x2e00, 0x2e7f,\r
-0x3001, 0x3003,\r
-0x3008, 0x3020,\r
-0x3030, 0x3030,\r
-0xfd3e, 0xfd3f,\r
-0xfe45, 0xfe46,\r
-}; /* END of CR_Pattern_Syntax */\r
-\r
-/* PROPERTY: 'Pattern_White_Space': Binary Property */\r
-static const OnigCodePoint\r
-CR_Pattern_White_Space[] = { 5,\r
-0x0009, 0x000d,\r
-0x0020, 0x0020,\r
-0x0085, 0x0085,\r
-0x200e, 0x200f,\r
-0x2028, 0x2029,\r
-}; /* END of CR_Pattern_White_Space */\r
-\r
-/* PROPERTY: 'Pau_Cin_Hau': Script */\r
-static const OnigCodePoint\r
-CR_Pau_Cin_Hau[] = { 1,\r
-0x11ac0, 0x11af8,\r
-}; /* END of CR_Pau_Cin_Hau */\r
-\r
-/* PROPERTY: 'Pc': General Category */\r
-static const OnigCodePoint\r
-CR_Pc[] = { 6,\r
-0x005f, 0x005f,\r
-0x203f, 0x2040,\r
-0x2054, 0x2054,\r
-0xfe33, 0xfe34,\r
-0xfe4d, 0xfe4f,\r
-0xff3f, 0xff3f,\r
-}; /* END of CR_Pc */\r
-\r
-/* PROPERTY: 'Pd': General Category */\r
-static const OnigCodePoint\r
-CR_Pd[] = { 17,\r
-0x002d, 0x002d,\r
-0x058a, 0x058a,\r
-0x05be, 0x05be,\r
-0x1400, 0x1400,\r
-0x1806, 0x1806,\r
-0x2010, 0x2015,\r
-0x2e17, 0x2e17,\r
-0x2e1a, 0x2e1a,\r
-0x2e3a, 0x2e3b,\r
-0x2e40, 0x2e40,\r
-0x301c, 0x301c,\r
-0x3030, 0x3030,\r
-0x30a0, 0x30a0,\r
-0xfe31, 0xfe32,\r
-0xfe58, 0xfe58,\r
-0xfe63, 0xfe63,\r
-0xff0d, 0xff0d,\r
-}; /* END of CR_Pd */\r
-\r
-/* PROPERTY: 'Pe': General Category */\r
-static const OnigCodePoint\r
-CR_Pe[] = { 72,\r
-0x0029, 0x0029,\r
-0x005d, 0x005d,\r
-0x007d, 0x007d,\r
-0x0f3b, 0x0f3b,\r
-0x0f3d, 0x0f3d,\r
-0x169c, 0x169c,\r
-0x2046, 0x2046,\r
-0x207e, 0x207e,\r
-0x208e, 0x208e,\r
-0x2309, 0x2309,\r
-0x230b, 0x230b,\r
-0x232a, 0x232a,\r
-0x2769, 0x2769,\r
-0x276b, 0x276b,\r
-0x276d, 0x276d,\r
-0x276f, 0x276f,\r
-0x2771, 0x2771,\r
-0x2773, 0x2773,\r
-0x2775, 0x2775,\r
-0x27c6, 0x27c6,\r
-0x27e7, 0x27e7,\r
-0x27e9, 0x27e9,\r
-0x27eb, 0x27eb,\r
-0x27ed, 0x27ed,\r
-0x27ef, 0x27ef,\r
-0x2984, 0x2984,\r
-0x2986, 0x2986,\r
-0x2988, 0x2988,\r
-0x298a, 0x298a,\r
-0x298c, 0x298c,\r
-0x298e, 0x298e,\r
-0x2990, 0x2990,\r
-0x2992, 0x2992,\r
-0x2994, 0x2994,\r
-0x2996, 0x2996,\r
-0x2998, 0x2998,\r
-0x29d9, 0x29d9,\r
-0x29db, 0x29db,\r
-0x29fd, 0x29fd,\r
-0x2e23, 0x2e23,\r
-0x2e25, 0x2e25,\r
-0x2e27, 0x2e27,\r
-0x2e29, 0x2e29,\r
-0x3009, 0x3009,\r
-0x300b, 0x300b,\r
-0x300d, 0x300d,\r
-0x300f, 0x300f,\r
-0x3011, 0x3011,\r
-0x3015, 0x3015,\r
-0x3017, 0x3017,\r
-0x3019, 0x3019,\r
-0x301b, 0x301b,\r
-0x301e, 0x301f,\r
-0xfd3e, 0xfd3e,\r
-0xfe18, 0xfe18,\r
-0xfe36, 0xfe36,\r
-0xfe38, 0xfe38,\r
-0xfe3a, 0xfe3a,\r
-0xfe3c, 0xfe3c,\r
-0xfe3e, 0xfe3e,\r
-0xfe40, 0xfe40,\r
-0xfe42, 0xfe42,\r
-0xfe44, 0xfe44,\r
-0xfe48, 0xfe48,\r
-0xfe5a, 0xfe5a,\r
-0xfe5c, 0xfe5c,\r
-0xfe5e, 0xfe5e,\r
-0xff09, 0xff09,\r
-0xff3d, 0xff3d,\r
-0xff5d, 0xff5d,\r
-0xff60, 0xff60,\r
-0xff63, 0xff63,\r
-}; /* END of CR_Pe */\r
-\r
-/* PROPERTY: 'Pf': General Category */\r
-static const OnigCodePoint\r
-CR_Pf[] = { 10,\r
-0x00bb, 0x00bb,\r
-0x2019, 0x2019,\r
-0x201d, 0x201d,\r
-0x203a, 0x203a,\r
-0x2e03, 0x2e03,\r
-0x2e05, 0x2e05,\r
-0x2e0a, 0x2e0a,\r
-0x2e0d, 0x2e0d,\r
-0x2e1d, 0x2e1d,\r
-0x2e21, 0x2e21,\r
-}; /* END of CR_Pf */\r
-\r
-/* PROPERTY: 'Phags_Pa': Script */\r
-static const OnigCodePoint\r
-CR_Phags_Pa[] = { 1,\r
-0xa840, 0xa877,\r
-}; /* END of CR_Phags_Pa */\r
-\r
-/* PROPERTY: 'Phoenician': Script */\r
-static const OnigCodePoint\r
-CR_Phoenician[] = { 2,\r
-0x10900, 0x1091b,\r
-0x1091f, 0x1091f,\r
-}; /* END of CR_Phoenician */\r
-\r
-/* PROPERTY: 'Pi': General Category */\r
-static const OnigCodePoint\r
-CR_Pi[] = { 11,\r
-0x00ab, 0x00ab,\r
-0x2018, 0x2018,\r
-0x201b, 0x201c,\r
-0x201f, 0x201f,\r
-0x2039, 0x2039,\r
-0x2e02, 0x2e02,\r
-0x2e04, 0x2e04,\r
-0x2e09, 0x2e09,\r
-0x2e0c, 0x2e0c,\r
-0x2e1c, 0x2e1c,\r
-0x2e20, 0x2e20,\r
-}; /* END of CR_Pi */\r
-\r
-/* PROPERTY: 'Po': General Category */\r
-static const OnigCodePoint\r
-CR_Po[] = { 179,\r
-0x0021, 0x0023,\r
-0x0025, 0x0027,\r
-0x002a, 0x002a,\r
-0x002c, 0x002c,\r
-0x002e, 0x002f,\r
-0x003a, 0x003b,\r
-0x003f, 0x0040,\r
-0x005c, 0x005c,\r
-0x00a1, 0x00a1,\r
-0x00a7, 0x00a7,\r
-0x00b6, 0x00b7,\r
-0x00bf, 0x00bf,\r
-0x037e, 0x037e,\r
-0x0387, 0x0387,\r
-0x055a, 0x055f,\r
-0x0589, 0x0589,\r
-0x05c0, 0x05c0,\r
-0x05c3, 0x05c3,\r
-0x05c6, 0x05c6,\r
-0x05f3, 0x05f4,\r
-0x0609, 0x060a,\r
-0x060c, 0x060d,\r
-0x061b, 0x061b,\r
-0x061e, 0x061f,\r
-0x066a, 0x066d,\r
-0x06d4, 0x06d4,\r
-0x0700, 0x070d,\r
-0x07f7, 0x07f9,\r
-0x0830, 0x083e,\r
-0x085e, 0x085e,\r
-0x0964, 0x0965,\r
-0x0970, 0x0970,\r
-0x09fd, 0x09fd,\r
-0x0a76, 0x0a76,\r
-0x0af0, 0x0af0,\r
-0x0c77, 0x0c77,\r
-0x0c84, 0x0c84,\r
-0x0df4, 0x0df4,\r
-0x0e4f, 0x0e4f,\r
-0x0e5a, 0x0e5b,\r
-0x0f04, 0x0f12,\r
-0x0f14, 0x0f14,\r
-0x0f85, 0x0f85,\r
-0x0fd0, 0x0fd4,\r
-0x0fd9, 0x0fda,\r
-0x104a, 0x104f,\r
-0x10fb, 0x10fb,\r
-0x1360, 0x1368,\r
-0x166e, 0x166e,\r
-0x16eb, 0x16ed,\r
-0x1735, 0x1736,\r
-0x17d4, 0x17d6,\r
-0x17d8, 0x17da,\r
-0x1800, 0x1805,\r
-0x1807, 0x180a,\r
-0x1944, 0x1945,\r
-0x1a1e, 0x1a1f,\r
-0x1aa0, 0x1aa6,\r
-0x1aa8, 0x1aad,\r
-0x1b5a, 0x1b60,\r
-0x1bfc, 0x1bff,\r
-0x1c3b, 0x1c3f,\r
-0x1c7e, 0x1c7f,\r
-0x1cc0, 0x1cc7,\r
-0x1cd3, 0x1cd3,\r
-0x2016, 0x2017,\r
-0x2020, 0x2027,\r
-0x2030, 0x2038,\r
-0x203b, 0x203e,\r
-0x2041, 0x2043,\r
-0x2047, 0x2051,\r
-0x2053, 0x2053,\r
-0x2055, 0x205e,\r
-0x2cf9, 0x2cfc,\r
-0x2cfe, 0x2cff,\r
-0x2d70, 0x2d70,\r
-0x2e00, 0x2e01,\r
-0x2e06, 0x2e08,\r
-0x2e0b, 0x2e0b,\r
-0x2e0e, 0x2e16,\r
-0x2e18, 0x2e19,\r
-0x2e1b, 0x2e1b,\r
-0x2e1e, 0x2e1f,\r
-0x2e2a, 0x2e2e,\r
-0x2e30, 0x2e39,\r
-0x2e3c, 0x2e3f,\r
-0x2e41, 0x2e41,\r
-0x2e43, 0x2e4f,\r
-0x3001, 0x3003,\r
-0x303d, 0x303d,\r
-0x30fb, 0x30fb,\r
-0xa4fe, 0xa4ff,\r
-0xa60d, 0xa60f,\r
-0xa673, 0xa673,\r
-0xa67e, 0xa67e,\r
-0xa6f2, 0xa6f7,\r
-0xa874, 0xa877,\r
-0xa8ce, 0xa8cf,\r
-0xa8f8, 0xa8fa,\r
-0xa8fc, 0xa8fc,\r
-0xa92e, 0xa92f,\r
-0xa95f, 0xa95f,\r
-0xa9c1, 0xa9cd,\r
-0xa9de, 0xa9df,\r
-0xaa5c, 0xaa5f,\r
-0xaade, 0xaadf,\r
-0xaaf0, 0xaaf1,\r
-0xabeb, 0xabeb,\r
-0xfe10, 0xfe16,\r
-0xfe19, 0xfe19,\r
-0xfe30, 0xfe30,\r
-0xfe45, 0xfe46,\r
-0xfe49, 0xfe4c,\r
-0xfe50, 0xfe52,\r
-0xfe54, 0xfe57,\r
-0xfe5f, 0xfe61,\r
-0xfe68, 0xfe68,\r
-0xfe6a, 0xfe6b,\r
-0xff01, 0xff03,\r
-0xff05, 0xff07,\r
-0xff0a, 0xff0a,\r
-0xff0c, 0xff0c,\r
-0xff0e, 0xff0f,\r
-0xff1a, 0xff1b,\r
-0xff1f, 0xff20,\r
-0xff3c, 0xff3c,\r
-0xff61, 0xff61,\r
-0xff64, 0xff65,\r
-0x10100, 0x10102,\r
-0x1039f, 0x1039f,\r
-0x103d0, 0x103d0,\r
-0x1056f, 0x1056f,\r
-0x10857, 0x10857,\r
-0x1091f, 0x1091f,\r
-0x1093f, 0x1093f,\r
-0x10a50, 0x10a58,\r
-0x10a7f, 0x10a7f,\r
-0x10af0, 0x10af6,\r
-0x10b39, 0x10b3f,\r
-0x10b99, 0x10b9c,\r
-0x10f55, 0x10f59,\r
-0x11047, 0x1104d,\r
-0x110bb, 0x110bc,\r
-0x110be, 0x110c1,\r
-0x11140, 0x11143,\r
-0x11174, 0x11175,\r
-0x111c5, 0x111c8,\r
-0x111cd, 0x111cd,\r
-0x111db, 0x111db,\r
-0x111dd, 0x111df,\r
-0x11238, 0x1123d,\r
-0x112a9, 0x112a9,\r
-0x1144b, 0x1144f,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145d,\r
-0x114c6, 0x114c6,\r
-0x115c1, 0x115d7,\r
-0x11641, 0x11643,\r
-0x11660, 0x1166c,\r
-0x1173c, 0x1173e,\r
-0x1183b, 0x1183b,\r
-0x119e2, 0x119e2,\r
-0x11a3f, 0x11a46,\r
-0x11a9a, 0x11a9c,\r
-0x11a9e, 0x11aa2,\r
-0x11c41, 0x11c45,\r
-0x11c70, 0x11c71,\r
-0x11ef7, 0x11ef8,\r
-0x11fff, 0x11fff,\r
-0x12470, 0x12474,\r
-0x16a6e, 0x16a6f,\r
-0x16af5, 0x16af5,\r
-0x16b37, 0x16b3b,\r
-0x16b44, 0x16b44,\r
-0x16e97, 0x16e9a,\r
-0x16fe2, 0x16fe2,\r
-0x1bc9f, 0x1bc9f,\r
-0x1da87, 0x1da8b,\r
-0x1e95e, 0x1e95f,\r
-}; /* END of CR_Po */\r
-\r
-/* PROPERTY: 'Prepended_Concatenation_Mark': Binary Property */\r
-static const OnigCodePoint\r
-CR_Prepended_Concatenation_Mark[] = { 6,\r
-0x0600, 0x0605,\r
-0x06dd, 0x06dd,\r
-0x070f, 0x070f,\r
-0x08e2, 0x08e2,\r
-0x110bd, 0x110bd,\r
-0x110cd, 0x110cd,\r
-}; /* END of CR_Prepended_Concatenation_Mark */\r
-\r
-/* PROPERTY: 'Ps': General Category */\r
-static const OnigCodePoint\r
-CR_Ps[] = { 75,\r
-0x0028, 0x0028,\r
-0x005b, 0x005b,\r
-0x007b, 0x007b,\r
-0x0f3a, 0x0f3a,\r
-0x0f3c, 0x0f3c,\r
-0x169b, 0x169b,\r
-0x201a, 0x201a,\r
-0x201e, 0x201e,\r
-0x2045, 0x2045,\r
-0x207d, 0x207d,\r
-0x208d, 0x208d,\r
-0x2308, 0x2308,\r
-0x230a, 0x230a,\r
-0x2329, 0x2329,\r
-0x2768, 0x2768,\r
-0x276a, 0x276a,\r
-0x276c, 0x276c,\r
-0x276e, 0x276e,\r
-0x2770, 0x2770,\r
-0x2772, 0x2772,\r
-0x2774, 0x2774,\r
-0x27c5, 0x27c5,\r
-0x27e6, 0x27e6,\r
-0x27e8, 0x27e8,\r
-0x27ea, 0x27ea,\r
-0x27ec, 0x27ec,\r
-0x27ee, 0x27ee,\r
-0x2983, 0x2983,\r
-0x2985, 0x2985,\r
-0x2987, 0x2987,\r
-0x2989, 0x2989,\r
-0x298b, 0x298b,\r
-0x298d, 0x298d,\r
-0x298f, 0x298f,\r
-0x2991, 0x2991,\r
-0x2993, 0x2993,\r
-0x2995, 0x2995,\r
-0x2997, 0x2997,\r
-0x29d8, 0x29d8,\r
-0x29da, 0x29da,\r
-0x29fc, 0x29fc,\r
-0x2e22, 0x2e22,\r
-0x2e24, 0x2e24,\r
-0x2e26, 0x2e26,\r
-0x2e28, 0x2e28,\r
-0x2e42, 0x2e42,\r
-0x3008, 0x3008,\r
-0x300a, 0x300a,\r
-0x300c, 0x300c,\r
-0x300e, 0x300e,\r
-0x3010, 0x3010,\r
-0x3014, 0x3014,\r
-0x3016, 0x3016,\r
-0x3018, 0x3018,\r
-0x301a, 0x301a,\r
-0x301d, 0x301d,\r
-0xfd3f, 0xfd3f,\r
-0xfe17, 0xfe17,\r
-0xfe35, 0xfe35,\r
-0xfe37, 0xfe37,\r
-0xfe39, 0xfe39,\r
-0xfe3b, 0xfe3b,\r
-0xfe3d, 0xfe3d,\r
-0xfe3f, 0xfe3f,\r
-0xfe41, 0xfe41,\r
-0xfe43, 0xfe43,\r
-0xfe47, 0xfe47,\r
-0xfe59, 0xfe59,\r
-0xfe5b, 0xfe5b,\r
-0xfe5d, 0xfe5d,\r
-0xff08, 0xff08,\r
-0xff3b, 0xff3b,\r
-0xff5b, 0xff5b,\r
-0xff5f, 0xff5f,\r
-0xff62, 0xff62,\r
-}; /* END of CR_Ps */\r
-\r
-/* PROPERTY: 'Psalter_Pahlavi': Script */\r
-static const OnigCodePoint\r
-CR_Psalter_Pahlavi[] = { 3,\r
-0x10b80, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-}; /* END of CR_Psalter_Pahlavi */\r
-\r
-/* PROPERTY: 'Quotation_Mark': Binary Property */\r
-static const OnigCodePoint\r
-CR_Quotation_Mark[] = { 13,\r
-0x0022, 0x0022,\r
-0x0027, 0x0027,\r
-0x00ab, 0x00ab,\r
-0x00bb, 0x00bb,\r
-0x2018, 0x201f,\r
-0x2039, 0x203a,\r
-0x2e42, 0x2e42,\r
-0x300c, 0x300f,\r
-0x301d, 0x301f,\r
-0xfe41, 0xfe44,\r
-0xff02, 0xff02,\r
-0xff07, 0xff07,\r
-0xff62, 0xff63,\r
-}; /* END of CR_Quotation_Mark */\r
-\r
-/* PROPERTY: 'Radical': Binary Property */\r
-static const OnigCodePoint\r
-CR_Radical[] = { 3,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-}; /* END of CR_Radical */\r
-\r
-/* PROPERTY: 'Regional_Indicator': Binary Property */\r
-static const OnigCodePoint\r
-CR_Regional_Indicator[] = { 1,\r
-0x1f1e6, 0x1f1ff,\r
-}; /* END of CR_Regional_Indicator */\r
-\r
-/* PROPERTY: 'Rejang': Script */\r
-static const OnigCodePoint\r
-CR_Rejang[] = { 2,\r
-0xa930, 0xa953,\r
-0xa95f, 0xa95f,\r
-}; /* END of CR_Rejang */\r
-\r
-/* PROPERTY: 'Runic': Script */\r
-static const OnigCodePoint\r
-CR_Runic[] = { 2,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-}; /* END of CR_Runic */\r
-\r
-/* PROPERTY: 'S': Major Category */\r
-static const OnigCodePoint\r
-CR_S[] = { 226,\r
-0x0024, 0x0024,\r
-0x002b, 0x002b,\r
-0x003c, 0x003e,\r
-0x005e, 0x005e,\r
-0x0060, 0x0060,\r
-0x007c, 0x007c,\r
-0x007e, 0x007e,\r
-0x00a2, 0x00a6,\r
-0x00a8, 0x00a9,\r
-0x00ac, 0x00ac,\r
-0x00ae, 0x00b1,\r
-0x00b4, 0x00b4,\r
-0x00b8, 0x00b8,\r
-0x00d7, 0x00d7,\r
-0x00f7, 0x00f7,\r
-0x02c2, 0x02c5,\r
-0x02d2, 0x02df,\r
-0x02e5, 0x02eb,\r
-0x02ed, 0x02ed,\r
-0x02ef, 0x02ff,\r
-0x0375, 0x0375,\r
-0x0384, 0x0385,\r
-0x03f6, 0x03f6,\r
-0x0482, 0x0482,\r
-0x058d, 0x058f,\r
-0x0606, 0x0608,\r
-0x060b, 0x060b,\r
-0x060e, 0x060f,\r
-0x06de, 0x06de,\r
-0x06e9, 0x06e9,\r
-0x06fd, 0x06fe,\r
-0x07f6, 0x07f6,\r
-0x07fe, 0x07ff,\r
-0x09f2, 0x09f3,\r
-0x09fa, 0x09fb,\r
-0x0af1, 0x0af1,\r
-0x0b70, 0x0b70,\r
-0x0bf3, 0x0bfa,\r
-0x0c7f, 0x0c7f,\r
-0x0d4f, 0x0d4f,\r
-0x0d79, 0x0d79,\r
-0x0e3f, 0x0e3f,\r
-0x0f01, 0x0f03,\r
-0x0f13, 0x0f13,\r
-0x0f15, 0x0f17,\r
-0x0f1a, 0x0f1f,\r
-0x0f34, 0x0f34,\r
-0x0f36, 0x0f36,\r
-0x0f38, 0x0f38,\r
-0x0fbe, 0x0fc5,\r
-0x0fc7, 0x0fcc,\r
-0x0fce, 0x0fcf,\r
-0x0fd5, 0x0fd8,\r
-0x109e, 0x109f,\r
-0x1390, 0x1399,\r
-0x166d, 0x166d,\r
-0x17db, 0x17db,\r
-0x1940, 0x1940,\r
-0x19de, 0x19ff,\r
-0x1b61, 0x1b6a,\r
-0x1b74, 0x1b7c,\r
-0x1fbd, 0x1fbd,\r
-0x1fbf, 0x1fc1,\r
-0x1fcd, 0x1fcf,\r
-0x1fdd, 0x1fdf,\r
-0x1fed, 0x1fef,\r
-0x1ffd, 0x1ffe,\r
-0x2044, 0x2044,\r
-0x2052, 0x2052,\r
-0x207a, 0x207c,\r
-0x208a, 0x208c,\r
-0x20a0, 0x20bf,\r
-0x2100, 0x2101,\r
-0x2103, 0x2106,\r
-0x2108, 0x2109,\r
-0x2114, 0x2114,\r
-0x2116, 0x2118,\r
-0x211e, 0x2123,\r
-0x2125, 0x2125,\r
-0x2127, 0x2127,\r
-0x2129, 0x2129,\r
-0x212e, 0x212e,\r
-0x213a, 0x213b,\r
-0x2140, 0x2144,\r
-0x214a, 0x214d,\r
-0x214f, 0x214f,\r
-0x218a, 0x218b,\r
-0x2190, 0x2307,\r
-0x230c, 0x2328,\r
-0x232b, 0x2426,\r
-0x2440, 0x244a,\r
-0x249c, 0x24e9,\r
-0x2500, 0x2767,\r
-0x2794, 0x27c4,\r
-0x27c7, 0x27e5,\r
-0x27f0, 0x2982,\r
-0x2999, 0x29d7,\r
-0x29dc, 0x29fb,\r
-0x29fe, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2bff,\r
-0x2ce5, 0x2cea,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3004, 0x3004,\r
-0x3012, 0x3013,\r
-0x3020, 0x3020,\r
-0x3036, 0x3037,\r
-0x303e, 0x303f,\r
-0x309b, 0x309c,\r
-0x3190, 0x3191,\r
-0x3196, 0x319f,\r
-0x31c0, 0x31e3,\r
-0x3200, 0x321e,\r
-0x322a, 0x3247,\r
-0x3250, 0x3250,\r
-0x3260, 0x327f,\r
-0x328a, 0x32b0,\r
-0x32c0, 0x33ff,\r
-0x4dc0, 0x4dff,\r
-0xa490, 0xa4c6,\r
-0xa700, 0xa716,\r
-0xa720, 0xa721,\r
-0xa789, 0xa78a,\r
-0xa828, 0xa82b,\r
-0xa836, 0xa839,\r
-0xaa77, 0xaa79,\r
-0xab5b, 0xab5b,\r
-0xfb29, 0xfb29,\r
-0xfbb2, 0xfbc1,\r
-0xfdfc, 0xfdfd,\r
-0xfe62, 0xfe62,\r
-0xfe64, 0xfe66,\r
-0xfe69, 0xfe69,\r
-0xff04, 0xff04,\r
-0xff0b, 0xff0b,\r
-0xff1c, 0xff1e,\r
-0xff3e, 0xff3e,\r
-0xff40, 0xff40,\r
-0xff5c, 0xff5c,\r
-0xff5e, 0xff5e,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfffc, 0xfffd,\r
-0x10137, 0x1013f,\r
-0x10179, 0x10189,\r
-0x1018c, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fc,\r
-0x10877, 0x10878,\r
-0x10ac8, 0x10ac8,\r
-0x1173f, 0x1173f,\r
-0x11fd5, 0x11ff1,\r
-0x16b3c, 0x16b3f,\r
-0x16b45, 0x16b45,\r
-0x1bc9c, 0x1bc9c,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d164,\r
-0x1d16a, 0x1d16c,\r
-0x1d183, 0x1d184,\r
-0x1d18c, 0x1d1a9,\r
-0x1d1ae, 0x1d1e8,\r
-0x1d200, 0x1d241,\r
-0x1d245, 0x1d245,\r
-0x1d300, 0x1d356,\r
-0x1d6c1, 0x1d6c1,\r
-0x1d6db, 0x1d6db,\r
-0x1d6fb, 0x1d6fb,\r
-0x1d715, 0x1d715,\r
-0x1d735, 0x1d735,\r
-0x1d74f, 0x1d74f,\r
-0x1d76f, 0x1d76f,\r
-0x1d789, 0x1d789,\r
-0x1d7a9, 0x1d7a9,\r
-0x1d7c3, 0x1d7c3,\r
-0x1d800, 0x1d9ff,\r
-0x1da37, 0x1da3a,\r
-0x1da6d, 0x1da74,\r
-0x1da76, 0x1da83,\r
-0x1da85, 0x1da86,\r
-0x1e14f, 0x1e14f,\r
-0x1e2ff, 0x1e2ff,\r
-0x1ecac, 0x1ecac,\r
-0x1ecb0, 0x1ecb0,\r
-0x1ed2e, 0x1ed2e,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-}; /* END of CR_S */\r
-\r
-/* PROPERTY: 'Samaritan': Script */\r
-static const OnigCodePoint\r
-CR_Samaritan[] = { 2,\r
-0x0800, 0x082d,\r
-0x0830, 0x083e,\r
-}; /* END of CR_Samaritan */\r
-\r
-/* PROPERTY: 'Saurashtra': Script */\r
-static const OnigCodePoint\r
-CR_Saurashtra[] = { 2,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-}; /* END of CR_Saurashtra */\r
-\r
-/* PROPERTY: 'Sc': General Category */\r
-static const OnigCodePoint\r
-CR_Sc[] = { 21,\r
-0x0024, 0x0024,\r
-0x00a2, 0x00a5,\r
-0x058f, 0x058f,\r
-0x060b, 0x060b,\r
-0x07fe, 0x07ff,\r
-0x09f2, 0x09f3,\r
-0x09fb, 0x09fb,\r
-0x0af1, 0x0af1,\r
-0x0bf9, 0x0bf9,\r
-0x0e3f, 0x0e3f,\r
-0x17db, 0x17db,\r
-0x20a0, 0x20bf,\r
-0xa838, 0xa838,\r
-0xfdfc, 0xfdfc,\r
-0xfe69, 0xfe69,\r
-0xff04, 0xff04,\r
-0xffe0, 0xffe1,\r
-0xffe5, 0xffe6,\r
-0x11fdd, 0x11fe0,\r
-0x1e2ff, 0x1e2ff,\r
-0x1ecb0, 0x1ecb0,\r
-}; /* END of CR_Sc */\r
-\r
-/* PROPERTY: 'Sentence_Terminal': Binary Property */\r
-static const OnigCodePoint\r
-CR_Sentence_Terminal[] = { 74,\r
-0x0021, 0x0021,\r
-0x002e, 0x002e,\r
-0x003f, 0x003f,\r
-0x0589, 0x0589,\r
-0x061e, 0x061f,\r
-0x06d4, 0x06d4,\r
-0x0700, 0x0702,\r
-0x07f9, 0x07f9,\r
-0x0837, 0x0837,\r
-0x0839, 0x0839,\r
-0x083d, 0x083e,\r
-0x0964, 0x0965,\r
-0x104a, 0x104b,\r
-0x1362, 0x1362,\r
-0x1367, 0x1368,\r
-0x166e, 0x166e,\r
-0x1735, 0x1736,\r
-0x1803, 0x1803,\r
-0x1809, 0x1809,\r
-0x1944, 0x1945,\r
-0x1aa8, 0x1aab,\r
-0x1b5a, 0x1b5b,\r
-0x1b5e, 0x1b5f,\r
-0x1c3b, 0x1c3c,\r
-0x1c7e, 0x1c7f,\r
-0x203c, 0x203d,\r
-0x2047, 0x2049,\r
-0x2e2e, 0x2e2e,\r
-0x2e3c, 0x2e3c,\r
-0x3002, 0x3002,\r
-0xa4ff, 0xa4ff,\r
-0xa60e, 0xa60f,\r
-0xa6f3, 0xa6f3,\r
-0xa6f7, 0xa6f7,\r
-0xa876, 0xa877,\r
-0xa8ce, 0xa8cf,\r
-0xa92f, 0xa92f,\r
-0xa9c8, 0xa9c9,\r
-0xaa5d, 0xaa5f,\r
-0xaaf0, 0xaaf1,\r
-0xabeb, 0xabeb,\r
-0xfe52, 0xfe52,\r
-0xfe56, 0xfe57,\r
-0xff01, 0xff01,\r
-0xff0e, 0xff0e,\r
-0xff1f, 0xff1f,\r
-0xff61, 0xff61,\r
-0x10a56, 0x10a57,\r
-0x10f55, 0x10f59,\r
-0x11047, 0x11048,\r
-0x110be, 0x110c1,\r
-0x11141, 0x11143,\r
-0x111c5, 0x111c6,\r
-0x111cd, 0x111cd,\r
-0x111de, 0x111df,\r
-0x11238, 0x11239,\r
-0x1123b, 0x1123c,\r
-0x112a9, 0x112a9,\r
-0x1144b, 0x1144c,\r
-0x115c2, 0x115c3,\r
-0x115c9, 0x115d7,\r
-0x11641, 0x11642,\r
-0x1173c, 0x1173e,\r
-0x11a42, 0x11a43,\r
-0x11a9b, 0x11a9c,\r
-0x11c41, 0x11c42,\r
-0x11ef7, 0x11ef8,\r
-0x16a6e, 0x16a6f,\r
-0x16af5, 0x16af5,\r
-0x16b37, 0x16b38,\r
-0x16b44, 0x16b44,\r
-0x16e98, 0x16e98,\r
-0x1bc9f, 0x1bc9f,\r
-0x1da88, 0x1da88,\r
-}; /* END of CR_Sentence_Terminal */\r
-\r
-/* PROPERTY: 'Sharada': Script */\r
-static const OnigCodePoint\r
-CR_Sharada[] = { 2,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-}; /* END of CR_Sharada */\r
-\r
-/* PROPERTY: 'Shavian': Script */\r
-static const OnigCodePoint\r
-CR_Shavian[] = { 1,\r
-0x10450, 0x1047f,\r
-}; /* END of CR_Shavian */\r
-\r
-/* PROPERTY: 'Siddham': Script */\r
-static const OnigCodePoint\r
-CR_Siddham[] = { 2,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-}; /* END of CR_Siddham */\r
-\r
-/* PROPERTY: 'SignWriting': Script */\r
-static const OnigCodePoint\r
-CR_SignWriting[] = { 3,\r
-0x1d800, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-}; /* END of CR_SignWriting */\r
-\r
-/* PROPERTY: 'Sinhala': Script */\r
-static const OnigCodePoint\r
-CR_Sinhala[] = { 13,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x111e1, 0x111f4,\r
-}; /* END of CR_Sinhala */\r
-\r
-/* PROPERTY: 'Sk': General Category */\r
-static const OnigCodePoint\r
-CR_Sk[] = { 29,\r
-0x005e, 0x005e,\r
-0x0060, 0x0060,\r
-0x00a8, 0x00a8,\r
-0x00af, 0x00af,\r
-0x00b4, 0x00b4,\r
-0x00b8, 0x00b8,\r
-0x02c2, 0x02c5,\r
-0x02d2, 0x02df,\r
-0x02e5, 0x02eb,\r
-0x02ed, 0x02ed,\r
-0x02ef, 0x02ff,\r
-0x0375, 0x0375,\r
-0x0384, 0x0385,\r
-0x1fbd, 0x1fbd,\r
-0x1fbf, 0x1fc1,\r
-0x1fcd, 0x1fcf,\r
-0x1fdd, 0x1fdf,\r
-0x1fed, 0x1fef,\r
-0x1ffd, 0x1ffe,\r
-0x309b, 0x309c,\r
-0xa700, 0xa716,\r
-0xa720, 0xa721,\r
-0xa789, 0xa78a,\r
-0xab5b, 0xab5b,\r
-0xfbb2, 0xfbc1,\r
-0xff3e, 0xff3e,\r
-0xff40, 0xff40,\r
-0xffe3, 0xffe3,\r
-0x1f3fb, 0x1f3ff,\r
-}; /* END of CR_Sk */\r
-\r
-/* PROPERTY: 'Sm': General Category */\r
-static const OnigCodePoint\r
-CR_Sm[] = { 64,\r
-0x002b, 0x002b,\r
-0x003c, 0x003e,\r
-0x007c, 0x007c,\r
-0x007e, 0x007e,\r
-0x00ac, 0x00ac,\r
-0x00b1, 0x00b1,\r
-0x00d7, 0x00d7,\r
-0x00f7, 0x00f7,\r
-0x03f6, 0x03f6,\r
-0x0606, 0x0608,\r
-0x2044, 0x2044,\r
-0x2052, 0x2052,\r
-0x207a, 0x207c,\r
-0x208a, 0x208c,\r
-0x2118, 0x2118,\r
-0x2140, 0x2144,\r
-0x214b, 0x214b,\r
-0x2190, 0x2194,\r
-0x219a, 0x219b,\r
-0x21a0, 0x21a0,\r
-0x21a3, 0x21a3,\r
-0x21a6, 0x21a6,\r
-0x21ae, 0x21ae,\r
-0x21ce, 0x21cf,\r
-0x21d2, 0x21d2,\r
-0x21d4, 0x21d4,\r
-0x21f4, 0x22ff,\r
-0x2320, 0x2321,\r
-0x237c, 0x237c,\r
-0x239b, 0x23b3,\r
-0x23dc, 0x23e1,\r
-0x25b7, 0x25b7,\r
-0x25c1, 0x25c1,\r
-0x25f8, 0x25ff,\r
-0x266f, 0x266f,\r
-0x27c0, 0x27c4,\r
-0x27c7, 0x27e5,\r
-0x27f0, 0x27ff,\r
-0x2900, 0x2982,\r
-0x2999, 0x29d7,\r
-0x29dc, 0x29fb,\r
-0x29fe, 0x2aff,\r
-0x2b30, 0x2b44,\r
-0x2b47, 0x2b4c,\r
-0xfb29, 0xfb29,\r
-0xfe62, 0xfe62,\r
-0xfe64, 0xfe66,\r
-0xff0b, 0xff0b,\r
-0xff1c, 0xff1e,\r
-0xff5c, 0xff5c,\r
-0xff5e, 0xff5e,\r
-0xffe2, 0xffe2,\r
-0xffe9, 0xffec,\r
-0x1d6c1, 0x1d6c1,\r
-0x1d6db, 0x1d6db,\r
-0x1d6fb, 0x1d6fb,\r
-0x1d715, 0x1d715,\r
-0x1d735, 0x1d735,\r
-0x1d74f, 0x1d74f,\r
-0x1d76f, 0x1d76f,\r
-0x1d789, 0x1d789,\r
-0x1d7a9, 0x1d7a9,\r
-0x1d7c3, 0x1d7c3,\r
-0x1eef0, 0x1eef1,\r
-}; /* END of CR_Sm */\r
-\r
-/* PROPERTY: 'So': General Category */\r
-static const OnigCodePoint\r
-CR_So[] = { 180,\r
-0x00a6, 0x00a6,\r
-0x00a9, 0x00a9,\r
-0x00ae, 0x00ae,\r
-0x00b0, 0x00b0,\r
-0x0482, 0x0482,\r
-0x058d, 0x058e,\r
-0x060e, 0x060f,\r
-0x06de, 0x06de,\r
-0x06e9, 0x06e9,\r
-0x06fd, 0x06fe,\r
-0x07f6, 0x07f6,\r
-0x09fa, 0x09fa,\r
-0x0b70, 0x0b70,\r
-0x0bf3, 0x0bf8,\r
-0x0bfa, 0x0bfa,\r
-0x0c7f, 0x0c7f,\r
-0x0d4f, 0x0d4f,\r
-0x0d79, 0x0d79,\r
-0x0f01, 0x0f03,\r
-0x0f13, 0x0f13,\r
-0x0f15, 0x0f17,\r
-0x0f1a, 0x0f1f,\r
-0x0f34, 0x0f34,\r
-0x0f36, 0x0f36,\r
-0x0f38, 0x0f38,\r
-0x0fbe, 0x0fc5,\r
-0x0fc7, 0x0fcc,\r
-0x0fce, 0x0fcf,\r
-0x0fd5, 0x0fd8,\r
-0x109e, 0x109f,\r
-0x1390, 0x1399,\r
-0x166d, 0x166d,\r
-0x1940, 0x1940,\r
-0x19de, 0x19ff,\r
-0x1b61, 0x1b6a,\r
-0x1b74, 0x1b7c,\r
-0x2100, 0x2101,\r
-0x2103, 0x2106,\r
-0x2108, 0x2109,\r
-0x2114, 0x2114,\r
-0x2116, 0x2117,\r
-0x211e, 0x2123,\r
-0x2125, 0x2125,\r
-0x2127, 0x2127,\r
-0x2129, 0x2129,\r
-0x212e, 0x212e,\r
-0x213a, 0x213b,\r
-0x214a, 0x214a,\r
-0x214c, 0x214d,\r
-0x214f, 0x214f,\r
-0x218a, 0x218b,\r
-0x2195, 0x2199,\r
-0x219c, 0x219f,\r
-0x21a1, 0x21a2,\r
-0x21a4, 0x21a5,\r
-0x21a7, 0x21ad,\r
-0x21af, 0x21cd,\r
-0x21d0, 0x21d1,\r
-0x21d3, 0x21d3,\r
-0x21d5, 0x21f3,\r
-0x2300, 0x2307,\r
-0x230c, 0x231f,\r
-0x2322, 0x2328,\r
-0x232b, 0x237b,\r
-0x237d, 0x239a,\r
-0x23b4, 0x23db,\r
-0x23e2, 0x2426,\r
-0x2440, 0x244a,\r
-0x249c, 0x24e9,\r
-0x2500, 0x25b6,\r
-0x25b8, 0x25c0,\r
-0x25c2, 0x25f7,\r
-0x2600, 0x266e,\r
-0x2670, 0x2767,\r
-0x2794, 0x27bf,\r
-0x2800, 0x28ff,\r
-0x2b00, 0x2b2f,\r
-0x2b45, 0x2b46,\r
-0x2b4d, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2bff,\r
-0x2ce5, 0x2cea,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3004, 0x3004,\r
-0x3012, 0x3013,\r
-0x3020, 0x3020,\r
-0x3036, 0x3037,\r
-0x303e, 0x303f,\r
-0x3190, 0x3191,\r
-0x3196, 0x319f,\r
-0x31c0, 0x31e3,\r
-0x3200, 0x321e,\r
-0x322a, 0x3247,\r
-0x3250, 0x3250,\r
-0x3260, 0x327f,\r
-0x328a, 0x32b0,\r
-0x32c0, 0x33ff,\r
-0x4dc0, 0x4dff,\r
-0xa490, 0xa4c6,\r
-0xa828, 0xa82b,\r
-0xa836, 0xa837,\r
-0xa839, 0xa839,\r
-0xaa77, 0xaa79,\r
-0xfdfd, 0xfdfd,\r
-0xffe4, 0xffe4,\r
-0xffe8, 0xffe8,\r
-0xffed, 0xffee,\r
-0xfffc, 0xfffd,\r
-0x10137, 0x1013f,\r
-0x10179, 0x10189,\r
-0x1018c, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fc,\r
-0x10877, 0x10878,\r
-0x10ac8, 0x10ac8,\r
-0x1173f, 0x1173f,\r
-0x11fd5, 0x11fdc,\r
-0x11fe1, 0x11ff1,\r
-0x16b3c, 0x16b3f,\r
-0x16b45, 0x16b45,\r
-0x1bc9c, 0x1bc9c,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d164,\r
-0x1d16a, 0x1d16c,\r
-0x1d183, 0x1d184,\r
-0x1d18c, 0x1d1a9,\r
-0x1d1ae, 0x1d1e8,\r
-0x1d200, 0x1d241,\r
-0x1d245, 0x1d245,\r
-0x1d300, 0x1d356,\r
-0x1d800, 0x1d9ff,\r
-0x1da37, 0x1da3a,\r
-0x1da6d, 0x1da74,\r
-0x1da76, 0x1da83,\r
-0x1da85, 0x1da86,\r
-0x1e14f, 0x1e14f,\r
-0x1ecac, 0x1ecac,\r
-0x1ed2e, 0x1ed2e,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f3fa,\r
-0x1f400, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-}; /* END of CR_So */\r
-\r
-/* PROPERTY: 'Soft_Dotted': Binary Property */\r
-static const OnigCodePoint\r
-CR_Soft_Dotted[] = { 31,\r
-0x0069, 0x006a,\r
-0x012f, 0x012f,\r
-0x0249, 0x0249,\r
-0x0268, 0x0268,\r
-0x029d, 0x029d,\r
-0x02b2, 0x02b2,\r
-0x03f3, 0x03f3,\r
-0x0456, 0x0456,\r
-0x0458, 0x0458,\r
-0x1d62, 0x1d62,\r
-0x1d96, 0x1d96,\r
-0x1da4, 0x1da4,\r
-0x1da8, 0x1da8,\r
-0x1e2d, 0x1e2d,\r
-0x1ecb, 0x1ecb,\r
-0x2071, 0x2071,\r
-0x2148, 0x2149,\r
-0x2c7c, 0x2c7c,\r
-0x1d422, 0x1d423,\r
-0x1d456, 0x1d457,\r
-0x1d48a, 0x1d48b,\r
-0x1d4be, 0x1d4bf,\r
-0x1d4f2, 0x1d4f3,\r
-0x1d526, 0x1d527,\r
-0x1d55a, 0x1d55b,\r
-0x1d58e, 0x1d58f,\r
-0x1d5c2, 0x1d5c3,\r
-0x1d5f6, 0x1d5f7,\r
-0x1d62a, 0x1d62b,\r
-0x1d65e, 0x1d65f,\r
-0x1d692, 0x1d693,\r
-}; /* END of CR_Soft_Dotted */\r
-\r
-/* PROPERTY: 'Sogdian': Script */\r
-static const OnigCodePoint\r
-CR_Sogdian[] = { 1,\r
-0x10f30, 0x10f59,\r
-}; /* END of CR_Sogdian */\r
-\r
-/* PROPERTY: 'Sora_Sompeng': Script */\r
-static const OnigCodePoint\r
-CR_Sora_Sompeng[] = { 2,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-}; /* END of CR_Sora_Sompeng */\r
-\r
-/* PROPERTY: 'Soyombo': Script */\r
-static const OnigCodePoint\r
-CR_Soyombo[] = { 1,\r
-0x11a50, 0x11aa2,\r
-}; /* END of CR_Soyombo */\r
-\r
-/* PROPERTY: 'Sundanese': Script */\r
-static const OnigCodePoint\r
-CR_Sundanese[] = { 2,\r
-0x1b80, 0x1bbf,\r
-0x1cc0, 0x1cc7,\r
-}; /* END of CR_Sundanese */\r
-\r
-/* PROPERTY: 'Syloti_Nagri': Script */\r
-static const OnigCodePoint\r
-CR_Syloti_Nagri[] = { 1,\r
-0xa800, 0xa82b,\r
-}; /* END of CR_Syloti_Nagri */\r
-\r
-/* PROPERTY: 'Syriac': Script */\r
-static const OnigCodePoint\r
-CR_Syriac[] = { 4,\r
-0x0700, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x074f,\r
-0x0860, 0x086a,\r
-}; /* END of CR_Syriac */\r
-\r
-/* PROPERTY: 'Tagalog': Script */\r
-static const OnigCodePoint\r
-CR_Tagalog[] = { 2,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-}; /* END of CR_Tagalog */\r
-\r
-/* PROPERTY: 'Tagbanwa': Script */\r
-static const OnigCodePoint\r
-CR_Tagbanwa[] = { 3,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-}; /* END of CR_Tagbanwa */\r
-\r
-/* PROPERTY: 'Tai_Le': Script */\r
-static const OnigCodePoint\r
-CR_Tai_Le[] = { 2,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-}; /* END of CR_Tai_Le */\r
-\r
-/* PROPERTY: 'Tai_Tham': Script */\r
-static const OnigCodePoint\r
-CR_Tai_Tham[] = { 5,\r
-0x1a20, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-}; /* END of CR_Tai_Tham */\r
-\r
-/* PROPERTY: 'Tai_Viet': Script */\r
-static const OnigCodePoint\r
-CR_Tai_Viet[] = { 2,\r
-0xaa80, 0xaac2,\r
-0xaadb, 0xaadf,\r
-}; /* END of CR_Tai_Viet */\r
-\r
-/* PROPERTY: 'Takri': Script */\r
-static const OnigCodePoint\r
-CR_Takri[] = { 2,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-}; /* END of CR_Takri */\r
-\r
-/* PROPERTY: 'Tamil': Script */\r
-static const OnigCodePoint\r
-CR_Tamil[] = { 18,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x11fff,\r
-}; /* END of CR_Tamil */\r
-\r
-/* PROPERTY: 'Tangut': Script */\r
-static const OnigCodePoint\r
-CR_Tangut[] = { 3,\r
-0x16fe0, 0x16fe0,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-}; /* END of CR_Tangut */\r
-\r
-/* PROPERTY: 'Telugu': Script */\r
-static const OnigCodePoint\r
-CR_Telugu[] = { 12,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c7f,\r
-}; /* END of CR_Telugu */\r
-\r
-/* PROPERTY: 'Terminal_Punctuation': Binary Property */\r
-static const OnigCodePoint\r
-CR_Terminal_Punctuation[] = { 102,\r
-0x0021, 0x0021,\r
-0x002c, 0x002c,\r
-0x002e, 0x002e,\r
-0x003a, 0x003b,\r
-0x003f, 0x003f,\r
-0x037e, 0x037e,\r
-0x0387, 0x0387,\r
-0x0589, 0x0589,\r
-0x05c3, 0x05c3,\r
-0x060c, 0x060c,\r
-0x061b, 0x061b,\r
-0x061e, 0x061f,\r
-0x06d4, 0x06d4,\r
-0x0700, 0x070a,\r
-0x070c, 0x070c,\r
-0x07f8, 0x07f9,\r
-0x0830, 0x083e,\r
-0x085e, 0x085e,\r
-0x0964, 0x0965,\r
-0x0e5a, 0x0e5b,\r
-0x0f08, 0x0f08,\r
-0x0f0d, 0x0f12,\r
-0x104a, 0x104b,\r
-0x1361, 0x1368,\r
-0x166e, 0x166e,\r
-0x16eb, 0x16ed,\r
-0x1735, 0x1736,\r
-0x17d4, 0x17d6,\r
-0x17da, 0x17da,\r
-0x1802, 0x1805,\r
-0x1808, 0x1809,\r
-0x1944, 0x1945,\r
-0x1aa8, 0x1aab,\r
-0x1b5a, 0x1b5b,\r
-0x1b5d, 0x1b5f,\r
-0x1c3b, 0x1c3f,\r
-0x1c7e, 0x1c7f,\r
-0x203c, 0x203d,\r
-0x2047, 0x2049,\r
-0x2e2e, 0x2e2e,\r
-0x2e3c, 0x2e3c,\r
-0x2e41, 0x2e41,\r
-0x2e4c, 0x2e4c,\r
-0x2e4e, 0x2e4f,\r
-0x3001, 0x3002,\r
-0xa4fe, 0xa4ff,\r
-0xa60d, 0xa60f,\r
-0xa6f3, 0xa6f7,\r
-0xa876, 0xa877,\r
-0xa8ce, 0xa8cf,\r
-0xa92f, 0xa92f,\r
-0xa9c7, 0xa9c9,\r
-0xaa5d, 0xaa5f,\r
-0xaadf, 0xaadf,\r
-0xaaf0, 0xaaf1,\r
-0xabeb, 0xabeb,\r
-0xfe50, 0xfe52,\r
-0xfe54, 0xfe57,\r
-0xff01, 0xff01,\r
-0xff0c, 0xff0c,\r
-0xff0e, 0xff0e,\r
-0xff1a, 0xff1b,\r
-0xff1f, 0xff1f,\r
-0xff61, 0xff61,\r
-0xff64, 0xff64,\r
-0x1039f, 0x1039f,\r
-0x103d0, 0x103d0,\r
-0x10857, 0x10857,\r
-0x1091f, 0x1091f,\r
-0x10a56, 0x10a57,\r
-0x10af0, 0x10af5,\r
-0x10b3a, 0x10b3f,\r
-0x10b99, 0x10b9c,\r
-0x10f55, 0x10f59,\r
-0x11047, 0x1104d,\r
-0x110be, 0x110c1,\r
-0x11141, 0x11143,\r
-0x111c5, 0x111c6,\r
-0x111cd, 0x111cd,\r
-0x111de, 0x111df,\r
-0x11238, 0x1123c,\r
-0x112a9, 0x112a9,\r
-0x1144b, 0x1144d,\r
-0x1145b, 0x1145b,\r
-0x115c2, 0x115c5,\r
-0x115c9, 0x115d7,\r
-0x11641, 0x11642,\r
-0x1173c, 0x1173e,\r
-0x11a42, 0x11a43,\r
-0x11a9b, 0x11a9c,\r
-0x11aa1, 0x11aa2,\r
-0x11c41, 0x11c43,\r
-0x11c71, 0x11c71,\r
-0x11ef7, 0x11ef8,\r
-0x12470, 0x12474,\r
-0x16a6e, 0x16a6f,\r
-0x16af5, 0x16af5,\r
-0x16b37, 0x16b39,\r
-0x16b44, 0x16b44,\r
-0x16e97, 0x16e98,\r
-0x1bc9f, 0x1bc9f,\r
-0x1da87, 0x1da8a,\r
-}; /* END of CR_Terminal_Punctuation */\r
-\r
-/* PROPERTY: 'Thaana': Script */\r
-static const OnigCodePoint\r
-CR_Thaana[] = { 1,\r
-0x0780, 0x07b1,\r
-}; /* END of CR_Thaana */\r
-\r
-/* PROPERTY: 'Thai': Script */\r
-static const OnigCodePoint\r
-CR_Thai[] = { 2,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e5b,\r
-}; /* END of CR_Thai */\r
-\r
-/* PROPERTY: 'Tibetan': Script */\r
-static const OnigCodePoint\r
-CR_Tibetan[] = { 7,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fd4,\r
-0x0fd9, 0x0fda,\r
-}; /* END of CR_Tibetan */\r
-\r
-/* PROPERTY: 'Tifinagh': Script */\r
-static const OnigCodePoint\r
-CR_Tifinagh[] = { 3,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d7f,\r
-}; /* END of CR_Tifinagh */\r
-\r
-/* PROPERTY: 'Tirhuta': Script */\r
-static const OnigCodePoint\r
-CR_Tirhuta[] = { 2,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-}; /* END of CR_Tirhuta */\r
-\r
-/* PROPERTY: 'Ugaritic': Script */\r
-static const OnigCodePoint\r
-CR_Ugaritic[] = { 2,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x1039f,\r
-}; /* END of CR_Ugaritic */\r
-\r
-/* PROPERTY: 'Unified_Ideograph': Binary Property */\r
-static const OnigCodePoint\r
-CR_Unified_Ideograph[] = { 14,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xfa0e, 0xfa0f,\r
-0xfa11, 0xfa11,\r
-0xfa13, 0xfa14,\r
-0xfa1f, 0xfa1f,\r
-0xfa21, 0xfa21,\r
-0xfa23, 0xfa24,\r
-0xfa27, 0xfa29,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-}; /* END of CR_Unified_Ideograph */\r
-\r
-/* PROPERTY: 'Unknown': Script */\r
-static const OnigCodePoint\r
-CR_Unknown[] = { 664,\r
-0x0378, 0x0379,\r
-0x0380, 0x0383,\r
-0x038b, 0x038b,\r
-0x038d, 0x038d,\r
-0x03a2, 0x03a2,\r
-0x0530, 0x0530,\r
-0x0557, 0x0558,\r
-0x058b, 0x058c,\r
-0x0590, 0x0590,\r
-0x05c8, 0x05cf,\r
-0x05eb, 0x05ee,\r
-0x05f5, 0x05ff,\r
-0x061d, 0x061d,\r
-0x070e, 0x070e,\r
-0x074b, 0x074c,\r
-0x07b2, 0x07bf,\r
-0x07fb, 0x07fc,\r
-0x082e, 0x082f,\r
-0x083f, 0x083f,\r
-0x085c, 0x085d,\r
-0x085f, 0x085f,\r
-0x086b, 0x089f,\r
-0x08b5, 0x08b5,\r
-0x08be, 0x08d2,\r
-0x0984, 0x0984,\r
-0x098d, 0x098e,\r
-0x0991, 0x0992,\r
-0x09a9, 0x09a9,\r
-0x09b1, 0x09b1,\r
-0x09b3, 0x09b5,\r
-0x09ba, 0x09bb,\r
-0x09c5, 0x09c6,\r
-0x09c9, 0x09ca,\r
-0x09cf, 0x09d6,\r
-0x09d8, 0x09db,\r
-0x09de, 0x09de,\r
-0x09e4, 0x09e5,\r
-0x09ff, 0x0a00,\r
-0x0a04, 0x0a04,\r
-0x0a0b, 0x0a0e,\r
-0x0a11, 0x0a12,\r
-0x0a29, 0x0a29,\r
-0x0a31, 0x0a31,\r
-0x0a34, 0x0a34,\r
-0x0a37, 0x0a37,\r
-0x0a3a, 0x0a3b,\r
-0x0a3d, 0x0a3d,\r
-0x0a43, 0x0a46,\r
-0x0a49, 0x0a4a,\r
-0x0a4e, 0x0a50,\r
-0x0a52, 0x0a58,\r
-0x0a5d, 0x0a5d,\r
-0x0a5f, 0x0a65,\r
-0x0a77, 0x0a80,\r
-0x0a84, 0x0a84,\r
-0x0a8e, 0x0a8e,\r
-0x0a92, 0x0a92,\r
-0x0aa9, 0x0aa9,\r
-0x0ab1, 0x0ab1,\r
-0x0ab4, 0x0ab4,\r
-0x0aba, 0x0abb,\r
-0x0ac6, 0x0ac6,\r
-0x0aca, 0x0aca,\r
-0x0ace, 0x0acf,\r
-0x0ad1, 0x0adf,\r
-0x0ae4, 0x0ae5,\r
-0x0af2, 0x0af8,\r
-0x0b00, 0x0b00,\r
-0x0b04, 0x0b04,\r
-0x0b0d, 0x0b0e,\r
-0x0b11, 0x0b12,\r
-0x0b29, 0x0b29,\r
-0x0b31, 0x0b31,\r
-0x0b34, 0x0b34,\r
-0x0b3a, 0x0b3b,\r
-0x0b45, 0x0b46,\r
-0x0b49, 0x0b4a,\r
-0x0b4e, 0x0b55,\r
-0x0b58, 0x0b5b,\r
-0x0b5e, 0x0b5e,\r
-0x0b64, 0x0b65,\r
-0x0b78, 0x0b81,\r
-0x0b84, 0x0b84,\r
-0x0b8b, 0x0b8d,\r
-0x0b91, 0x0b91,\r
-0x0b96, 0x0b98,\r
-0x0b9b, 0x0b9b,\r
-0x0b9d, 0x0b9d,\r
-0x0ba0, 0x0ba2,\r
-0x0ba5, 0x0ba7,\r
-0x0bab, 0x0bad,\r
-0x0bba, 0x0bbd,\r
-0x0bc3, 0x0bc5,\r
-0x0bc9, 0x0bc9,\r
-0x0bce, 0x0bcf,\r
-0x0bd1, 0x0bd6,\r
-0x0bd8, 0x0be5,\r
-0x0bfb, 0x0bff,\r
-0x0c0d, 0x0c0d,\r
-0x0c11, 0x0c11,\r
-0x0c29, 0x0c29,\r
-0x0c3a, 0x0c3c,\r
-0x0c45, 0x0c45,\r
-0x0c49, 0x0c49,\r
-0x0c4e, 0x0c54,\r
-0x0c57, 0x0c57,\r
-0x0c5b, 0x0c5f,\r
-0x0c64, 0x0c65,\r
-0x0c70, 0x0c76,\r
-0x0c8d, 0x0c8d,\r
-0x0c91, 0x0c91,\r
-0x0ca9, 0x0ca9,\r
-0x0cb4, 0x0cb4,\r
-0x0cba, 0x0cbb,\r
-0x0cc5, 0x0cc5,\r
-0x0cc9, 0x0cc9,\r
-0x0cce, 0x0cd4,\r
-0x0cd7, 0x0cdd,\r
-0x0cdf, 0x0cdf,\r
-0x0ce4, 0x0ce5,\r
-0x0cf0, 0x0cf0,\r
-0x0cf3, 0x0cff,\r
-0x0d04, 0x0d04,\r
-0x0d0d, 0x0d0d,\r
-0x0d11, 0x0d11,\r
-0x0d45, 0x0d45,\r
-0x0d49, 0x0d49,\r
-0x0d50, 0x0d53,\r
-0x0d64, 0x0d65,\r
-0x0d80, 0x0d81,\r
-0x0d84, 0x0d84,\r
-0x0d97, 0x0d99,\r
-0x0db2, 0x0db2,\r
-0x0dbc, 0x0dbc,\r
-0x0dbe, 0x0dbf,\r
-0x0dc7, 0x0dc9,\r
-0x0dcb, 0x0dce,\r
-0x0dd5, 0x0dd5,\r
-0x0dd7, 0x0dd7,\r
-0x0de0, 0x0de5,\r
-0x0df0, 0x0df1,\r
-0x0df5, 0x0e00,\r
-0x0e3b, 0x0e3e,\r
-0x0e5c, 0x0e80,\r
-0x0e83, 0x0e83,\r
-0x0e85, 0x0e85,\r
-0x0e8b, 0x0e8b,\r
-0x0ea4, 0x0ea4,\r
-0x0ea6, 0x0ea6,\r
-0x0ebe, 0x0ebf,\r
-0x0ec5, 0x0ec5,\r
-0x0ec7, 0x0ec7,\r
-0x0ece, 0x0ecf,\r
-0x0eda, 0x0edb,\r
-0x0ee0, 0x0eff,\r
-0x0f48, 0x0f48,\r
-0x0f6d, 0x0f70,\r
-0x0f98, 0x0f98,\r
-0x0fbd, 0x0fbd,\r
-0x0fcd, 0x0fcd,\r
-0x0fdb, 0x0fff,\r
-0x10c6, 0x10c6,\r
-0x10c8, 0x10cc,\r
-0x10ce, 0x10cf,\r
-0x1249, 0x1249,\r
-0x124e, 0x124f,\r
-0x1257, 0x1257,\r
-0x1259, 0x1259,\r
-0x125e, 0x125f,\r
-0x1289, 0x1289,\r
-0x128e, 0x128f,\r
-0x12b1, 0x12b1,\r
-0x12b6, 0x12b7,\r
-0x12bf, 0x12bf,\r
-0x12c1, 0x12c1,\r
-0x12c6, 0x12c7,\r
-0x12d7, 0x12d7,\r
-0x1311, 0x1311,\r
-0x1316, 0x1317,\r
-0x135b, 0x135c,\r
-0x137d, 0x137f,\r
-0x139a, 0x139f,\r
-0x13f6, 0x13f7,\r
-0x13fe, 0x13ff,\r
-0x169d, 0x169f,\r
-0x16f9, 0x16ff,\r
-0x170d, 0x170d,\r
-0x1715, 0x171f,\r
-0x1737, 0x173f,\r
-0x1754, 0x175f,\r
-0x176d, 0x176d,\r
-0x1771, 0x1771,\r
-0x1774, 0x177f,\r
-0x17de, 0x17df,\r
-0x17ea, 0x17ef,\r
-0x17fa, 0x17ff,\r
-0x180f, 0x180f,\r
-0x181a, 0x181f,\r
-0x1879, 0x187f,\r
-0x18ab, 0x18af,\r
-0x18f6, 0x18ff,\r
-0x191f, 0x191f,\r
-0x192c, 0x192f,\r
-0x193c, 0x193f,\r
-0x1941, 0x1943,\r
-0x196e, 0x196f,\r
-0x1975, 0x197f,\r
-0x19ac, 0x19af,\r
-0x19ca, 0x19cf,\r
-0x19db, 0x19dd,\r
-0x1a1c, 0x1a1d,\r
-0x1a5f, 0x1a5f,\r
-0x1a7d, 0x1a7e,\r
-0x1a8a, 0x1a8f,\r
-0x1a9a, 0x1a9f,\r
-0x1aae, 0x1aaf,\r
-0x1abf, 0x1aff,\r
-0x1b4c, 0x1b4f,\r
-0x1b7d, 0x1b7f,\r
-0x1bf4, 0x1bfb,\r
-0x1c38, 0x1c3a,\r
-0x1c4a, 0x1c4c,\r
-0x1c89, 0x1c8f,\r
-0x1cbb, 0x1cbc,\r
-0x1cc8, 0x1ccf,\r
-0x1cfb, 0x1cff,\r
-0x1dfa, 0x1dfa,\r
-0x1f16, 0x1f17,\r
-0x1f1e, 0x1f1f,\r
-0x1f46, 0x1f47,\r
-0x1f4e, 0x1f4f,\r
-0x1f58, 0x1f58,\r
-0x1f5a, 0x1f5a,\r
-0x1f5c, 0x1f5c,\r
-0x1f5e, 0x1f5e,\r
-0x1f7e, 0x1f7f,\r
-0x1fb5, 0x1fb5,\r
-0x1fc5, 0x1fc5,\r
-0x1fd4, 0x1fd5,\r
-0x1fdc, 0x1fdc,\r
-0x1ff0, 0x1ff1,\r
-0x1ff5, 0x1ff5,\r
-0x1fff, 0x1fff,\r
-0x2065, 0x2065,\r
-0x2072, 0x2073,\r
-0x208f, 0x208f,\r
-0x209d, 0x209f,\r
-0x20c0, 0x20cf,\r
-0x20f1, 0x20ff,\r
-0x218c, 0x218f,\r
-0x2427, 0x243f,\r
-0x244b, 0x245f,\r
-0x2b74, 0x2b75,\r
-0x2b96, 0x2b97,\r
-0x2c2f, 0x2c2f,\r
-0x2c5f, 0x2c5f,\r
-0x2cf4, 0x2cf8,\r
-0x2d26, 0x2d26,\r
-0x2d28, 0x2d2c,\r
-0x2d2e, 0x2d2f,\r
-0x2d68, 0x2d6e,\r
-0x2d71, 0x2d7e,\r
-0x2d97, 0x2d9f,\r
-0x2da7, 0x2da7,\r
-0x2daf, 0x2daf,\r
-0x2db7, 0x2db7,\r
-0x2dbf, 0x2dbf,\r
-0x2dc7, 0x2dc7,\r
-0x2dcf, 0x2dcf,\r
-0x2dd7, 0x2dd7,\r
-0x2ddf, 0x2ddf,\r
-0x2e50, 0x2e7f,\r
-0x2e9a, 0x2e9a,\r
-0x2ef4, 0x2eff,\r
-0x2fd6, 0x2fef,\r
-0x2ffc, 0x2fff,\r
-0x3040, 0x3040,\r
-0x3097, 0x3098,\r
-0x3100, 0x3104,\r
-0x3130, 0x3130,\r
-0x318f, 0x318f,\r
-0x31bb, 0x31bf,\r
-0x31e4, 0x31ef,\r
-0x321f, 0x321f,\r
-0x4db6, 0x4dbf,\r
-0x9ff0, 0x9fff,\r
-0xa48d, 0xa48f,\r
-0xa4c7, 0xa4cf,\r
-0xa62c, 0xa63f,\r
-0xa6f8, 0xa6ff,\r
-0xa7c0, 0xa7c1,\r
-0xa7c7, 0xa7f6,\r
-0xa82c, 0xa82f,\r
-0xa83a, 0xa83f,\r
-0xa878, 0xa87f,\r
-0xa8c6, 0xa8cd,\r
-0xa8da, 0xa8df,\r
-0xa954, 0xa95e,\r
-0xa97d, 0xa97f,\r
-0xa9ce, 0xa9ce,\r
-0xa9da, 0xa9dd,\r
-0xa9ff, 0xa9ff,\r
-0xaa37, 0xaa3f,\r
-0xaa4e, 0xaa4f,\r
-0xaa5a, 0xaa5b,\r
-0xaac3, 0xaada,\r
-0xaaf7, 0xab00,\r
-0xab07, 0xab08,\r
-0xab0f, 0xab10,\r
-0xab17, 0xab1f,\r
-0xab27, 0xab27,\r
-0xab2f, 0xab2f,\r
-0xab68, 0xab6f,\r
-0xabee, 0xabef,\r
-0xabfa, 0xabff,\r
-0xd7a4, 0xd7af,\r
-0xd7c7, 0xd7ca,\r
-0xd7fc, 0xf8ff,\r
-0xfa6e, 0xfa6f,\r
-0xfada, 0xfaff,\r
-0xfb07, 0xfb12,\r
-0xfb18, 0xfb1c,\r
-0xfb37, 0xfb37,\r
-0xfb3d, 0xfb3d,\r
-0xfb3f, 0xfb3f,\r
-0xfb42, 0xfb42,\r
-0xfb45, 0xfb45,\r
-0xfbc2, 0xfbd2,\r
-0xfd40, 0xfd4f,\r
-0xfd90, 0xfd91,\r
-0xfdc8, 0xfdef,\r
-0xfdfe, 0xfdff,\r
-0xfe1a, 0xfe1f,\r
-0xfe53, 0xfe53,\r
-0xfe67, 0xfe67,\r
-0xfe6c, 0xfe6f,\r
-0xfe75, 0xfe75,\r
-0xfefd, 0xfefe,\r
-0xff00, 0xff00,\r
-0xffbf, 0xffc1,\r
-0xffc8, 0xffc9,\r
-0xffd0, 0xffd1,\r
-0xffd8, 0xffd9,\r
-0xffdd, 0xffdf,\r
-0xffe7, 0xffe7,\r
-0xffef, 0xfff8,\r
-0xfffe, 0xffff,\r
-0x1000c, 0x1000c,\r
-0x10027, 0x10027,\r
-0x1003b, 0x1003b,\r
-0x1003e, 0x1003e,\r
-0x1004e, 0x1004f,\r
-0x1005e, 0x1007f,\r
-0x100fb, 0x100ff,\r
-0x10103, 0x10106,\r
-0x10134, 0x10136,\r
-0x1018f, 0x1018f,\r
-0x1019c, 0x1019f,\r
-0x101a1, 0x101cf,\r
-0x101fe, 0x1027f,\r
-0x1029d, 0x1029f,\r
-0x102d1, 0x102df,\r
-0x102fc, 0x102ff,\r
-0x10324, 0x1032c,\r
-0x1034b, 0x1034f,\r
-0x1037b, 0x1037f,\r
-0x1039e, 0x1039e,\r
-0x103c4, 0x103c7,\r
-0x103d6, 0x103ff,\r
-0x1049e, 0x1049f,\r
-0x104aa, 0x104af,\r
-0x104d4, 0x104d7,\r
-0x104fc, 0x104ff,\r
-0x10528, 0x1052f,\r
-0x10564, 0x1056e,\r
-0x10570, 0x105ff,\r
-0x10737, 0x1073f,\r
-0x10756, 0x1075f,\r
-0x10768, 0x107ff,\r
-0x10806, 0x10807,\r
-0x10809, 0x10809,\r
-0x10836, 0x10836,\r
-0x10839, 0x1083b,\r
-0x1083d, 0x1083e,\r
-0x10856, 0x10856,\r
-0x1089f, 0x108a6,\r
-0x108b0, 0x108df,\r
-0x108f3, 0x108f3,\r
-0x108f6, 0x108fa,\r
-0x1091c, 0x1091e,\r
-0x1093a, 0x1093e,\r
-0x10940, 0x1097f,\r
-0x109b8, 0x109bb,\r
-0x109d0, 0x109d1,\r
-0x10a04, 0x10a04,\r
-0x10a07, 0x10a0b,\r
-0x10a14, 0x10a14,\r
-0x10a18, 0x10a18,\r
-0x10a36, 0x10a37,\r
-0x10a3b, 0x10a3e,\r
-0x10a49, 0x10a4f,\r
-0x10a59, 0x10a5f,\r
-0x10aa0, 0x10abf,\r
-0x10ae7, 0x10aea,\r
-0x10af7, 0x10aff,\r
-0x10b36, 0x10b38,\r
-0x10b56, 0x10b57,\r
-0x10b73, 0x10b77,\r
-0x10b92, 0x10b98,\r
-0x10b9d, 0x10ba8,\r
-0x10bb0, 0x10bff,\r
-0x10c49, 0x10c7f,\r
-0x10cb3, 0x10cbf,\r
-0x10cf3, 0x10cf9,\r
-0x10d28, 0x10d2f,\r
-0x10d3a, 0x10e5f,\r
-0x10e7f, 0x10eff,\r
-0x10f28, 0x10f2f,\r
-0x10f5a, 0x10fdf,\r
-0x10ff7, 0x10fff,\r
-0x1104e, 0x11051,\r
-0x11070, 0x1107e,\r
-0x110c2, 0x110cc,\r
-0x110ce, 0x110cf,\r
-0x110e9, 0x110ef,\r
-0x110fa, 0x110ff,\r
-0x11135, 0x11135,\r
-0x11147, 0x1114f,\r
-0x11177, 0x1117f,\r
-0x111ce, 0x111cf,\r
-0x111e0, 0x111e0,\r
-0x111f5, 0x111ff,\r
-0x11212, 0x11212,\r
-0x1123f, 0x1127f,\r
-0x11287, 0x11287,\r
-0x11289, 0x11289,\r
-0x1128e, 0x1128e,\r
-0x1129e, 0x1129e,\r
-0x112aa, 0x112af,\r
-0x112eb, 0x112ef,\r
-0x112fa, 0x112ff,\r
-0x11304, 0x11304,\r
-0x1130d, 0x1130e,\r
-0x11311, 0x11312,\r
-0x11329, 0x11329,\r
-0x11331, 0x11331,\r
-0x11334, 0x11334,\r
-0x1133a, 0x1133a,\r
-0x11345, 0x11346,\r
-0x11349, 0x1134a,\r
-0x1134e, 0x1134f,\r
-0x11351, 0x11356,\r
-0x11358, 0x1135c,\r
-0x11364, 0x11365,\r
-0x1136d, 0x1136f,\r
-0x11375, 0x113ff,\r
-0x1145a, 0x1145a,\r
-0x1145c, 0x1145c,\r
-0x11460, 0x1147f,\r
-0x114c8, 0x114cf,\r
-0x114da, 0x1157f,\r
-0x115b6, 0x115b7,\r
-0x115de, 0x115ff,\r
-0x11645, 0x1164f,\r
-0x1165a, 0x1165f,\r
-0x1166d, 0x1167f,\r
-0x116b9, 0x116bf,\r
-0x116ca, 0x116ff,\r
-0x1171b, 0x1171c,\r
-0x1172c, 0x1172f,\r
-0x11740, 0x117ff,\r
-0x1183c, 0x1189f,\r
-0x118f3, 0x118fe,\r
-0x11900, 0x1199f,\r
-0x119a8, 0x119a9,\r
-0x119d8, 0x119d9,\r
-0x119e5, 0x119ff,\r
-0x11a48, 0x11a4f,\r
-0x11aa3, 0x11abf,\r
-0x11af9, 0x11bff,\r
-0x11c09, 0x11c09,\r
-0x11c37, 0x11c37,\r
-0x11c46, 0x11c4f,\r
-0x11c6d, 0x11c6f,\r
-0x11c90, 0x11c91,\r
-0x11ca8, 0x11ca8,\r
-0x11cb7, 0x11cff,\r
-0x11d07, 0x11d07,\r
-0x11d0a, 0x11d0a,\r
-0x11d37, 0x11d39,\r
-0x11d3b, 0x11d3b,\r
-0x11d3e, 0x11d3e,\r
-0x11d48, 0x11d4f,\r
-0x11d5a, 0x11d5f,\r
-0x11d66, 0x11d66,\r
-0x11d69, 0x11d69,\r
-0x11d8f, 0x11d8f,\r
-0x11d92, 0x11d92,\r
-0x11d99, 0x11d9f,\r
-0x11daa, 0x11edf,\r
-0x11ef9, 0x11fbf,\r
-0x11ff2, 0x11ffe,\r
-0x1239a, 0x123ff,\r
-0x1246f, 0x1246f,\r
-0x12475, 0x1247f,\r
-0x12544, 0x12fff,\r
-0x1342f, 0x1342f,\r
-0x13439, 0x143ff,\r
-0x14647, 0x167ff,\r
-0x16a39, 0x16a3f,\r
-0x16a5f, 0x16a5f,\r
-0x16a6a, 0x16a6d,\r
-0x16a70, 0x16acf,\r
-0x16aee, 0x16aef,\r
-0x16af6, 0x16aff,\r
-0x16b46, 0x16b4f,\r
-0x16b5a, 0x16b5a,\r
-0x16b62, 0x16b62,\r
-0x16b78, 0x16b7c,\r
-0x16b90, 0x16e3f,\r
-0x16e9b, 0x16eff,\r
-0x16f4b, 0x16f4e,\r
-0x16f88, 0x16f8e,\r
-0x16fa0, 0x16fdf,\r
-0x16fe4, 0x16fff,\r
-0x187f8, 0x187ff,\r
-0x18af3, 0x1afff,\r
-0x1b11f, 0x1b14f,\r
-0x1b153, 0x1b163,\r
-0x1b168, 0x1b16f,\r
-0x1b2fc, 0x1bbff,\r
-0x1bc6b, 0x1bc6f,\r
-0x1bc7d, 0x1bc7f,\r
-0x1bc89, 0x1bc8f,\r
-0x1bc9a, 0x1bc9b,\r
-0x1bca4, 0x1cfff,\r
-0x1d0f6, 0x1d0ff,\r
-0x1d127, 0x1d128,\r
-0x1d1e9, 0x1d1ff,\r
-0x1d246, 0x1d2df,\r
-0x1d2f4, 0x1d2ff,\r
-0x1d357, 0x1d35f,\r
-0x1d379, 0x1d3ff,\r
-0x1d455, 0x1d455,\r
-0x1d49d, 0x1d49d,\r
-0x1d4a0, 0x1d4a1,\r
-0x1d4a3, 0x1d4a4,\r
-0x1d4a7, 0x1d4a8,\r
-0x1d4ad, 0x1d4ad,\r
-0x1d4ba, 0x1d4ba,\r
-0x1d4bc, 0x1d4bc,\r
-0x1d4c4, 0x1d4c4,\r
-0x1d506, 0x1d506,\r
-0x1d50b, 0x1d50c,\r
-0x1d515, 0x1d515,\r
-0x1d51d, 0x1d51d,\r
-0x1d53a, 0x1d53a,\r
-0x1d53f, 0x1d53f,\r
-0x1d545, 0x1d545,\r
-0x1d547, 0x1d549,\r
-0x1d551, 0x1d551,\r
-0x1d6a6, 0x1d6a7,\r
-0x1d7cc, 0x1d7cd,\r
-0x1da8c, 0x1da9a,\r
-0x1daa0, 0x1daa0,\r
-0x1dab0, 0x1dfff,\r
-0x1e007, 0x1e007,\r
-0x1e019, 0x1e01a,\r
-0x1e022, 0x1e022,\r
-0x1e025, 0x1e025,\r
-0x1e02b, 0x1e0ff,\r
-0x1e12d, 0x1e12f,\r
-0x1e13e, 0x1e13f,\r
-0x1e14a, 0x1e14d,\r
-0x1e150, 0x1e2bf,\r
-0x1e2fa, 0x1e2fe,\r
-0x1e300, 0x1e7ff,\r
-0x1e8c5, 0x1e8c6,\r
-0x1e8d7, 0x1e8ff,\r
-0x1e94c, 0x1e94f,\r
-0x1e95a, 0x1e95d,\r
-0x1e960, 0x1ec70,\r
-0x1ecb5, 0x1ed00,\r
-0x1ed3e, 0x1edff,\r
-0x1ee04, 0x1ee04,\r
-0x1ee20, 0x1ee20,\r
-0x1ee23, 0x1ee23,\r
-0x1ee25, 0x1ee26,\r
-0x1ee28, 0x1ee28,\r
-0x1ee33, 0x1ee33,\r
-0x1ee38, 0x1ee38,\r
-0x1ee3a, 0x1ee3a,\r
-0x1ee3c, 0x1ee41,\r
-0x1ee43, 0x1ee46,\r
-0x1ee48, 0x1ee48,\r
-0x1ee4a, 0x1ee4a,\r
-0x1ee4c, 0x1ee4c,\r
-0x1ee50, 0x1ee50,\r
-0x1ee53, 0x1ee53,\r
-0x1ee55, 0x1ee56,\r
-0x1ee58, 0x1ee58,\r
-0x1ee5a, 0x1ee5a,\r
-0x1ee5c, 0x1ee5c,\r
-0x1ee5e, 0x1ee5e,\r
-0x1ee60, 0x1ee60,\r
-0x1ee63, 0x1ee63,\r
-0x1ee65, 0x1ee66,\r
-0x1ee6b, 0x1ee6b,\r
-0x1ee73, 0x1ee73,\r
-0x1ee78, 0x1ee78,\r
-0x1ee7d, 0x1ee7d,\r
-0x1ee7f, 0x1ee7f,\r
-0x1ee8a, 0x1ee8a,\r
-0x1ee9c, 0x1eea0,\r
-0x1eea4, 0x1eea4,\r
-0x1eeaa, 0x1eeaa,\r
-0x1eebc, 0x1eeef,\r
-0x1eef2, 0x1efff,\r
-0x1f02c, 0x1f02f,\r
-0x1f094, 0x1f09f,\r
-0x1f0af, 0x1f0b0,\r
-0x1f0c0, 0x1f0c0,\r
-0x1f0d0, 0x1f0d0,\r
-0x1f0f6, 0x1f0ff,\r
-0x1f10d, 0x1f10f,\r
-0x1f16d, 0x1f16f,\r
-0x1f1ad, 0x1f1e5,\r
-0x1f203, 0x1f20f,\r
-0x1f23c, 0x1f23f,\r
-0x1f249, 0x1f24f,\r
-0x1f252, 0x1f25f,\r
-0x1f266, 0x1f2ff,\r
-0x1f6d6, 0x1f6df,\r
-0x1f6ed, 0x1f6ef,\r
-0x1f6fb, 0x1f6ff,\r
-0x1f774, 0x1f77f,\r
-0x1f7d9, 0x1f7df,\r
-0x1f7ec, 0x1f7ff,\r
-0x1f80c, 0x1f80f,\r
-0x1f848, 0x1f84f,\r
-0x1f85a, 0x1f85f,\r
-0x1f888, 0x1f88f,\r
-0x1f8ae, 0x1f8ff,\r
-0x1f90c, 0x1f90c,\r
-0x1f972, 0x1f972,\r
-0x1f977, 0x1f979,\r
-0x1f9a3, 0x1f9a4,\r
-0x1f9ab, 0x1f9ad,\r
-0x1f9cb, 0x1f9cc,\r
-0x1fa54, 0x1fa5f,\r
-0x1fa6e, 0x1fa6f,\r
-0x1fa74, 0x1fa77,\r
-0x1fa7b, 0x1fa7f,\r
-0x1fa83, 0x1fa8f,\r
-0x1fa96, 0x1ffff,\r
-0x2a6d7, 0x2a6ff,\r
-0x2b735, 0x2b73f,\r
-0x2b81e, 0x2b81f,\r
-0x2cea2, 0x2ceaf,\r
-0x2ebe1, 0x2f7ff,\r
-0x2fa1e, 0xe0000,\r
-0xe0002, 0xe001f,\r
-0xe0080, 0xe00ff,\r
-0xe01f0, 0x10ffff,\r
-}; /* END of CR_Unknown */\r
-\r
-/* PROPERTY: 'Uppercase': Derived Property */\r
-#define CR_Uppercase CR_Upper\r
-\r
-/* PROPERTY: 'Vai': Script */\r
-static const OnigCodePoint\r
-CR_Vai[] = { 1,\r
-0xa500, 0xa62b,\r
-}; /* END of CR_Vai */\r
-\r
-/* PROPERTY: 'Variation_Selector': Binary Property */\r
-static const OnigCodePoint\r
-CR_Variation_Selector[] = { 3,\r
-0x180b, 0x180d,\r
-0xfe00, 0xfe0f,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Variation_Selector */\r
-\r
-/* PROPERTY: 'Wancho': Script */\r
-static const OnigCodePoint\r
-CR_Wancho[] = { 2,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-}; /* END of CR_Wancho */\r
-\r
-/* PROPERTY: 'Warang_Citi': Script */\r
-static const OnigCodePoint\r
-CR_Warang_Citi[] = { 2,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-}; /* END of CR_Warang_Citi */\r
-\r
-/* PROPERTY: 'White_Space': Binary Property */\r
-#define CR_White_Space CR_Space\r
-\r
-/* PROPERTY: 'XID_Continue': Derived Property */\r
-static const OnigCodePoint\r
-CR_XID_Continue[] = { 720,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x005f, 0x005f,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00b7, 0x00b7,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0300, 0x0374,\r
-0x0376, 0x0377,\r
-0x037b, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x0483, 0x0487,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06df, 0x06e8,\r
-0x06ea, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x07fd, 0x07fd,\r
-0x0800, 0x082d,\r
-0x0840, 0x085b,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e4e,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f18, 0x0f19,\r
-0x0f20, 0x0f29,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f84,\r
-0x0f86, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x1000, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x135f,\r
-0x1369, 0x1371,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1734,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17d3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x180b, 0x180d,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1ab0, 0x1abd,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1bf3,\r
-0x1c00, 0x1c37,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x203f, 0x2040,\r
-0x2054, 0x2054,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x20d0, 0x20dc,\r
-0x20e1, 0x20e1,\r
-0x20e5, 0x20f0,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2118, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x3005, 0x3007,\r
-0x3021, 0x302f,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x3099, 0x309a,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa66f,\r
-0xa674, 0xa67d,\r
-0xa67f, 0xa6f1,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8e0, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92d,\r
-0xa930, 0xa953,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9c0,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabec, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfc5d,\r
-0xfc64, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdf9,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0xfe33, 0xfe34,\r
-0xfe4d, 0xfe4f,\r
-0xfe71, 0xfe71,\r
-0xfe73, 0xfe73,\r
-0xfe77, 0xfe77,\r
-0xfe79, 0xfe79,\r
-0xfe7b, 0xfe7b,\r
-0xfe7d, 0xfe7d,\r
-0xfe7f, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff3f, 0xff3f,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x101fd, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102e0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae6,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f50,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11046,\r
-0x11066, 0x1106f,\r
-0x1107f, 0x110ba,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11173,\r
-0x11176, 0x11176,\r
-0x11180, 0x111c4,\r
-0x111c9, 0x111cc,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145e, 0x1145f,\r
-0x11480, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115c0,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x11739,\r
-0x11800, 0x1183a,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a50, 0x11a99,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af4,\r
-0x16b00, 0x16b36,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_XID_Continue */\r
-\r
-/* PROPERTY: 'XID_Start': Derived Property */\r
-static const OnigCodePoint\r
-CR_XID_Start[] = { 616,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037b, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0620, 0x064a,\r
-0x066e, 0x066f,\r
-0x0671, 0x06d3,\r
-0x06d5, 0x06d5,\r
-0x06e5, 0x06e6,\r
-0x06ee, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x0710,\r
-0x0712, 0x072f,\r
-0x074d, 0x07a5,\r
-0x07b1, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0815,\r
-0x081a, 0x081a,\r
-0x0824, 0x0824,\r
-0x0828, 0x0828,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x0904, 0x0939,\r
-0x093d, 0x093d,\r
-0x0950, 0x0950,\r
-0x0958, 0x0961,\r
-0x0971, 0x0980,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09bd,\r
-0x09ce, 0x09ce,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e1,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a72, 0x0a74,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0abd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae1,\r
-0x0af9, 0x0af9,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b3d,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b61,\r
-0x0b71, 0x0b71,\r
-0x0b83, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bd0, 0x0bd0,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c3d,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c61,\r
-0x0c80, 0x0c80,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cbd,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce1,\r
-0x0cf1, 0x0cf2,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d3d,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d56,\r
-0x0d5f, 0x0d61,\r
-0x0d7a, 0x0d7f,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0e01, 0x0e30,\r
-0x0e32, 0x0e32,\r
-0x0e40, 0x0e46,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb0,\r
-0x0eb2, 0x0eb2,\r
-0x0ebd, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f88, 0x0f8c,\r
-0x1000, 0x102a,\r
-0x103f, 0x103f,\r
-0x1050, 0x1055,\r
-0x105a, 0x105d,\r
-0x1061, 0x1061,\r
-0x1065, 0x1066,\r
-0x106e, 0x1070,\r
-0x1075, 0x1081,\r
-0x108e, 0x108e,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1711,\r
-0x1720, 0x1731,\r
-0x1740, 0x1751,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1780, 0x17b3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1878,\r
-0x1880, 0x18a8,\r
-0x18aa, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a16,\r
-0x1a20, 0x1a54,\r
-0x1aa7, 0x1aa7,\r
-0x1b05, 0x1b33,\r
-0x1b45, 0x1b4b,\r
-0x1b83, 0x1ba0,\r
-0x1bae, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1c00, 0x1c23,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2118, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa67f, 0xa69d,\r
-0xa6a0, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa801,\r
-0xa803, 0xa805,\r
-0xa807, 0xa80a,\r
-0xa80c, 0xa822,\r
-0xa840, 0xa873,\r
-0xa882, 0xa8b3,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8fe,\r
-0xa90a, 0xa925,\r
-0xa930, 0xa946,\r
-0xa960, 0xa97c,\r
-0xa984, 0xa9b2,\r
-0xa9cf, 0xa9cf,\r
-0xa9e0, 0xa9e4,\r
-0xa9e6, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa28,\r
-0xaa40, 0xaa42,\r
-0xaa44, 0xaa4b,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaa7a,\r
-0xaa7e, 0xaaaf,\r
-0xaab1, 0xaab1,\r
-0xaab5, 0xaab6,\r
-0xaab9, 0xaabd,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaea,\r
-0xaaf2, 0xaaf4,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabe2,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb1d,\r
-0xfb1f, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfc5d,\r
-0xfc64, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdf9,\r
-0xfe71, 0xfe71,\r
-0xfe73, 0xfe73,\r
-0xfe77, 0xfe77,\r
-0xfe79, 0xfe79,\r
-0xfe7b, 0xfe7b,\r
-0xfe7d, 0xfe7d,\r
-0xfe7f, 0xfefc,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xff9d,\r
-0xffa0, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x10375,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a00,\r
-0x10a10, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d23,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11003, 0x11037,\r
-0x11083, 0x110af,\r
-0x110d0, 0x110e8,\r
-0x11103, 0x11126,\r
-0x11144, 0x11144,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11183, 0x111b2,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x1122b,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112de,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x1133d,\r
-0x11350, 0x11350,\r
-0x1135d, 0x11361,\r
-0x11400, 0x11434,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114af,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115ae,\r
-0x115d8, 0x115db,\r
-0x11600, 0x1162f,\r
-0x11644, 0x11644,\r
-0x11680, 0x116aa,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x11800, 0x1182b,\r
-0x118a0, 0x118df,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d0,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e3,\r
-0x11a00, 0x11a00,\r
-0x11a0b, 0x11a32,\r
-0x11a3a, 0x11a3a,\r
-0x11a50, 0x11a50,\r
-0x11a5c, 0x11a89,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c2e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d30,\r
-0x11d46, 0x11d46,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d89,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef2,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f50, 0x16f50,\r
-0x16f93, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e94b, 0x1e94b,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_XID_Start */\r
-\r
-/* PROPERTY: 'Yi': Script */\r
-static const OnigCodePoint\r
-CR_Yi[] = { 2,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-}; /* END of CR_Yi */\r
-\r
-/* PROPERTY: 'Z': Major Category */\r
-static const OnigCodePoint\r
-CR_Z[] = { 8,\r
-0x0020, 0x0020,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x2028, 0x2029,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Z */\r
-\r
-/* PROPERTY: 'Zanabazar_Square': Script */\r
-static const OnigCodePoint\r
-CR_Zanabazar_Square[] = { 1,\r
-0x11a00, 0x11a47,\r
-}; /* END of CR_Zanabazar_Square */\r
-\r
-/* PROPERTY: 'Zl': General Category */\r
-static const OnigCodePoint\r
-CR_Zl[] = { 1,\r
-0x2028, 0x2028,\r
-}; /* END of CR_Zl */\r
-\r
-/* PROPERTY: 'Zp': General Category */\r
-static const OnigCodePoint\r
-CR_Zp[] = { 1,\r
-0x2029, 0x2029,\r
-}; /* END of CR_Zp */\r
-\r
-/* PROPERTY: 'Zs': General Category */\r
-static const OnigCodePoint\r
-CR_Zs[] = { 7,\r
-0x0020, 0x0020,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Zs */\r
-\r
-/* PROPERTY: 'In_Basic_Latin': Block */\r
-#define CR_In_Basic_Latin CR_ASCII\r
-\r
-/* PROPERTY: 'In_Latin_1_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_1_Supplement[] = { 1,\r
-0x0080, 0x00ff,\r
-}; /* END of CR_In_Latin_1_Supplement */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_A[] = { 1,\r
-0x0100, 0x017f,\r
-}; /* END of CR_In_Latin_Extended_A */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_B[] = { 1,\r
-0x0180, 0x024f,\r
-}; /* END of CR_In_Latin_Extended_B */\r
-\r
-/* PROPERTY: 'In_IPA_Extensions': Block */\r
-static const OnigCodePoint\r
-CR_In_IPA_Extensions[] = { 1,\r
-0x0250, 0x02af,\r
-}; /* END of CR_In_IPA_Extensions */\r
-\r
-/* PROPERTY: 'In_Spacing_Modifier_Letters': Block */\r
-static const OnigCodePoint\r
-CR_In_Spacing_Modifier_Letters[] = { 1,\r
-0x02b0, 0x02ff,\r
-}; /* END of CR_In_Spacing_Modifier_Letters */\r
-\r
-/* PROPERTY: 'In_Combining_Diacritical_Marks': Block */\r
-static const OnigCodePoint\r
-CR_In_Combining_Diacritical_Marks[] = { 1,\r
-0x0300, 0x036f,\r
-}; /* END of CR_In_Combining_Diacritical_Marks */\r
-\r
-/* PROPERTY: 'In_Greek_and_Coptic': Block */\r
-static const OnigCodePoint\r
-CR_In_Greek_and_Coptic[] = { 1,\r
-0x0370, 0x03ff,\r
-}; /* END of CR_In_Greek_and_Coptic */\r
-\r
-/* PROPERTY: 'In_Cyrillic': Block */\r
-static const OnigCodePoint\r
-CR_In_Cyrillic[] = { 1,\r
-0x0400, 0x04ff,\r
-}; /* END of CR_In_Cyrillic */\r
-\r
-/* PROPERTY: 'In_Cyrillic_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Cyrillic_Supplement[] = { 1,\r
-0x0500, 0x052f,\r
-}; /* END of CR_In_Cyrillic_Supplement */\r
-\r
-/* PROPERTY: 'In_Armenian': Block */\r
-static const OnigCodePoint\r
-CR_In_Armenian[] = { 1,\r
-0x0530, 0x058f,\r
-}; /* END of CR_In_Armenian */\r
-\r
-/* PROPERTY: 'In_Hebrew': Block */\r
-static const OnigCodePoint\r
-CR_In_Hebrew[] = { 1,\r
-0x0590, 0x05ff,\r
-}; /* END of CR_In_Hebrew */\r
-\r
-/* PROPERTY: 'In_Arabic': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic[] = { 1,\r
-0x0600, 0x06ff,\r
-}; /* END of CR_In_Arabic */\r
-\r
-/* PROPERTY: 'In_Syriac': Block */\r
-static const OnigCodePoint\r
-CR_In_Syriac[] = { 1,\r
-0x0700, 0x074f,\r
-}; /* END of CR_In_Syriac */\r
-\r
-/* PROPERTY: 'In_Arabic_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic_Supplement[] = { 1,\r
-0x0750, 0x077f,\r
-}; /* END of CR_In_Arabic_Supplement */\r
-\r
-/* PROPERTY: 'In_Thaana': Block */\r
-static const OnigCodePoint\r
-CR_In_Thaana[] = { 1,\r
-0x0780, 0x07bf,\r
-}; /* END of CR_In_Thaana */\r
-\r
-/* PROPERTY: 'In_NKo': Block */\r
-static const OnigCodePoint\r
-CR_In_NKo[] = { 1,\r
-0x07c0, 0x07ff,\r
-}; /* END of CR_In_NKo */\r
-\r
-/* PROPERTY: 'In_Samaritan': Block */\r
-static const OnigCodePoint\r
-CR_In_Samaritan[] = { 1,\r
-0x0800, 0x083f,\r
-}; /* END of CR_In_Samaritan */\r
-\r
-/* PROPERTY: 'In_Mandaic': Block */\r
-static const OnigCodePoint\r
-CR_In_Mandaic[] = { 1,\r
-0x0840, 0x085f,\r
-}; /* END of CR_In_Mandaic */\r
-\r
-/* PROPERTY: 'In_Syriac_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Syriac_Supplement[] = { 1,\r
-0x0860, 0x086f,\r
-}; /* END of CR_In_Syriac_Supplement */\r
-\r
-/* PROPERTY: 'In_Arabic_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic_Extended_A[] = { 1,\r
-0x08a0, 0x08ff,\r
-}; /* END of CR_In_Arabic_Extended_A */\r
-\r
-/* PROPERTY: 'In_Devanagari': Block */\r
-static const OnigCodePoint\r
-CR_In_Devanagari[] = { 1,\r
-0x0900, 0x097f,\r
-}; /* END of CR_In_Devanagari */\r
-\r
-/* PROPERTY: 'In_Bengali': Block */\r
-static const OnigCodePoint\r
-CR_In_Bengali[] = { 1,\r
-0x0980, 0x09ff,\r
-}; /* END of CR_In_Bengali */\r
-\r
-/* PROPERTY: 'In_Gurmukhi': Block */\r
-static const OnigCodePoint\r
-CR_In_Gurmukhi[] = { 1,\r
-0x0a00, 0x0a7f,\r
-}; /* END of CR_In_Gurmukhi */\r
-\r
-/* PROPERTY: 'In_Gujarati': Block */\r
-static const OnigCodePoint\r
-CR_In_Gujarati[] = { 1,\r
-0x0a80, 0x0aff,\r
-}; /* END of CR_In_Gujarati */\r
-\r
-/* PROPERTY: 'In_Oriya': Block */\r
-static const OnigCodePoint\r
-CR_In_Oriya[] = { 1,\r
-0x0b00, 0x0b7f,\r
-}; /* END of CR_In_Oriya */\r
-\r
-/* PROPERTY: 'In_Tamil': Block */\r
-static const OnigCodePoint\r
-CR_In_Tamil[] = { 1,\r
-0x0b80, 0x0bff,\r
-}; /* END of CR_In_Tamil */\r
-\r
-/* PROPERTY: 'In_Telugu': Block */\r
-static const OnigCodePoint\r
-CR_In_Telugu[] = { 1,\r
-0x0c00, 0x0c7f,\r
-}; /* END of CR_In_Telugu */\r
-\r
-/* PROPERTY: 'In_Kannada': Block */\r
-static const OnigCodePoint\r
-CR_In_Kannada[] = { 1,\r
-0x0c80, 0x0cff,\r
-}; /* END of CR_In_Kannada */\r
-\r
-/* PROPERTY: 'In_Malayalam': Block */\r
-static const OnigCodePoint\r
-CR_In_Malayalam[] = { 1,\r
-0x0d00, 0x0d7f,\r
-}; /* END of CR_In_Malayalam */\r
-\r
-/* PROPERTY: 'In_Sinhala': Block */\r
-static const OnigCodePoint\r
-CR_In_Sinhala[] = { 1,\r
-0x0d80, 0x0dff,\r
-}; /* END of CR_In_Sinhala */\r
-\r
-/* PROPERTY: 'In_Thai': Block */\r
-static const OnigCodePoint\r
-CR_In_Thai[] = { 1,\r
-0x0e00, 0x0e7f,\r
-}; /* END of CR_In_Thai */\r
-\r
-/* PROPERTY: 'In_Lao': Block */\r
-static const OnigCodePoint\r
-CR_In_Lao[] = { 1,\r
-0x0e80, 0x0eff,\r
-}; /* END of CR_In_Lao */\r
-\r
-/* PROPERTY: 'In_Tibetan': Block */\r
-static const OnigCodePoint\r
-CR_In_Tibetan[] = { 1,\r
-0x0f00, 0x0fff,\r
-}; /* END of CR_In_Tibetan */\r
-\r
-/* PROPERTY: 'In_Myanmar': Block */\r
-static const OnigCodePoint\r
-CR_In_Myanmar[] = { 1,\r
-0x1000, 0x109f,\r
-}; /* END of CR_In_Myanmar */\r
-\r
-/* PROPERTY: 'In_Georgian': Block */\r
-static const OnigCodePoint\r
-CR_In_Georgian[] = { 1,\r
-0x10a0, 0x10ff,\r
-}; /* END of CR_In_Georgian */\r
-\r
-/* PROPERTY: 'In_Hangul_Jamo': Block */\r
-static const OnigCodePoint\r
-CR_In_Hangul_Jamo[] = { 1,\r
-0x1100, 0x11ff,\r
-}; /* END of CR_In_Hangul_Jamo */\r
-\r
-/* PROPERTY: 'In_Ethiopic': Block */\r
-static const OnigCodePoint\r
-CR_In_Ethiopic[] = { 1,\r
-0x1200, 0x137f,\r
-}; /* END of CR_In_Ethiopic */\r
-\r
-/* PROPERTY: 'In_Ethiopic_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Ethiopic_Supplement[] = { 1,\r
-0x1380, 0x139f,\r
-}; /* END of CR_In_Ethiopic_Supplement */\r
-\r
-/* PROPERTY: 'In_Cherokee': Block */\r
-static const OnigCodePoint\r
-CR_In_Cherokee[] = { 1,\r
-0x13a0, 0x13ff,\r
-}; /* END of CR_In_Cherokee */\r
-\r
-/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics': Block */\r
-static const OnigCodePoint\r
-CR_In_Unified_Canadian_Aboriginal_Syllabics[] = { 1,\r
-0x1400, 0x167f,\r
-}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics */\r
-\r
-/* PROPERTY: 'In_Ogham': Block */\r
-static const OnigCodePoint\r
-CR_In_Ogham[] = { 1,\r
-0x1680, 0x169f,\r
-}; /* END of CR_In_Ogham */\r
-\r
-/* PROPERTY: 'In_Runic': Block */\r
-static const OnigCodePoint\r
-CR_In_Runic[] = { 1,\r
-0x16a0, 0x16ff,\r
-}; /* END of CR_In_Runic */\r
-\r
-/* PROPERTY: 'In_Tagalog': Block */\r
-static const OnigCodePoint\r
-CR_In_Tagalog[] = { 1,\r
-0x1700, 0x171f,\r
-}; /* END of CR_In_Tagalog */\r
-\r
-/* PROPERTY: 'In_Hanunoo': Block */\r
-static const OnigCodePoint\r
-CR_In_Hanunoo[] = { 1,\r
-0x1720, 0x173f,\r
-}; /* END of CR_In_Hanunoo */\r
-\r
-/* PROPERTY: 'In_Buhid': Block */\r
-static const OnigCodePoint\r
-CR_In_Buhid[] = { 1,\r
-0x1740, 0x175f,\r
-}; /* END of CR_In_Buhid */\r
-\r
-/* PROPERTY: 'In_Tagbanwa': Block */\r
-static const OnigCodePoint\r
-CR_In_Tagbanwa[] = { 1,\r
-0x1760, 0x177f,\r
-}; /* END of CR_In_Tagbanwa */\r
-\r
-/* PROPERTY: 'In_Khmer': Block */\r
-static const OnigCodePoint\r
-CR_In_Khmer[] = { 1,\r
-0x1780, 0x17ff,\r
-}; /* END of CR_In_Khmer */\r
-\r
-/* PROPERTY: 'In_Mongolian': Block */\r
-static const OnigCodePoint\r
-CR_In_Mongolian[] = { 1,\r
-0x1800, 0x18af,\r
-}; /* END of CR_In_Mongolian */\r
-\r
-/* PROPERTY: 'In_Unified_Canadian_Aboriginal_Syllabics_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended[] = { 1,\r
-0x18b0, 0x18ff,\r
-}; /* END of CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended */\r
-\r
-/* PROPERTY: 'In_Limbu': Block */\r
-static const OnigCodePoint\r
-CR_In_Limbu[] = { 1,\r
-0x1900, 0x194f,\r
-}; /* END of CR_In_Limbu */\r
-\r
-/* PROPERTY: 'In_Tai_Le': Block */\r
-static const OnigCodePoint\r
-CR_In_Tai_Le[] = { 1,\r
-0x1950, 0x197f,\r
-}; /* END of CR_In_Tai_Le */\r
-\r
-/* PROPERTY: 'In_New_Tai_Lue': Block */\r
-static const OnigCodePoint\r
-CR_In_New_Tai_Lue[] = { 1,\r
-0x1980, 0x19df,\r
-}; /* END of CR_In_New_Tai_Lue */\r
-\r
-/* PROPERTY: 'In_Khmer_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Khmer_Symbols[] = { 1,\r
-0x19e0, 0x19ff,\r
-}; /* END of CR_In_Khmer_Symbols */\r
-\r
-/* PROPERTY: 'In_Buginese': Block */\r
-static const OnigCodePoint\r
-CR_In_Buginese[] = { 1,\r
-0x1a00, 0x1a1f,\r
-}; /* END of CR_In_Buginese */\r
-\r
-/* PROPERTY: 'In_Tai_Tham': Block */\r
-static const OnigCodePoint\r
-CR_In_Tai_Tham[] = { 1,\r
-0x1a20, 0x1aaf,\r
-}; /* END of CR_In_Tai_Tham */\r
-\r
-/* PROPERTY: 'In_Combining_Diacritical_Marks_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Combining_Diacritical_Marks_Extended[] = { 1,\r
-0x1ab0, 0x1aff,\r
-}; /* END of CR_In_Combining_Diacritical_Marks_Extended */\r
-\r
-/* PROPERTY: 'In_Balinese': Block */\r
-static const OnigCodePoint\r
-CR_In_Balinese[] = { 1,\r
-0x1b00, 0x1b7f,\r
-}; /* END of CR_In_Balinese */\r
-\r
-/* PROPERTY: 'In_Sundanese': Block */\r
-static const OnigCodePoint\r
-CR_In_Sundanese[] = { 1,\r
-0x1b80, 0x1bbf,\r
-}; /* END of CR_In_Sundanese */\r
-\r
-/* PROPERTY: 'In_Batak': Block */\r
-static const OnigCodePoint\r
-CR_In_Batak[] = { 1,\r
-0x1bc0, 0x1bff,\r
-}; /* END of CR_In_Batak */\r
-\r
-/* PROPERTY: 'In_Lepcha': Block */\r
-static const OnigCodePoint\r
-CR_In_Lepcha[] = { 1,\r
-0x1c00, 0x1c4f,\r
-}; /* END of CR_In_Lepcha */\r
-\r
-/* PROPERTY: 'In_Ol_Chiki': Block */\r
-#define CR_In_Ol_Chiki CR_Ol_Chiki\r
-\r
-/* PROPERTY: 'In_Cyrillic_Extended_C': Block */\r
-static const OnigCodePoint\r
-CR_In_Cyrillic_Extended_C[] = { 1,\r
-0x1c80, 0x1c8f,\r
-}; /* END of CR_In_Cyrillic_Extended_C */\r
-\r
-/* PROPERTY: 'In_Georgian_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Georgian_Extended[] = { 1,\r
-0x1c90, 0x1cbf,\r
-}; /* END of CR_In_Georgian_Extended */\r
-\r
-/* PROPERTY: 'In_Sundanese_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Sundanese_Supplement[] = { 1,\r
-0x1cc0, 0x1ccf,\r
-}; /* END of CR_In_Sundanese_Supplement */\r
-\r
-/* PROPERTY: 'In_Vedic_Extensions': Block */\r
-static const OnigCodePoint\r
-CR_In_Vedic_Extensions[] = { 1,\r
-0x1cd0, 0x1cff,\r
-}; /* END of CR_In_Vedic_Extensions */\r
-\r
-/* PROPERTY: 'In_Phonetic_Extensions': Block */\r
-static const OnigCodePoint\r
-CR_In_Phonetic_Extensions[] = { 1,\r
-0x1d00, 0x1d7f,\r
-}; /* END of CR_In_Phonetic_Extensions */\r
-\r
-/* PROPERTY: 'In_Phonetic_Extensions_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Phonetic_Extensions_Supplement[] = { 1,\r
-0x1d80, 0x1dbf,\r
-}; /* END of CR_In_Phonetic_Extensions_Supplement */\r
-\r
-/* PROPERTY: 'In_Combining_Diacritical_Marks_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Combining_Diacritical_Marks_Supplement[] = { 1,\r
-0x1dc0, 0x1dff,\r
-}; /* END of CR_In_Combining_Diacritical_Marks_Supplement */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_Additional': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_Additional[] = { 1,\r
-0x1e00, 0x1eff,\r
-}; /* END of CR_In_Latin_Extended_Additional */\r
-\r
-/* PROPERTY: 'In_Greek_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Greek_Extended[] = { 1,\r
-0x1f00, 0x1fff,\r
-}; /* END of CR_In_Greek_Extended */\r
-\r
-/* PROPERTY: 'In_General_Punctuation': Block */\r
-static const OnigCodePoint\r
-CR_In_General_Punctuation[] = { 1,\r
-0x2000, 0x206f,\r
-}; /* END of CR_In_General_Punctuation */\r
-\r
-/* PROPERTY: 'In_Superscripts_and_Subscripts': Block */\r
-static const OnigCodePoint\r
-CR_In_Superscripts_and_Subscripts[] = { 1,\r
-0x2070, 0x209f,\r
-}; /* END of CR_In_Superscripts_and_Subscripts */\r
-\r
-/* PROPERTY: 'In_Currency_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Currency_Symbols[] = { 1,\r
-0x20a0, 0x20cf,\r
-}; /* END of CR_In_Currency_Symbols */\r
-\r
-/* PROPERTY: 'In_Combining_Diacritical_Marks_for_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Combining_Diacritical_Marks_for_Symbols[] = { 1,\r
-0x20d0, 0x20ff,\r
-}; /* END of CR_In_Combining_Diacritical_Marks_for_Symbols */\r
-\r
-/* PROPERTY: 'In_Letterlike_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Letterlike_Symbols[] = { 1,\r
-0x2100, 0x214f,\r
-}; /* END of CR_In_Letterlike_Symbols */\r
-\r
-/* PROPERTY: 'In_Number_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_Number_Forms[] = { 1,\r
-0x2150, 0x218f,\r
-}; /* END of CR_In_Number_Forms */\r
-\r
-/* PROPERTY: 'In_Arrows': Block */\r
-static const OnigCodePoint\r
-CR_In_Arrows[] = { 1,\r
-0x2190, 0x21ff,\r
-}; /* END of CR_In_Arrows */\r
-\r
-/* PROPERTY: 'In_Mathematical_Operators': Block */\r
-static const OnigCodePoint\r
-CR_In_Mathematical_Operators[] = { 1,\r
-0x2200, 0x22ff,\r
-}; /* END of CR_In_Mathematical_Operators */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Technical': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Technical[] = { 1,\r
-0x2300, 0x23ff,\r
-}; /* END of CR_In_Miscellaneous_Technical */\r
-\r
-/* PROPERTY: 'In_Control_Pictures': Block */\r
-static const OnigCodePoint\r
-CR_In_Control_Pictures[] = { 1,\r
-0x2400, 0x243f,\r
-}; /* END of CR_In_Control_Pictures */\r
-\r
-/* PROPERTY: 'In_Optical_Character_Recognition': Block */\r
-static const OnigCodePoint\r
-CR_In_Optical_Character_Recognition[] = { 1,\r
-0x2440, 0x245f,\r
-}; /* END of CR_In_Optical_Character_Recognition */\r
-\r
-/* PROPERTY: 'In_Enclosed_Alphanumerics': Block */\r
-static const OnigCodePoint\r
-CR_In_Enclosed_Alphanumerics[] = { 1,\r
-0x2460, 0x24ff,\r
-}; /* END of CR_In_Enclosed_Alphanumerics */\r
-\r
-/* PROPERTY: 'In_Box_Drawing': Block */\r
-static const OnigCodePoint\r
-CR_In_Box_Drawing[] = { 1,\r
-0x2500, 0x257f,\r
-}; /* END of CR_In_Box_Drawing */\r
-\r
-/* PROPERTY: 'In_Block_Elements': Block */\r
-static const OnigCodePoint\r
-CR_In_Block_Elements[] = { 1,\r
-0x2580, 0x259f,\r
-}; /* END of CR_In_Block_Elements */\r
-\r
-/* PROPERTY: 'In_Geometric_Shapes': Block */\r
-static const OnigCodePoint\r
-CR_In_Geometric_Shapes[] = { 1,\r
-0x25a0, 0x25ff,\r
-}; /* END of CR_In_Geometric_Shapes */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Symbols[] = { 1,\r
-0x2600, 0x26ff,\r
-}; /* END of CR_In_Miscellaneous_Symbols */\r
-\r
-/* PROPERTY: 'In_Dingbats': Block */\r
-static const OnigCodePoint\r
-CR_In_Dingbats[] = { 1,\r
-0x2700, 0x27bf,\r
-}; /* END of CR_In_Dingbats */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Mathematical_Symbols_A[] = { 1,\r
-0x27c0, 0x27ef,\r
-}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_A */\r
-\r
-/* PROPERTY: 'In_Supplemental_Arrows_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Arrows_A[] = { 1,\r
-0x27f0, 0x27ff,\r
-}; /* END of CR_In_Supplemental_Arrows_A */\r
-\r
-/* PROPERTY: 'In_Braille_Patterns': Block */\r
-#define CR_In_Braille_Patterns CR_Braille\r
-\r
-/* PROPERTY: 'In_Supplemental_Arrows_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Arrows_B[] = { 1,\r
-0x2900, 0x297f,\r
-}; /* END of CR_In_Supplemental_Arrows_B */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Mathematical_Symbols_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Mathematical_Symbols_B[] = { 1,\r
-0x2980, 0x29ff,\r
-}; /* END of CR_In_Miscellaneous_Mathematical_Symbols_B */\r
-\r
-/* PROPERTY: 'In_Supplemental_Mathematical_Operators': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Mathematical_Operators[] = { 1,\r
-0x2a00, 0x2aff,\r
-}; /* END of CR_In_Supplemental_Mathematical_Operators */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Symbols_and_Arrows': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Symbols_and_Arrows[] = { 1,\r
-0x2b00, 0x2bff,\r
-}; /* END of CR_In_Miscellaneous_Symbols_and_Arrows */\r
-\r
-/* PROPERTY: 'In_Glagolitic': Block */\r
-static const OnigCodePoint\r
-CR_In_Glagolitic[] = { 1,\r
-0x2c00, 0x2c5f,\r
-}; /* END of CR_In_Glagolitic */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_C': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_C[] = { 1,\r
-0x2c60, 0x2c7f,\r
-}; /* END of CR_In_Latin_Extended_C */\r
-\r
-/* PROPERTY: 'In_Coptic': Block */\r
-static const OnigCodePoint\r
-CR_In_Coptic[] = { 1,\r
-0x2c80, 0x2cff,\r
-}; /* END of CR_In_Coptic */\r
-\r
-/* PROPERTY: 'In_Georgian_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Georgian_Supplement[] = { 1,\r
-0x2d00, 0x2d2f,\r
-}; /* END of CR_In_Georgian_Supplement */\r
-\r
-/* PROPERTY: 'In_Tifinagh': Block */\r
-static const OnigCodePoint\r
-CR_In_Tifinagh[] = { 1,\r
-0x2d30, 0x2d7f,\r
-}; /* END of CR_In_Tifinagh */\r
-\r
-/* PROPERTY: 'In_Ethiopic_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Ethiopic_Extended[] = { 1,\r
-0x2d80, 0x2ddf,\r
-}; /* END of CR_In_Ethiopic_Extended */\r
-\r
-/* PROPERTY: 'In_Cyrillic_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Cyrillic_Extended_A[] = { 1,\r
-0x2de0, 0x2dff,\r
-}; /* END of CR_In_Cyrillic_Extended_A */\r
-\r
-/* PROPERTY: 'In_Supplemental_Punctuation': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Punctuation[] = { 1,\r
-0x2e00, 0x2e7f,\r
-}; /* END of CR_In_Supplemental_Punctuation */\r
-\r
-/* PROPERTY: 'In_CJK_Radicals_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Radicals_Supplement[] = { 1,\r
-0x2e80, 0x2eff,\r
-}; /* END of CR_In_CJK_Radicals_Supplement */\r
-\r
-/* PROPERTY: 'In_Kangxi_Radicals': Block */\r
-static const OnigCodePoint\r
-CR_In_Kangxi_Radicals[] = { 1,\r
-0x2f00, 0x2fdf,\r
-}; /* END of CR_In_Kangxi_Radicals */\r
-\r
-/* PROPERTY: 'In_Ideographic_Description_Characters': Block */\r
-static const OnigCodePoint\r
-CR_In_Ideographic_Description_Characters[] = { 1,\r
-0x2ff0, 0x2fff,\r
-}; /* END of CR_In_Ideographic_Description_Characters */\r
-\r
-/* PROPERTY: 'In_CJK_Symbols_and_Punctuation': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Symbols_and_Punctuation[] = { 1,\r
-0x3000, 0x303f,\r
-}; /* END of CR_In_CJK_Symbols_and_Punctuation */\r
-\r
-/* PROPERTY: 'In_Hiragana': Block */\r
-static const OnigCodePoint\r
-CR_In_Hiragana[] = { 1,\r
-0x3040, 0x309f,\r
-}; /* END of CR_In_Hiragana */\r
-\r
-/* PROPERTY: 'In_Katakana': Block */\r
-static const OnigCodePoint\r
-CR_In_Katakana[] = { 1,\r
-0x30a0, 0x30ff,\r
-}; /* END of CR_In_Katakana */\r
-\r
-/* PROPERTY: 'In_Bopomofo': Block */\r
-static const OnigCodePoint\r
-CR_In_Bopomofo[] = { 1,\r
-0x3100, 0x312f,\r
-}; /* END of CR_In_Bopomofo */\r
-\r
-/* PROPERTY: 'In_Hangul_Compatibility_Jamo': Block */\r
-static const OnigCodePoint\r
-CR_In_Hangul_Compatibility_Jamo[] = { 1,\r
-0x3130, 0x318f,\r
-}; /* END of CR_In_Hangul_Compatibility_Jamo */\r
-\r
-/* PROPERTY: 'In_Kanbun': Block */\r
-static const OnigCodePoint\r
-CR_In_Kanbun[] = { 1,\r
-0x3190, 0x319f,\r
-}; /* END of CR_In_Kanbun */\r
-\r
-/* PROPERTY: 'In_Bopomofo_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Bopomofo_Extended[] = { 1,\r
-0x31a0, 0x31bf,\r
-}; /* END of CR_In_Bopomofo_Extended */\r
-\r
-/* PROPERTY: 'In_CJK_Strokes': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Strokes[] = { 1,\r
-0x31c0, 0x31ef,\r
-}; /* END of CR_In_CJK_Strokes */\r
-\r
-/* PROPERTY: 'In_Katakana_Phonetic_Extensions': Block */\r
-static const OnigCodePoint\r
-CR_In_Katakana_Phonetic_Extensions[] = { 1,\r
-0x31f0, 0x31ff,\r
-}; /* END of CR_In_Katakana_Phonetic_Extensions */\r
-\r
-/* PROPERTY: 'In_Enclosed_CJK_Letters_and_Months': Block */\r
-static const OnigCodePoint\r
-CR_In_Enclosed_CJK_Letters_and_Months[] = { 1,\r
-0x3200, 0x32ff,\r
-}; /* END of CR_In_Enclosed_CJK_Letters_and_Months */\r
-\r
-/* PROPERTY: 'In_CJK_Compatibility': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Compatibility[] = { 1,\r
-0x3300, 0x33ff,\r
-}; /* END of CR_In_CJK_Compatibility */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_A': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_A[] = { 1,\r
-0x3400, 0x4dbf,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_A */\r
-\r
-/* PROPERTY: 'In_Yijing_Hexagram_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Yijing_Hexagram_Symbols[] = { 1,\r
-0x4dc0, 0x4dff,\r
-}; /* END of CR_In_Yijing_Hexagram_Symbols */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs[] = { 1,\r
-0x4e00, 0x9fff,\r
-}; /* END of CR_In_CJK_Unified_Ideographs */\r
-\r
-/* PROPERTY: 'In_Yi_Syllables': Block */\r
-static const OnigCodePoint\r
-CR_In_Yi_Syllables[] = { 1,\r
-0xa000, 0xa48f,\r
-}; /* END of CR_In_Yi_Syllables */\r
-\r
-/* PROPERTY: 'In_Yi_Radicals': Block */\r
-static const OnigCodePoint\r
-CR_In_Yi_Radicals[] = { 1,\r
-0xa490, 0xa4cf,\r
-}; /* END of CR_In_Yi_Radicals */\r
-\r
-/* PROPERTY: 'In_Lisu': Block */\r
-#define CR_In_Lisu CR_Lisu\r
-\r
-/* PROPERTY: 'In_Vai': Block */\r
-static const OnigCodePoint\r
-CR_In_Vai[] = { 1,\r
-0xa500, 0xa63f,\r
-}; /* END of CR_In_Vai */\r
-\r
-/* PROPERTY: 'In_Cyrillic_Extended_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Cyrillic_Extended_B[] = { 1,\r
-0xa640, 0xa69f,\r
-}; /* END of CR_In_Cyrillic_Extended_B */\r
-\r
-/* PROPERTY: 'In_Bamum': Block */\r
-static const OnigCodePoint\r
-CR_In_Bamum[] = { 1,\r
-0xa6a0, 0xa6ff,\r
-}; /* END of CR_In_Bamum */\r
-\r
-/* PROPERTY: 'In_Modifier_Tone_Letters': Block */\r
-static const OnigCodePoint\r
-CR_In_Modifier_Tone_Letters[] = { 1,\r
-0xa700, 0xa71f,\r
-}; /* END of CR_In_Modifier_Tone_Letters */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_D': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_D[] = { 1,\r
-0xa720, 0xa7ff,\r
-}; /* END of CR_In_Latin_Extended_D */\r
-\r
-/* PROPERTY: 'In_Syloti_Nagri': Block */\r
-static const OnigCodePoint\r
-CR_In_Syloti_Nagri[] = { 1,\r
-0xa800, 0xa82f,\r
-}; /* END of CR_In_Syloti_Nagri */\r
-\r
-/* PROPERTY: 'In_Common_Indic_Number_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_Common_Indic_Number_Forms[] = { 1,\r
-0xa830, 0xa83f,\r
-}; /* END of CR_In_Common_Indic_Number_Forms */\r
-\r
-/* PROPERTY: 'In_Phags_pa': Block */\r
-static const OnigCodePoint\r
-CR_In_Phags_pa[] = { 1,\r
-0xa840, 0xa87f,\r
-}; /* END of CR_In_Phags_pa */\r
-\r
-/* PROPERTY: 'In_Saurashtra': Block */\r
-static const OnigCodePoint\r
-CR_In_Saurashtra[] = { 1,\r
-0xa880, 0xa8df,\r
-}; /* END of CR_In_Saurashtra */\r
-\r
-/* PROPERTY: 'In_Devanagari_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Devanagari_Extended[] = { 1,\r
-0xa8e0, 0xa8ff,\r
-}; /* END of CR_In_Devanagari_Extended */\r
-\r
-/* PROPERTY: 'In_Kayah_Li': Block */\r
-static const OnigCodePoint\r
-CR_In_Kayah_Li[] = { 1,\r
-0xa900, 0xa92f,\r
-}; /* END of CR_In_Kayah_Li */\r
-\r
-/* PROPERTY: 'In_Rejang': Block */\r
-static const OnigCodePoint\r
-CR_In_Rejang[] = { 1,\r
-0xa930, 0xa95f,\r
-}; /* END of CR_In_Rejang */\r
-\r
-/* PROPERTY: 'In_Hangul_Jamo_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Hangul_Jamo_Extended_A[] = { 1,\r
-0xa960, 0xa97f,\r
-}; /* END of CR_In_Hangul_Jamo_Extended_A */\r
-\r
-/* PROPERTY: 'In_Javanese': Block */\r
-static const OnigCodePoint\r
-CR_In_Javanese[] = { 1,\r
-0xa980, 0xa9df,\r
-}; /* END of CR_In_Javanese */\r
-\r
-/* PROPERTY: 'In_Myanmar_Extended_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Myanmar_Extended_B[] = { 1,\r
-0xa9e0, 0xa9ff,\r
-}; /* END of CR_In_Myanmar_Extended_B */\r
-\r
-/* PROPERTY: 'In_Cham': Block */\r
-static const OnigCodePoint\r
-CR_In_Cham[] = { 1,\r
-0xaa00, 0xaa5f,\r
-}; /* END of CR_In_Cham */\r
-\r
-/* PROPERTY: 'In_Myanmar_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Myanmar_Extended_A[] = { 1,\r
-0xaa60, 0xaa7f,\r
-}; /* END of CR_In_Myanmar_Extended_A */\r
-\r
-/* PROPERTY: 'In_Tai_Viet': Block */\r
-static const OnigCodePoint\r
-CR_In_Tai_Viet[] = { 1,\r
-0xaa80, 0xaadf,\r
-}; /* END of CR_In_Tai_Viet */\r
-\r
-/* PROPERTY: 'In_Meetei_Mayek_Extensions': Block */\r
-static const OnigCodePoint\r
-CR_In_Meetei_Mayek_Extensions[] = { 1,\r
-0xaae0, 0xaaff,\r
-}; /* END of CR_In_Meetei_Mayek_Extensions */\r
-\r
-/* PROPERTY: 'In_Ethiopic_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Ethiopic_Extended_A[] = { 1,\r
-0xab00, 0xab2f,\r
-}; /* END of CR_In_Ethiopic_Extended_A */\r
-\r
-/* PROPERTY: 'In_Latin_Extended_E': Block */\r
-static const OnigCodePoint\r
-CR_In_Latin_Extended_E[] = { 1,\r
-0xab30, 0xab6f,\r
-}; /* END of CR_In_Latin_Extended_E */\r
-\r
-/* PROPERTY: 'In_Cherokee_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Cherokee_Supplement[] = { 1,\r
-0xab70, 0xabbf,\r
-}; /* END of CR_In_Cherokee_Supplement */\r
-\r
-/* PROPERTY: 'In_Meetei_Mayek': Block */\r
-static const OnigCodePoint\r
-CR_In_Meetei_Mayek[] = { 1,\r
-0xabc0, 0xabff,\r
-}; /* END of CR_In_Meetei_Mayek */\r
-\r
-/* PROPERTY: 'In_Hangul_Syllables': Block */\r
-static const OnigCodePoint\r
-CR_In_Hangul_Syllables[] = { 1,\r
-0xac00, 0xd7af,\r
-}; /* END of CR_In_Hangul_Syllables */\r
-\r
-/* PROPERTY: 'In_Hangul_Jamo_Extended_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Hangul_Jamo_Extended_B[] = { 1,\r
-0xd7b0, 0xd7ff,\r
-}; /* END of CR_In_Hangul_Jamo_Extended_B */\r
-\r
-/* PROPERTY: 'In_High_Surrogates': Block */\r
-static const OnigCodePoint\r
-CR_In_High_Surrogates[] = { 1,\r
-0xd800, 0xdb7f,\r
-}; /* END of CR_In_High_Surrogates */\r
-\r
-/* PROPERTY: 'In_High_Private_Use_Surrogates': Block */\r
-static const OnigCodePoint\r
-CR_In_High_Private_Use_Surrogates[] = { 1,\r
-0xdb80, 0xdbff,\r
-}; /* END of CR_In_High_Private_Use_Surrogates */\r
-\r
-/* PROPERTY: 'In_Low_Surrogates': Block */\r
-static const OnigCodePoint\r
-CR_In_Low_Surrogates[] = { 1,\r
-0xdc00, 0xdfff,\r
-}; /* END of CR_In_Low_Surrogates */\r
-\r
-/* PROPERTY: 'In_Private_Use_Area': Block */\r
-static const OnigCodePoint\r
-CR_In_Private_Use_Area[] = { 1,\r
-0xe000, 0xf8ff,\r
-}; /* END of CR_In_Private_Use_Area */\r
-\r
-/* PROPERTY: 'In_CJK_Compatibility_Ideographs': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Compatibility_Ideographs[] = { 1,\r
-0xf900, 0xfaff,\r
-}; /* END of CR_In_CJK_Compatibility_Ideographs */\r
-\r
-/* PROPERTY: 'In_Alphabetic_Presentation_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_Alphabetic_Presentation_Forms[] = { 1,\r
-0xfb00, 0xfb4f,\r
-}; /* END of CR_In_Alphabetic_Presentation_Forms */\r
-\r
-/* PROPERTY: 'In_Arabic_Presentation_Forms_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic_Presentation_Forms_A[] = { 1,\r
-0xfb50, 0xfdff,\r
-}; /* END of CR_In_Arabic_Presentation_Forms_A */\r
-\r
-/* PROPERTY: 'In_Variation_Selectors': Block */\r
-static const OnigCodePoint\r
-CR_In_Variation_Selectors[] = { 1,\r
-0xfe00, 0xfe0f,\r
-}; /* END of CR_In_Variation_Selectors */\r
-\r
-/* PROPERTY: 'In_Vertical_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_Vertical_Forms[] = { 1,\r
-0xfe10, 0xfe1f,\r
-}; /* END of CR_In_Vertical_Forms */\r
-\r
-/* PROPERTY: 'In_Combining_Half_Marks': Block */\r
-static const OnigCodePoint\r
-CR_In_Combining_Half_Marks[] = { 1,\r
-0xfe20, 0xfe2f,\r
-}; /* END of CR_In_Combining_Half_Marks */\r
-\r
-/* PROPERTY: 'In_CJK_Compatibility_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Compatibility_Forms[] = { 1,\r
-0xfe30, 0xfe4f,\r
-}; /* END of CR_In_CJK_Compatibility_Forms */\r
-\r
-/* PROPERTY: 'In_Small_Form_Variants': Block */\r
-static const OnigCodePoint\r
-CR_In_Small_Form_Variants[] = { 1,\r
-0xfe50, 0xfe6f,\r
-}; /* END of CR_In_Small_Form_Variants */\r
-\r
-/* PROPERTY: 'In_Arabic_Presentation_Forms_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic_Presentation_Forms_B[] = { 1,\r
-0xfe70, 0xfeff,\r
-}; /* END of CR_In_Arabic_Presentation_Forms_B */\r
-\r
-/* PROPERTY: 'In_Halfwidth_and_Fullwidth_Forms': Block */\r
-static const OnigCodePoint\r
-CR_In_Halfwidth_and_Fullwidth_Forms[] = { 1,\r
-0xff00, 0xffef,\r
-}; /* END of CR_In_Halfwidth_and_Fullwidth_Forms */\r
-\r
-/* PROPERTY: 'In_Specials': Block */\r
-static const OnigCodePoint\r
-CR_In_Specials[] = { 1,\r
-0xfff0, 0xffff,\r
-}; /* END of CR_In_Specials */\r
-\r
-/* PROPERTY: 'In_Linear_B_Syllabary': Block */\r
-static const OnigCodePoint\r
-CR_In_Linear_B_Syllabary[] = { 1,\r
-0x10000, 0x1007f,\r
-}; /* END of CR_In_Linear_B_Syllabary */\r
-\r
-/* PROPERTY: 'In_Linear_B_Ideograms': Block */\r
-static const OnigCodePoint\r
-CR_In_Linear_B_Ideograms[] = { 1,\r
-0x10080, 0x100ff,\r
-}; /* END of CR_In_Linear_B_Ideograms */\r
-\r
-/* PROPERTY: 'In_Aegean_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Aegean_Numbers[] = { 1,\r
-0x10100, 0x1013f,\r
-}; /* END of CR_In_Aegean_Numbers */\r
-\r
-/* PROPERTY: 'In_Ancient_Greek_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Ancient_Greek_Numbers[] = { 1,\r
-0x10140, 0x1018f,\r
-}; /* END of CR_In_Ancient_Greek_Numbers */\r
-\r
-/* PROPERTY: 'In_Ancient_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Ancient_Symbols[] = { 1,\r
-0x10190, 0x101cf,\r
-}; /* END of CR_In_Ancient_Symbols */\r
-\r
-/* PROPERTY: 'In_Phaistos_Disc': Block */\r
-static const OnigCodePoint\r
-CR_In_Phaistos_Disc[] = { 1,\r
-0x101d0, 0x101ff,\r
-}; /* END of CR_In_Phaistos_Disc */\r
-\r
-/* PROPERTY: 'In_Lycian': Block */\r
-static const OnigCodePoint\r
-CR_In_Lycian[] = { 1,\r
-0x10280, 0x1029f,\r
-}; /* END of CR_In_Lycian */\r
-\r
-/* PROPERTY: 'In_Carian': Block */\r
-static const OnigCodePoint\r
-CR_In_Carian[] = { 1,\r
-0x102a0, 0x102df,\r
-}; /* END of CR_In_Carian */\r
-\r
-/* PROPERTY: 'In_Coptic_Epact_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Coptic_Epact_Numbers[] = { 1,\r
-0x102e0, 0x102ff,\r
-}; /* END of CR_In_Coptic_Epact_Numbers */\r
-\r
-/* PROPERTY: 'In_Old_Italic': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Italic[] = { 1,\r
-0x10300, 0x1032f,\r
-}; /* END of CR_In_Old_Italic */\r
-\r
-/* PROPERTY: 'In_Gothic': Block */\r
-static const OnigCodePoint\r
-CR_In_Gothic[] = { 1,\r
-0x10330, 0x1034f,\r
-}; /* END of CR_In_Gothic */\r
-\r
-/* PROPERTY: 'In_Old_Permic': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Permic[] = { 1,\r
-0x10350, 0x1037f,\r
-}; /* END of CR_In_Old_Permic */\r
-\r
-/* PROPERTY: 'In_Ugaritic': Block */\r
-static const OnigCodePoint\r
-CR_In_Ugaritic[] = { 1,\r
-0x10380, 0x1039f,\r
-}; /* END of CR_In_Ugaritic */\r
-\r
-/* PROPERTY: 'In_Old_Persian': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Persian[] = { 1,\r
-0x103a0, 0x103df,\r
-}; /* END of CR_In_Old_Persian */\r
-\r
-/* PROPERTY: 'In_Deseret': Block */\r
-#define CR_In_Deseret CR_Deseret\r
-\r
-/* PROPERTY: 'In_Shavian': Block */\r
-#define CR_In_Shavian CR_Shavian\r
-\r
-/* PROPERTY: 'In_Osmanya': Block */\r
-static const OnigCodePoint\r
-CR_In_Osmanya[] = { 1,\r
-0x10480, 0x104af,\r
-}; /* END of CR_In_Osmanya */\r
-\r
-/* PROPERTY: 'In_Osage': Block */\r
-static const OnigCodePoint\r
-CR_In_Osage[] = { 1,\r
-0x104b0, 0x104ff,\r
-}; /* END of CR_In_Osage */\r
-\r
-/* PROPERTY: 'In_Elbasan': Block */\r
-static const OnigCodePoint\r
-CR_In_Elbasan[] = { 1,\r
-0x10500, 0x1052f,\r
-}; /* END of CR_In_Elbasan */\r
-\r
-/* PROPERTY: 'In_Caucasian_Albanian': Block */\r
-static const OnigCodePoint\r
-CR_In_Caucasian_Albanian[] = { 1,\r
-0x10530, 0x1056f,\r
-}; /* END of CR_In_Caucasian_Albanian */\r
-\r
-/* PROPERTY: 'In_Linear_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Linear_A[] = { 1,\r
-0x10600, 0x1077f,\r
-}; /* END of CR_In_Linear_A */\r
-\r
-/* PROPERTY: 'In_Cypriot_Syllabary': Block */\r
-static const OnigCodePoint\r
-CR_In_Cypriot_Syllabary[] = { 1,\r
-0x10800, 0x1083f,\r
-}; /* END of CR_In_Cypriot_Syllabary */\r
-\r
-/* PROPERTY: 'In_Imperial_Aramaic': Block */\r
-static const OnigCodePoint\r
-CR_In_Imperial_Aramaic[] = { 1,\r
-0x10840, 0x1085f,\r
-}; /* END of CR_In_Imperial_Aramaic */\r
-\r
-/* PROPERTY: 'In_Palmyrene': Block */\r
-#define CR_In_Palmyrene CR_Palmyrene\r
-\r
-/* PROPERTY: 'In_Nabataean': Block */\r
-static const OnigCodePoint\r
-CR_In_Nabataean[] = { 1,\r
-0x10880, 0x108af,\r
-}; /* END of CR_In_Nabataean */\r
-\r
-/* PROPERTY: 'In_Hatran': Block */\r
-static const OnigCodePoint\r
-CR_In_Hatran[] = { 1,\r
-0x108e0, 0x108ff,\r
-}; /* END of CR_In_Hatran */\r
-\r
-/* PROPERTY: 'In_Phoenician': Block */\r
-static const OnigCodePoint\r
-CR_In_Phoenician[] = { 1,\r
-0x10900, 0x1091f,\r
-}; /* END of CR_In_Phoenician */\r
-\r
-/* PROPERTY: 'In_Lydian': Block */\r
-static const OnigCodePoint\r
-CR_In_Lydian[] = { 1,\r
-0x10920, 0x1093f,\r
-}; /* END of CR_In_Lydian */\r
-\r
-/* PROPERTY: 'In_Meroitic_Hieroglyphs': Block */\r
-#define CR_In_Meroitic_Hieroglyphs CR_Meroitic_Hieroglyphs\r
-\r
-/* PROPERTY: 'In_Meroitic_Cursive': Block */\r
-static const OnigCodePoint\r
-CR_In_Meroitic_Cursive[] = { 1,\r
-0x109a0, 0x109ff,\r
-}; /* END of CR_In_Meroitic_Cursive */\r
-\r
-/* PROPERTY: 'In_Kharoshthi': Block */\r
-static const OnigCodePoint\r
-CR_In_Kharoshthi[] = { 1,\r
-0x10a00, 0x10a5f,\r
-}; /* END of CR_In_Kharoshthi */\r
-\r
-/* PROPERTY: 'In_Old_South_Arabian': Block */\r
-#define CR_In_Old_South_Arabian CR_Old_South_Arabian\r
-\r
-/* PROPERTY: 'In_Old_North_Arabian': Block */\r
-#define CR_In_Old_North_Arabian CR_Old_North_Arabian\r
-\r
-/* PROPERTY: 'In_Manichaean': Block */\r
-static const OnigCodePoint\r
-CR_In_Manichaean[] = { 1,\r
-0x10ac0, 0x10aff,\r
-}; /* END of CR_In_Manichaean */\r
-\r
-/* PROPERTY: 'In_Avestan': Block */\r
-static const OnigCodePoint\r
-CR_In_Avestan[] = { 1,\r
-0x10b00, 0x10b3f,\r
-}; /* END of CR_In_Avestan */\r
-\r
-/* PROPERTY: 'In_Inscriptional_Parthian': Block */\r
-static const OnigCodePoint\r
-CR_In_Inscriptional_Parthian[] = { 1,\r
-0x10b40, 0x10b5f,\r
-}; /* END of CR_In_Inscriptional_Parthian */\r
-\r
-/* PROPERTY: 'In_Inscriptional_Pahlavi': Block */\r
-static const OnigCodePoint\r
-CR_In_Inscriptional_Pahlavi[] = { 1,\r
-0x10b60, 0x10b7f,\r
-}; /* END of CR_In_Inscriptional_Pahlavi */\r
-\r
-/* PROPERTY: 'In_Psalter_Pahlavi': Block */\r
-static const OnigCodePoint\r
-CR_In_Psalter_Pahlavi[] = { 1,\r
-0x10b80, 0x10baf,\r
-}; /* END of CR_In_Psalter_Pahlavi */\r
-\r
-/* PROPERTY: 'In_Old_Turkic': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Turkic[] = { 1,\r
-0x10c00, 0x10c4f,\r
-}; /* END of CR_In_Old_Turkic */\r
-\r
-/* PROPERTY: 'In_Old_Hungarian': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Hungarian[] = { 1,\r
-0x10c80, 0x10cff,\r
-}; /* END of CR_In_Old_Hungarian */\r
-\r
-/* PROPERTY: 'In_Hanifi_Rohingya': Block */\r
-static const OnigCodePoint\r
-CR_In_Hanifi_Rohingya[] = { 1,\r
-0x10d00, 0x10d3f,\r
-}; /* END of CR_In_Hanifi_Rohingya */\r
-\r
-/* PROPERTY: 'In_Rumi_Numeral_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Rumi_Numeral_Symbols[] = { 1,\r
-0x10e60, 0x10e7f,\r
-}; /* END of CR_In_Rumi_Numeral_Symbols */\r
-\r
-/* PROPERTY: 'In_Old_Sogdian': Block */\r
-static const OnigCodePoint\r
-CR_In_Old_Sogdian[] = { 1,\r
-0x10f00, 0x10f2f,\r
-}; /* END of CR_In_Old_Sogdian */\r
-\r
-/* PROPERTY: 'In_Sogdian': Block */\r
-static const OnigCodePoint\r
-CR_In_Sogdian[] = { 1,\r
-0x10f30, 0x10f6f,\r
-}; /* END of CR_In_Sogdian */\r
-\r
-/* PROPERTY: 'In_Elymaic': Block */\r
-static const OnigCodePoint\r
-CR_In_Elymaic[] = { 1,\r
-0x10fe0, 0x10fff,\r
-}; /* END of CR_In_Elymaic */\r
-\r
-/* PROPERTY: 'In_Brahmi': Block */\r
-static const OnigCodePoint\r
-CR_In_Brahmi[] = { 1,\r
-0x11000, 0x1107f,\r
-}; /* END of CR_In_Brahmi */\r
-\r
-/* PROPERTY: 'In_Kaithi': Block */\r
-static const OnigCodePoint\r
-CR_In_Kaithi[] = { 1,\r
-0x11080, 0x110cf,\r
-}; /* END of CR_In_Kaithi */\r
-\r
-/* PROPERTY: 'In_Sora_Sompeng': Block */\r
-static const OnigCodePoint\r
-CR_In_Sora_Sompeng[] = { 1,\r
-0x110d0, 0x110ff,\r
-}; /* END of CR_In_Sora_Sompeng */\r
-\r
-/* PROPERTY: 'In_Chakma': Block */\r
-static const OnigCodePoint\r
-CR_In_Chakma[] = { 1,\r
-0x11100, 0x1114f,\r
-}; /* END of CR_In_Chakma */\r
-\r
-/* PROPERTY: 'In_Mahajani': Block */\r
-static const OnigCodePoint\r
-CR_In_Mahajani[] = { 1,\r
-0x11150, 0x1117f,\r
-}; /* END of CR_In_Mahajani */\r
-\r
-/* PROPERTY: 'In_Sharada': Block */\r
-static const OnigCodePoint\r
-CR_In_Sharada[] = { 1,\r
-0x11180, 0x111df,\r
-}; /* END of CR_In_Sharada */\r
-\r
-/* PROPERTY: 'In_Sinhala_Archaic_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Sinhala_Archaic_Numbers[] = { 1,\r
-0x111e0, 0x111ff,\r
-}; /* END of CR_In_Sinhala_Archaic_Numbers */\r
-\r
-/* PROPERTY: 'In_Khojki': Block */\r
-static const OnigCodePoint\r
-CR_In_Khojki[] = { 1,\r
-0x11200, 0x1124f,\r
-}; /* END of CR_In_Khojki */\r
-\r
-/* PROPERTY: 'In_Multani': Block */\r
-static const OnigCodePoint\r
-CR_In_Multani[] = { 1,\r
-0x11280, 0x112af,\r
-}; /* END of CR_In_Multani */\r
-\r
-/* PROPERTY: 'In_Khudawadi': Block */\r
-static const OnigCodePoint\r
-CR_In_Khudawadi[] = { 1,\r
-0x112b0, 0x112ff,\r
-}; /* END of CR_In_Khudawadi */\r
-\r
-/* PROPERTY: 'In_Grantha': Block */\r
-static const OnigCodePoint\r
-CR_In_Grantha[] = { 1,\r
-0x11300, 0x1137f,\r
-}; /* END of CR_In_Grantha */\r
-\r
-/* PROPERTY: 'In_Newa': Block */\r
-static const OnigCodePoint\r
-CR_In_Newa[] = { 1,\r
-0x11400, 0x1147f,\r
-}; /* END of CR_In_Newa */\r
-\r
-/* PROPERTY: 'In_Tirhuta': Block */\r
-static const OnigCodePoint\r
-CR_In_Tirhuta[] = { 1,\r
-0x11480, 0x114df,\r
-}; /* END of CR_In_Tirhuta */\r
-\r
-/* PROPERTY: 'In_Siddham': Block */\r
-static const OnigCodePoint\r
-CR_In_Siddham[] = { 1,\r
-0x11580, 0x115ff,\r
-}; /* END of CR_In_Siddham */\r
-\r
-/* PROPERTY: 'In_Modi': Block */\r
-static const OnigCodePoint\r
-CR_In_Modi[] = { 1,\r
-0x11600, 0x1165f,\r
-}; /* END of CR_In_Modi */\r
-\r
-/* PROPERTY: 'In_Mongolian_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Mongolian_Supplement[] = { 1,\r
-0x11660, 0x1167f,\r
-}; /* END of CR_In_Mongolian_Supplement */\r
-\r
-/* PROPERTY: 'In_Takri': Block */\r
-static const OnigCodePoint\r
-CR_In_Takri[] = { 1,\r
-0x11680, 0x116cf,\r
-}; /* END of CR_In_Takri */\r
-\r
-/* PROPERTY: 'In_Ahom': Block */\r
-static const OnigCodePoint\r
-CR_In_Ahom[] = { 1,\r
-0x11700, 0x1173f,\r
-}; /* END of CR_In_Ahom */\r
-\r
-/* PROPERTY: 'In_Dogra': Block */\r
-static const OnigCodePoint\r
-CR_In_Dogra[] = { 1,\r
-0x11800, 0x1184f,\r
-}; /* END of CR_In_Dogra */\r
-\r
-/* PROPERTY: 'In_Warang_Citi': Block */\r
-static const OnigCodePoint\r
-CR_In_Warang_Citi[] = { 1,\r
-0x118a0, 0x118ff,\r
-}; /* END of CR_In_Warang_Citi */\r
-\r
-/* PROPERTY: 'In_Nandinagari': Block */\r
-static const OnigCodePoint\r
-CR_In_Nandinagari[] = { 1,\r
-0x119a0, 0x119ff,\r
-}; /* END of CR_In_Nandinagari */\r
-\r
-/* PROPERTY: 'In_Zanabazar_Square': Block */\r
-static const OnigCodePoint\r
-CR_In_Zanabazar_Square[] = { 1,\r
-0x11a00, 0x11a4f,\r
-}; /* END of CR_In_Zanabazar_Square */\r
-\r
-/* PROPERTY: 'In_Soyombo': Block */\r
-static const OnigCodePoint\r
-CR_In_Soyombo[] = { 1,\r
-0x11a50, 0x11aaf,\r
-}; /* END of CR_In_Soyombo */\r
-\r
-/* PROPERTY: 'In_Pau_Cin_Hau': Block */\r
-static const OnigCodePoint\r
-CR_In_Pau_Cin_Hau[] = { 1,\r
-0x11ac0, 0x11aff,\r
-}; /* END of CR_In_Pau_Cin_Hau */\r
-\r
-/* PROPERTY: 'In_Bhaiksuki': Block */\r
-static const OnigCodePoint\r
-CR_In_Bhaiksuki[] = { 1,\r
-0x11c00, 0x11c6f,\r
-}; /* END of CR_In_Bhaiksuki */\r
-\r
-/* PROPERTY: 'In_Marchen': Block */\r
-static const OnigCodePoint\r
-CR_In_Marchen[] = { 1,\r
-0x11c70, 0x11cbf,\r
-}; /* END of CR_In_Marchen */\r
-\r
-/* PROPERTY: 'In_Masaram_Gondi': Block */\r
-static const OnigCodePoint\r
-CR_In_Masaram_Gondi[] = { 1,\r
-0x11d00, 0x11d5f,\r
-}; /* END of CR_In_Masaram_Gondi */\r
-\r
-/* PROPERTY: 'In_Gunjala_Gondi': Block */\r
-static const OnigCodePoint\r
-CR_In_Gunjala_Gondi[] = { 1,\r
-0x11d60, 0x11daf,\r
-}; /* END of CR_In_Gunjala_Gondi */\r
-\r
-/* PROPERTY: 'In_Makasar': Block */\r
-static const OnigCodePoint\r
-CR_In_Makasar[] = { 1,\r
-0x11ee0, 0x11eff,\r
-}; /* END of CR_In_Makasar */\r
-\r
-/* PROPERTY: 'In_Tamil_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Tamil_Supplement[] = { 1,\r
-0x11fc0, 0x11fff,\r
-}; /* END of CR_In_Tamil_Supplement */\r
-\r
-/* PROPERTY: 'In_Cuneiform': Block */\r
-static const OnigCodePoint\r
-CR_In_Cuneiform[] = { 1,\r
-0x12000, 0x123ff,\r
-}; /* END of CR_In_Cuneiform */\r
-\r
-/* PROPERTY: 'In_Cuneiform_Numbers_and_Punctuation': Block */\r
-static const OnigCodePoint\r
-CR_In_Cuneiform_Numbers_and_Punctuation[] = { 1,\r
-0x12400, 0x1247f,\r
-}; /* END of CR_In_Cuneiform_Numbers_and_Punctuation */\r
-\r
-/* PROPERTY: 'In_Early_Dynastic_Cuneiform': Block */\r
-static const OnigCodePoint\r
-CR_In_Early_Dynastic_Cuneiform[] = { 1,\r
-0x12480, 0x1254f,\r
-}; /* END of CR_In_Early_Dynastic_Cuneiform */\r
-\r
-/* PROPERTY: 'In_Egyptian_Hieroglyphs': Block */\r
-static const OnigCodePoint\r
-CR_In_Egyptian_Hieroglyphs[] = { 1,\r
-0x13000, 0x1342f,\r
-}; /* END of CR_In_Egyptian_Hieroglyphs */\r
-\r
-/* PROPERTY: 'In_Egyptian_Hieroglyph_Format_Controls': Block */\r
-static const OnigCodePoint\r
-CR_In_Egyptian_Hieroglyph_Format_Controls[] = { 1,\r
-0x13430, 0x1343f,\r
-}; /* END of CR_In_Egyptian_Hieroglyph_Format_Controls */\r
-\r
-/* PROPERTY: 'In_Anatolian_Hieroglyphs': Block */\r
-static const OnigCodePoint\r
-CR_In_Anatolian_Hieroglyphs[] = { 1,\r
-0x14400, 0x1467f,\r
-}; /* END of CR_In_Anatolian_Hieroglyphs */\r
-\r
-/* PROPERTY: 'In_Bamum_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Bamum_Supplement[] = { 1,\r
-0x16800, 0x16a3f,\r
-}; /* END of CR_In_Bamum_Supplement */\r
-\r
-/* PROPERTY: 'In_Mro': Block */\r
-static const OnigCodePoint\r
-CR_In_Mro[] = { 1,\r
-0x16a40, 0x16a6f,\r
-}; /* END of CR_In_Mro */\r
-\r
-/* PROPERTY: 'In_Bassa_Vah': Block */\r
-static const OnigCodePoint\r
-CR_In_Bassa_Vah[] = { 1,\r
-0x16ad0, 0x16aff,\r
-}; /* END of CR_In_Bassa_Vah */\r
-\r
-/* PROPERTY: 'In_Pahawh_Hmong': Block */\r
-static const OnigCodePoint\r
-CR_In_Pahawh_Hmong[] = { 1,\r
-0x16b00, 0x16b8f,\r
-}; /* END of CR_In_Pahawh_Hmong */\r
-\r
-/* PROPERTY: 'In_Medefaidrin': Block */\r
-static const OnigCodePoint\r
-CR_In_Medefaidrin[] = { 1,\r
-0x16e40, 0x16e9f,\r
-}; /* END of CR_In_Medefaidrin */\r
-\r
-/* PROPERTY: 'In_Miao': Block */\r
-static const OnigCodePoint\r
-CR_In_Miao[] = { 1,\r
-0x16f00, 0x16f9f,\r
-}; /* END of CR_In_Miao */\r
-\r
-/* PROPERTY: 'In_Ideographic_Symbols_and_Punctuation': Block */\r
-static const OnigCodePoint\r
-CR_In_Ideographic_Symbols_and_Punctuation[] = { 1,\r
-0x16fe0, 0x16fff,\r
-}; /* END of CR_In_Ideographic_Symbols_and_Punctuation */\r
-\r
-/* PROPERTY: 'In_Tangut': Block */\r
-static const OnigCodePoint\r
-CR_In_Tangut[] = { 1,\r
-0x17000, 0x187ff,\r
-}; /* END of CR_In_Tangut */\r
-\r
-/* PROPERTY: 'In_Tangut_Components': Block */\r
-static const OnigCodePoint\r
-CR_In_Tangut_Components[] = { 1,\r
-0x18800, 0x18aff,\r
-}; /* END of CR_In_Tangut_Components */\r
-\r
-/* PROPERTY: 'In_Kana_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Kana_Supplement[] = { 1,\r
-0x1b000, 0x1b0ff,\r
-}; /* END of CR_In_Kana_Supplement */\r
-\r
-/* PROPERTY: 'In_Kana_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Kana_Extended_A[] = { 1,\r
-0x1b100, 0x1b12f,\r
-}; /* END of CR_In_Kana_Extended_A */\r
-\r
-/* PROPERTY: 'In_Small_Kana_Extension': Block */\r
-static const OnigCodePoint\r
-CR_In_Small_Kana_Extension[] = { 1,\r
-0x1b130, 0x1b16f,\r
-}; /* END of CR_In_Small_Kana_Extension */\r
-\r
-/* PROPERTY: 'In_Nushu': Block */\r
-static const OnigCodePoint\r
-CR_In_Nushu[] = { 1,\r
-0x1b170, 0x1b2ff,\r
-}; /* END of CR_In_Nushu */\r
-\r
-/* PROPERTY: 'In_Duployan': Block */\r
-static const OnigCodePoint\r
-CR_In_Duployan[] = { 1,\r
-0x1bc00, 0x1bc9f,\r
-}; /* END of CR_In_Duployan */\r
-\r
-/* PROPERTY: 'In_Shorthand_Format_Controls': Block */\r
-static const OnigCodePoint\r
-CR_In_Shorthand_Format_Controls[] = { 1,\r
-0x1bca0, 0x1bcaf,\r
-}; /* END of CR_In_Shorthand_Format_Controls */\r
-\r
-/* PROPERTY: 'In_Byzantine_Musical_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Byzantine_Musical_Symbols[] = { 1,\r
-0x1d000, 0x1d0ff,\r
-}; /* END of CR_In_Byzantine_Musical_Symbols */\r
-\r
-/* PROPERTY: 'In_Musical_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Musical_Symbols[] = { 1,\r
-0x1d100, 0x1d1ff,\r
-}; /* END of CR_In_Musical_Symbols */\r
-\r
-/* PROPERTY: 'In_Ancient_Greek_Musical_Notation': Block */\r
-static const OnigCodePoint\r
-CR_In_Ancient_Greek_Musical_Notation[] = { 1,\r
-0x1d200, 0x1d24f,\r
-}; /* END of CR_In_Ancient_Greek_Musical_Notation */\r
-\r
-/* PROPERTY: 'In_Mayan_Numerals': Block */\r
-static const OnigCodePoint\r
-CR_In_Mayan_Numerals[] = { 1,\r
-0x1d2e0, 0x1d2ff,\r
-}; /* END of CR_In_Mayan_Numerals */\r
-\r
-/* PROPERTY: 'In_Tai_Xuan_Jing_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Tai_Xuan_Jing_Symbols[] = { 1,\r
-0x1d300, 0x1d35f,\r
-}; /* END of CR_In_Tai_Xuan_Jing_Symbols */\r
-\r
-/* PROPERTY: 'In_Counting_Rod_Numerals': Block */\r
-static const OnigCodePoint\r
-CR_In_Counting_Rod_Numerals[] = { 1,\r
-0x1d360, 0x1d37f,\r
-}; /* END of CR_In_Counting_Rod_Numerals */\r
-\r
-/* PROPERTY: 'In_Mathematical_Alphanumeric_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Mathematical_Alphanumeric_Symbols[] = { 1,\r
-0x1d400, 0x1d7ff,\r
-}; /* END of CR_In_Mathematical_Alphanumeric_Symbols */\r
-\r
-/* PROPERTY: 'In_Sutton_SignWriting': Block */\r
-static const OnigCodePoint\r
-CR_In_Sutton_SignWriting[] = { 1,\r
-0x1d800, 0x1daaf,\r
-}; /* END of CR_In_Sutton_SignWriting */\r
-\r
-/* PROPERTY: 'In_Glagolitic_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Glagolitic_Supplement[] = { 1,\r
-0x1e000, 0x1e02f,\r
-}; /* END of CR_In_Glagolitic_Supplement */\r
-\r
-/* PROPERTY: 'In_Nyiakeng_Puachue_Hmong': Block */\r
-static const OnigCodePoint\r
-CR_In_Nyiakeng_Puachue_Hmong[] = { 1,\r
-0x1e100, 0x1e14f,\r
-}; /* END of CR_In_Nyiakeng_Puachue_Hmong */\r
-\r
-/* PROPERTY: 'In_Wancho': Block */\r
-static const OnigCodePoint\r
-CR_In_Wancho[] = { 1,\r
-0x1e2c0, 0x1e2ff,\r
-}; /* END of CR_In_Wancho */\r
-\r
-/* PROPERTY: 'In_Mende_Kikakui': Block */\r
-static const OnigCodePoint\r
-CR_In_Mende_Kikakui[] = { 1,\r
-0x1e800, 0x1e8df,\r
-}; /* END of CR_In_Mende_Kikakui */\r
-\r
-/* PROPERTY: 'In_Adlam': Block */\r
-static const OnigCodePoint\r
-CR_In_Adlam[] = { 1,\r
-0x1e900, 0x1e95f,\r
-}; /* END of CR_In_Adlam */\r
-\r
-/* PROPERTY: 'In_Indic_Siyaq_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Indic_Siyaq_Numbers[] = { 1,\r
-0x1ec70, 0x1ecbf,\r
-}; /* END of CR_In_Indic_Siyaq_Numbers */\r
-\r
-/* PROPERTY: 'In_Ottoman_Siyaq_Numbers': Block */\r
-static const OnigCodePoint\r
-CR_In_Ottoman_Siyaq_Numbers[] = { 1,\r
-0x1ed00, 0x1ed4f,\r
-}; /* END of CR_In_Ottoman_Siyaq_Numbers */\r
-\r
-/* PROPERTY: 'In_Arabic_Mathematical_Alphabetic_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Arabic_Mathematical_Alphabetic_Symbols[] = { 1,\r
-0x1ee00, 0x1eeff,\r
-}; /* END of CR_In_Arabic_Mathematical_Alphabetic_Symbols */\r
-\r
-/* PROPERTY: 'In_Mahjong_Tiles': Block */\r
-static const OnigCodePoint\r
-CR_In_Mahjong_Tiles[] = { 1,\r
-0x1f000, 0x1f02f,\r
-}; /* END of CR_In_Mahjong_Tiles */\r
-\r
-/* PROPERTY: 'In_Domino_Tiles': Block */\r
-static const OnigCodePoint\r
-CR_In_Domino_Tiles[] = { 1,\r
-0x1f030, 0x1f09f,\r
-}; /* END of CR_In_Domino_Tiles */\r
-\r
-/* PROPERTY: 'In_Playing_Cards': Block */\r
-static const OnigCodePoint\r
-CR_In_Playing_Cards[] = { 1,\r
-0x1f0a0, 0x1f0ff,\r
-}; /* END of CR_In_Playing_Cards */\r
-\r
-/* PROPERTY: 'In_Enclosed_Alphanumeric_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Enclosed_Alphanumeric_Supplement[] = { 1,\r
-0x1f100, 0x1f1ff,\r
-}; /* END of CR_In_Enclosed_Alphanumeric_Supplement */\r
-\r
-/* PROPERTY: 'In_Enclosed_Ideographic_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Enclosed_Ideographic_Supplement[] = { 1,\r
-0x1f200, 0x1f2ff,\r
-}; /* END of CR_In_Enclosed_Ideographic_Supplement */\r
-\r
-/* PROPERTY: 'In_Miscellaneous_Symbols_and_Pictographs': Block */\r
-static const OnigCodePoint\r
-CR_In_Miscellaneous_Symbols_and_Pictographs[] = { 1,\r
-0x1f300, 0x1f5ff,\r
-}; /* END of CR_In_Miscellaneous_Symbols_and_Pictographs */\r
-\r
-/* PROPERTY: 'In_Emoticons': Block */\r
-static const OnigCodePoint\r
-CR_In_Emoticons[] = { 1,\r
-0x1f600, 0x1f64f,\r
-}; /* END of CR_In_Emoticons */\r
-\r
-/* PROPERTY: 'In_Ornamental_Dingbats': Block */\r
-static const OnigCodePoint\r
-CR_In_Ornamental_Dingbats[] = { 1,\r
-0x1f650, 0x1f67f,\r
-}; /* END of CR_In_Ornamental_Dingbats */\r
-\r
-/* PROPERTY: 'In_Transport_and_Map_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Transport_and_Map_Symbols[] = { 1,\r
-0x1f680, 0x1f6ff,\r
-}; /* END of CR_In_Transport_and_Map_Symbols */\r
-\r
-/* PROPERTY: 'In_Alchemical_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Alchemical_Symbols[] = { 1,\r
-0x1f700, 0x1f77f,\r
-}; /* END of CR_In_Alchemical_Symbols */\r
-\r
-/* PROPERTY: 'In_Geometric_Shapes_Extended': Block */\r
-static const OnigCodePoint\r
-CR_In_Geometric_Shapes_Extended[] = { 1,\r
-0x1f780, 0x1f7ff,\r
-}; /* END of CR_In_Geometric_Shapes_Extended */\r
-\r
-/* PROPERTY: 'In_Supplemental_Arrows_C': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Arrows_C[] = { 1,\r
-0x1f800, 0x1f8ff,\r
-}; /* END of CR_In_Supplemental_Arrows_C */\r
-\r
-/* PROPERTY: 'In_Supplemental_Symbols_and_Pictographs': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplemental_Symbols_and_Pictographs[] = { 1,\r
-0x1f900, 0x1f9ff,\r
-}; /* END of CR_In_Supplemental_Symbols_and_Pictographs */\r
-\r
-/* PROPERTY: 'In_Chess_Symbols': Block */\r
-static const OnigCodePoint\r
-CR_In_Chess_Symbols[] = { 1,\r
-0x1fa00, 0x1fa6f,\r
-}; /* END of CR_In_Chess_Symbols */\r
-\r
-/* PROPERTY: 'In_Symbols_and_Pictographs_Extended_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Symbols_and_Pictographs_Extended_A[] = { 1,\r
-0x1fa70, 0x1faff,\r
-}; /* END of CR_In_Symbols_and_Pictographs_Extended_A */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_B': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_B[] = { 1,\r
-0x20000, 0x2a6df,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_B */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_C': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_C[] = { 1,\r
-0x2a700, 0x2b73f,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_C */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_D': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_D[] = { 1,\r
-0x2b740, 0x2b81f,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_D */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_E': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_E[] = { 1,\r
-0x2b820, 0x2ceaf,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_E */\r
-\r
-/* PROPERTY: 'In_CJK_Unified_Ideographs_Extension_F': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Unified_Ideographs_Extension_F[] = { 1,\r
-0x2ceb0, 0x2ebef,\r
-}; /* END of CR_In_CJK_Unified_Ideographs_Extension_F */\r
-\r
-/* PROPERTY: 'In_CJK_Compatibility_Ideographs_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_CJK_Compatibility_Ideographs_Supplement[] = { 1,\r
-0x2f800, 0x2fa1f,\r
-}; /* END of CR_In_CJK_Compatibility_Ideographs_Supplement */\r
-\r
-/* PROPERTY: 'In_Tags': Block */\r
-static const OnigCodePoint\r
-CR_In_Tags[] = { 1,\r
-0xe0000, 0xe007f,\r
-}; /* END of CR_In_Tags */\r
-\r
-/* PROPERTY: 'In_Variation_Selectors_Supplement': Block */\r
-static const OnigCodePoint\r
-CR_In_Variation_Selectors_Supplement[] = { 1,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_In_Variation_Selectors_Supplement */\r
-\r
-/* PROPERTY: 'In_Supplementary_Private_Use_Area_A': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplementary_Private_Use_Area_A[] = { 1,\r
-0xf0000, 0xfffff,\r
-}; /* END of CR_In_Supplementary_Private_Use_Area_A */\r
-\r
-/* PROPERTY: 'In_Supplementary_Private_Use_Area_B': Block */\r
-static const OnigCodePoint\r
-CR_In_Supplementary_Private_Use_Area_B[] = { 1,\r
-0x100000, 0x10ffff,\r
-}; /* END of CR_In_Supplementary_Private_Use_Area_B */\r
-\r
-/* PROPERTY: 'In_No_Block': Block */\r
-static const OnigCodePoint\r
-CR_In_No_Block[] = { 53,\r
-0x0870, 0x089f,\r
-0x2fe0, 0x2fef,\r
-0x10200, 0x1027f,\r
-0x103e0, 0x103ff,\r
-0x10570, 0x105ff,\r
-0x10780, 0x107ff,\r
-0x108b0, 0x108df,\r
-0x10940, 0x1097f,\r
-0x10aa0, 0x10abf,\r
-0x10bb0, 0x10bff,\r
-0x10c50, 0x10c7f,\r
-0x10d40, 0x10e5f,\r
-0x10e80, 0x10eff,\r
-0x10f70, 0x10fdf,\r
-0x11250, 0x1127f,\r
-0x11380, 0x113ff,\r
-0x114e0, 0x1157f,\r
-0x116d0, 0x116ff,\r
-0x11740, 0x117ff,\r
-0x11850, 0x1189f,\r
-0x11900, 0x1199f,\r
-0x11ab0, 0x11abf,\r
-0x11b00, 0x11bff,\r
-0x11cc0, 0x11cff,\r
-0x11db0, 0x11edf,\r
-0x11f00, 0x11fbf,\r
-0x12550, 0x12fff,\r
-0x13440, 0x143ff,\r
-0x14680, 0x167ff,\r
-0x16a70, 0x16acf,\r
-0x16b90, 0x16e3f,\r
-0x16ea0, 0x16eff,\r
-0x16fa0, 0x16fdf,\r
-0x18b00, 0x1afff,\r
-0x1b300, 0x1bbff,\r
-0x1bcb0, 0x1cfff,\r
-0x1d250, 0x1d2df,\r
-0x1d380, 0x1d3ff,\r
-0x1dab0, 0x1dfff,\r
-0x1e030, 0x1e0ff,\r
-0x1e150, 0x1e2bf,\r
-0x1e300, 0x1e7ff,\r
-0x1e8e0, 0x1e8ff,\r
-0x1e960, 0x1ec6f,\r
-0x1ecc0, 0x1ecff,\r
-0x1ed50, 0x1edff,\r
-0x1ef00, 0x1efff,\r
-0x1fb00, 0x1ffff,\r
-0x2a6e0, 0x2a6ff,\r
-0x2ebf0, 0x2f7ff,\r
-0x2fa20, 0xdffff,\r
-0xe0080, 0xe00ff,\r
-0xe01f0, 0xeffff,\r
-}; /* END of CR_In_No_Block */\r
-\r
-static const OnigCodePoint*\r
-const CodeRanges[] = {\r
- CR_NEWLINE,\r
- CR_Alpha,\r
- CR_Blank,\r
- CR_Cntrl,\r
- CR_Digit,\r
- CR_Graph,\r
- CR_Lower,\r
- CR_Print,\r
- CR_Punct,\r
- CR_Space,\r
- CR_Upper,\r
- CR_XDigit,\r
- CR_Word,\r
- CR_Alnum,\r
- CR_ASCII,\r
- CR_ASCII_Hex_Digit,\r
- CR_Adlam,\r
- CR_Ahom,\r
- CR_Alphabetic,\r
- CR_Anatolian_Hieroglyphs,\r
- CR_Any,\r
- CR_Arabic,\r
- CR_Armenian,\r
- CR_Assigned,\r
- CR_Avestan,\r
- CR_Balinese,\r
- CR_Bamum,\r
- CR_Bassa_Vah,\r
- CR_Batak,\r
- CR_Bengali,\r
- CR_Bhaiksuki,\r
- CR_Bidi_Control,\r
- CR_Bopomofo,\r
- CR_Brahmi,\r
- CR_Braille,\r
- CR_Buginese,\r
- CR_Buhid,\r
- CR_C,\r
- CR_Canadian_Aboriginal,\r
- CR_Carian,\r
- CR_Case_Ignorable,\r
- CR_Cased,\r
- CR_Caucasian_Albanian,\r
- CR_Cc,\r
- CR_Cf,\r
- CR_Chakma,\r
- CR_Cham,\r
- CR_Changes_When_Casefolded,\r
- CR_Changes_When_Casemapped,\r
- CR_Changes_When_Lowercased,\r
- CR_Changes_When_Titlecased,\r
- CR_Changes_When_Uppercased,\r
- CR_Cherokee,\r
- CR_Cn,\r
- CR_Co,\r
- CR_Common,\r
- CR_Coptic,\r
- CR_Cs,\r
- CR_Cuneiform,\r
- CR_Cypriot,\r
- CR_Cyrillic,\r
- CR_Dash,\r
- CR_Default_Ignorable_Code_Point,\r
- CR_Deprecated,\r
- CR_Deseret,\r
- CR_Devanagari,\r
- CR_Diacritic,\r
- CR_Dogra,\r
- CR_Duployan,\r
- CR_Egyptian_Hieroglyphs,\r
- CR_Elbasan,\r
- CR_Elymaic,\r
- CR_Emoji,\r
- CR_Emoji_Component,\r
- CR_Emoji_Modifier,\r
- CR_Emoji_Modifier_Base,\r
- CR_Emoji_Presentation,\r
- CR_Ethiopic,\r
- CR_Extended_Pictographic,\r
- CR_Extender,\r
- CR_Georgian,\r
- CR_Glagolitic,\r
- CR_Gothic,\r
- CR_Grantha,\r
- CR_Grapheme_Base,\r
- CR_Grapheme_Extend,\r
- CR_Grapheme_Link,\r
- CR_Greek,\r
- CR_Gujarati,\r
- CR_Gunjala_Gondi,\r
- CR_Gurmukhi,\r
- CR_Han,\r
- CR_Hangul,\r
- CR_Hanifi_Rohingya,\r
- CR_Hanunoo,\r
- CR_Hatran,\r
- CR_Hebrew,\r
- CR_Hex_Digit,\r
- CR_Hiragana,\r
- CR_Hyphen,\r
- CR_IDS_Binary_Operator,\r
- CR_IDS_Trinary_Operator,\r
- CR_ID_Continue,\r
- CR_ID_Start,\r
- CR_Ideographic,\r
- CR_Imperial_Aramaic,\r
- CR_Inherited,\r
- CR_Inscriptional_Pahlavi,\r
- CR_Inscriptional_Parthian,\r
- CR_Javanese,\r
- CR_Join_Control,\r
- CR_Kaithi,\r
- CR_Kannada,\r
- CR_Katakana,\r
- CR_Kayah_Li,\r
- CR_Kharoshthi,\r
- CR_Khmer,\r
- CR_Khojki,\r
- CR_Khudawadi,\r
- CR_L,\r
- CR_LC,\r
- CR_Lao,\r
- CR_Latin,\r
- CR_Lepcha,\r
- CR_Limbu,\r
- CR_Linear_A,\r
- CR_Linear_B,\r
- CR_Lisu,\r
- CR_Ll,\r
- CR_Lm,\r
- CR_Lo,\r
- CR_Logical_Order_Exception,\r
- CR_Lowercase,\r
- CR_Lt,\r
- CR_Lu,\r
- CR_Lycian,\r
- CR_Lydian,\r
- CR_M,\r
- CR_Mahajani,\r
- CR_Makasar,\r
- CR_Malayalam,\r
- CR_Mandaic,\r
- CR_Manichaean,\r
- CR_Marchen,\r
- CR_Masaram_Gondi,\r
- CR_Math,\r
- CR_Mc,\r
- CR_Me,\r
- CR_Medefaidrin,\r
- CR_Meetei_Mayek,\r
- CR_Mende_Kikakui,\r
- CR_Meroitic_Cursive,\r
- CR_Meroitic_Hieroglyphs,\r
- CR_Miao,\r
- CR_Mn,\r
- CR_Modi,\r
- CR_Mongolian,\r
- CR_Mro,\r
- CR_Multani,\r
- CR_Myanmar,\r
- CR_N,\r
- CR_Nabataean,\r
- CR_Nandinagari,\r
- CR_Nd,\r
- CR_New_Tai_Lue,\r
- CR_Newa,\r
- CR_Nko,\r
- CR_Nl,\r
- CR_No,\r
- CR_Noncharacter_Code_Point,\r
- CR_Nushu,\r
- CR_Nyiakeng_Puachue_Hmong,\r
- CR_Ogham,\r
- CR_Ol_Chiki,\r
- CR_Old_Hungarian,\r
- CR_Old_Italic,\r
- CR_Old_North_Arabian,\r
- CR_Old_Permic,\r
- CR_Old_Persian,\r
- CR_Old_Sogdian,\r
- CR_Old_South_Arabian,\r
- CR_Old_Turkic,\r
- CR_Oriya,\r
- CR_Osage,\r
- CR_Osmanya,\r
- CR_Other_Alphabetic,\r
- CR_Other_Default_Ignorable_Code_Point,\r
- CR_Other_Grapheme_Extend,\r
- CR_Other_ID_Continue,\r
- CR_Other_ID_Start,\r
- CR_Other_Lowercase,\r
- CR_Other_Math,\r
- CR_Other_Uppercase,\r
- CR_P,\r
- CR_Pahawh_Hmong,\r
- CR_Palmyrene,\r
- CR_Pattern_Syntax,\r
- CR_Pattern_White_Space,\r
- CR_Pau_Cin_Hau,\r
- CR_Pc,\r
- CR_Pd,\r
- CR_Pe,\r
- CR_Pf,\r
- CR_Phags_Pa,\r
- CR_Phoenician,\r
- CR_Pi,\r
- CR_Po,\r
- CR_Prepended_Concatenation_Mark,\r
- CR_Ps,\r
- CR_Psalter_Pahlavi,\r
- CR_Quotation_Mark,\r
- CR_Radical,\r
- CR_Regional_Indicator,\r
- CR_Rejang,\r
- CR_Runic,\r
- CR_S,\r
- CR_Samaritan,\r
- CR_Saurashtra,\r
- CR_Sc,\r
- CR_Sentence_Terminal,\r
- CR_Sharada,\r
- CR_Shavian,\r
- CR_Siddham,\r
- CR_SignWriting,\r
- CR_Sinhala,\r
- CR_Sk,\r
- CR_Sm,\r
- CR_So,\r
- CR_Soft_Dotted,\r
- CR_Sogdian,\r
- CR_Sora_Sompeng,\r
- CR_Soyombo,\r
- CR_Sundanese,\r
- CR_Syloti_Nagri,\r
- CR_Syriac,\r
- CR_Tagalog,\r
- CR_Tagbanwa,\r
- CR_Tai_Le,\r
- CR_Tai_Tham,\r
- CR_Tai_Viet,\r
- CR_Takri,\r
- CR_Tamil,\r
- CR_Tangut,\r
- CR_Telugu,\r
- CR_Terminal_Punctuation,\r
- CR_Thaana,\r
- CR_Thai,\r
- CR_Tibetan,\r
- CR_Tifinagh,\r
- CR_Tirhuta,\r
- CR_Ugaritic,\r
- CR_Unified_Ideograph,\r
- CR_Unknown,\r
- CR_Uppercase,\r
- CR_Vai,\r
- CR_Variation_Selector,\r
- CR_Wancho,\r
- CR_Warang_Citi,\r
- CR_White_Space,\r
- CR_XID_Continue,\r
- CR_XID_Start,\r
- CR_Yi,\r
- CR_Z,\r
- CR_Zanabazar_Square,\r
- CR_Zl,\r
- CR_Zp,\r
- CR_Zs,\r
- CR_In_Basic_Latin,\r
- CR_In_Latin_1_Supplement,\r
- CR_In_Latin_Extended_A,\r
- CR_In_Latin_Extended_B,\r
- CR_In_IPA_Extensions,\r
- CR_In_Spacing_Modifier_Letters,\r
- CR_In_Combining_Diacritical_Marks,\r
- CR_In_Greek_and_Coptic,\r
- CR_In_Cyrillic,\r
- CR_In_Cyrillic_Supplement,\r
- CR_In_Armenian,\r
- CR_In_Hebrew,\r
- CR_In_Arabic,\r
- CR_In_Syriac,\r
- CR_In_Arabic_Supplement,\r
- CR_In_Thaana,\r
- CR_In_NKo,\r
- CR_In_Samaritan,\r
- CR_In_Mandaic,\r
- CR_In_Syriac_Supplement,\r
- CR_In_Arabic_Extended_A,\r
- CR_In_Devanagari,\r
- CR_In_Bengali,\r
- CR_In_Gurmukhi,\r
- CR_In_Gujarati,\r
- CR_In_Oriya,\r
- CR_In_Tamil,\r
- CR_In_Telugu,\r
- CR_In_Kannada,\r
- CR_In_Malayalam,\r
- CR_In_Sinhala,\r
- CR_In_Thai,\r
- CR_In_Lao,\r
- CR_In_Tibetan,\r
- CR_In_Myanmar,\r
- CR_In_Georgian,\r
- CR_In_Hangul_Jamo,\r
- CR_In_Ethiopic,\r
- CR_In_Ethiopic_Supplement,\r
- CR_In_Cherokee,\r
- CR_In_Unified_Canadian_Aboriginal_Syllabics,\r
- CR_In_Ogham,\r
- CR_In_Runic,\r
- CR_In_Tagalog,\r
- CR_In_Hanunoo,\r
- CR_In_Buhid,\r
- CR_In_Tagbanwa,\r
- CR_In_Khmer,\r
- CR_In_Mongolian,\r
- CR_In_Unified_Canadian_Aboriginal_Syllabics_Extended,\r
- CR_In_Limbu,\r
- CR_In_Tai_Le,\r
- CR_In_New_Tai_Lue,\r
- CR_In_Khmer_Symbols,\r
- CR_In_Buginese,\r
- CR_In_Tai_Tham,\r
- CR_In_Combining_Diacritical_Marks_Extended,\r
- CR_In_Balinese,\r
- CR_In_Sundanese,\r
- CR_In_Batak,\r
- CR_In_Lepcha,\r
- CR_In_Ol_Chiki,\r
- CR_In_Cyrillic_Extended_C,\r
- CR_In_Georgian_Extended,\r
- CR_In_Sundanese_Supplement,\r
- CR_In_Vedic_Extensions,\r
- CR_In_Phonetic_Extensions,\r
- CR_In_Phonetic_Extensions_Supplement,\r
- CR_In_Combining_Diacritical_Marks_Supplement,\r
- CR_In_Latin_Extended_Additional,\r
- CR_In_Greek_Extended,\r
- CR_In_General_Punctuation,\r
- CR_In_Superscripts_and_Subscripts,\r
- CR_In_Currency_Symbols,\r
- CR_In_Combining_Diacritical_Marks_for_Symbols,\r
- CR_In_Letterlike_Symbols,\r
- CR_In_Number_Forms,\r
- CR_In_Arrows,\r
- CR_In_Mathematical_Operators,\r
- CR_In_Miscellaneous_Technical,\r
- CR_In_Control_Pictures,\r
- CR_In_Optical_Character_Recognition,\r
- CR_In_Enclosed_Alphanumerics,\r
- CR_In_Box_Drawing,\r
- CR_In_Block_Elements,\r
- CR_In_Geometric_Shapes,\r
- CR_In_Miscellaneous_Symbols,\r
- CR_In_Dingbats,\r
- CR_In_Miscellaneous_Mathematical_Symbols_A,\r
- CR_In_Supplemental_Arrows_A,\r
- CR_In_Braille_Patterns,\r
- CR_In_Supplemental_Arrows_B,\r
- CR_In_Miscellaneous_Mathematical_Symbols_B,\r
- CR_In_Supplemental_Mathematical_Operators,\r
- CR_In_Miscellaneous_Symbols_and_Arrows,\r
- CR_In_Glagolitic,\r
- CR_In_Latin_Extended_C,\r
- CR_In_Coptic,\r
- CR_In_Georgian_Supplement,\r
- CR_In_Tifinagh,\r
- CR_In_Ethiopic_Extended,\r
- CR_In_Cyrillic_Extended_A,\r
- CR_In_Supplemental_Punctuation,\r
- CR_In_CJK_Radicals_Supplement,\r
- CR_In_Kangxi_Radicals,\r
- CR_In_Ideographic_Description_Characters,\r
- CR_In_CJK_Symbols_and_Punctuation,\r
- CR_In_Hiragana,\r
- CR_In_Katakana,\r
- CR_In_Bopomofo,\r
- CR_In_Hangul_Compatibility_Jamo,\r
- CR_In_Kanbun,\r
- CR_In_Bopomofo_Extended,\r
- CR_In_CJK_Strokes,\r
- CR_In_Katakana_Phonetic_Extensions,\r
- CR_In_Enclosed_CJK_Letters_and_Months,\r
- CR_In_CJK_Compatibility,\r
- CR_In_CJK_Unified_Ideographs_Extension_A,\r
- CR_In_Yijing_Hexagram_Symbols,\r
- CR_In_CJK_Unified_Ideographs,\r
- CR_In_Yi_Syllables,\r
- CR_In_Yi_Radicals,\r
- CR_In_Lisu,\r
- CR_In_Vai,\r
- CR_In_Cyrillic_Extended_B,\r
- CR_In_Bamum,\r
- CR_In_Modifier_Tone_Letters,\r
- CR_In_Latin_Extended_D,\r
- CR_In_Syloti_Nagri,\r
- CR_In_Common_Indic_Number_Forms,\r
- CR_In_Phags_pa,\r
- CR_In_Saurashtra,\r
- CR_In_Devanagari_Extended,\r
- CR_In_Kayah_Li,\r
- CR_In_Rejang,\r
- CR_In_Hangul_Jamo_Extended_A,\r
- CR_In_Javanese,\r
- CR_In_Myanmar_Extended_B,\r
- CR_In_Cham,\r
- CR_In_Myanmar_Extended_A,\r
- CR_In_Tai_Viet,\r
- CR_In_Meetei_Mayek_Extensions,\r
- CR_In_Ethiopic_Extended_A,\r
- CR_In_Latin_Extended_E,\r
- CR_In_Cherokee_Supplement,\r
- CR_In_Meetei_Mayek,\r
- CR_In_Hangul_Syllables,\r
- CR_In_Hangul_Jamo_Extended_B,\r
- CR_In_High_Surrogates,\r
- CR_In_High_Private_Use_Surrogates,\r
- CR_In_Low_Surrogates,\r
- CR_In_Private_Use_Area,\r
- CR_In_CJK_Compatibility_Ideographs,\r
- CR_In_Alphabetic_Presentation_Forms,\r
- CR_In_Arabic_Presentation_Forms_A,\r
- CR_In_Variation_Selectors,\r
- CR_In_Vertical_Forms,\r
- CR_In_Combining_Half_Marks,\r
- CR_In_CJK_Compatibility_Forms,\r
- CR_In_Small_Form_Variants,\r
- CR_In_Arabic_Presentation_Forms_B,\r
- CR_In_Halfwidth_and_Fullwidth_Forms,\r
- CR_In_Specials,\r
- CR_In_Linear_B_Syllabary,\r
- CR_In_Linear_B_Ideograms,\r
- CR_In_Aegean_Numbers,\r
- CR_In_Ancient_Greek_Numbers,\r
- CR_In_Ancient_Symbols,\r
- CR_In_Phaistos_Disc,\r
- CR_In_Lycian,\r
- CR_In_Carian,\r
- CR_In_Coptic_Epact_Numbers,\r
- CR_In_Old_Italic,\r
- CR_In_Gothic,\r
- CR_In_Old_Permic,\r
- CR_In_Ugaritic,\r
- CR_In_Old_Persian,\r
- CR_In_Deseret,\r
- CR_In_Shavian,\r
- CR_In_Osmanya,\r
- CR_In_Osage,\r
- CR_In_Elbasan,\r
- CR_In_Caucasian_Albanian,\r
- CR_In_Linear_A,\r
- CR_In_Cypriot_Syllabary,\r
- CR_In_Imperial_Aramaic,\r
- CR_In_Palmyrene,\r
- CR_In_Nabataean,\r
- CR_In_Hatran,\r
- CR_In_Phoenician,\r
- CR_In_Lydian,\r
- CR_In_Meroitic_Hieroglyphs,\r
- CR_In_Meroitic_Cursive,\r
- CR_In_Kharoshthi,\r
- CR_In_Old_South_Arabian,\r
- CR_In_Old_North_Arabian,\r
- CR_In_Manichaean,\r
- CR_In_Avestan,\r
- CR_In_Inscriptional_Parthian,\r
- CR_In_Inscriptional_Pahlavi,\r
- CR_In_Psalter_Pahlavi,\r
- CR_In_Old_Turkic,\r
- CR_In_Old_Hungarian,\r
- CR_In_Hanifi_Rohingya,\r
- CR_In_Rumi_Numeral_Symbols,\r
- CR_In_Old_Sogdian,\r
- CR_In_Sogdian,\r
- CR_In_Elymaic,\r
- CR_In_Brahmi,\r
- CR_In_Kaithi,\r
- CR_In_Sora_Sompeng,\r
- CR_In_Chakma,\r
- CR_In_Mahajani,\r
- CR_In_Sharada,\r
- CR_In_Sinhala_Archaic_Numbers,\r
- CR_In_Khojki,\r
- CR_In_Multani,\r
- CR_In_Khudawadi,\r
- CR_In_Grantha,\r
- CR_In_Newa,\r
- CR_In_Tirhuta,\r
- CR_In_Siddham,\r
- CR_In_Modi,\r
- CR_In_Mongolian_Supplement,\r
- CR_In_Takri,\r
- CR_In_Ahom,\r
- CR_In_Dogra,\r
- CR_In_Warang_Citi,\r
- CR_In_Nandinagari,\r
- CR_In_Zanabazar_Square,\r
- CR_In_Soyombo,\r
- CR_In_Pau_Cin_Hau,\r
- CR_In_Bhaiksuki,\r
- CR_In_Marchen,\r
- CR_In_Masaram_Gondi,\r
- CR_In_Gunjala_Gondi,\r
- CR_In_Makasar,\r
- CR_In_Tamil_Supplement,\r
- CR_In_Cuneiform,\r
- CR_In_Cuneiform_Numbers_and_Punctuation,\r
- CR_In_Early_Dynastic_Cuneiform,\r
- CR_In_Egyptian_Hieroglyphs,\r
- CR_In_Egyptian_Hieroglyph_Format_Controls,\r
- CR_In_Anatolian_Hieroglyphs,\r
- CR_In_Bamum_Supplement,\r
- CR_In_Mro,\r
- CR_In_Bassa_Vah,\r
- CR_In_Pahawh_Hmong,\r
- CR_In_Medefaidrin,\r
- CR_In_Miao,\r
- CR_In_Ideographic_Symbols_and_Punctuation,\r
- CR_In_Tangut,\r
- CR_In_Tangut_Components,\r
- CR_In_Kana_Supplement,\r
- CR_In_Kana_Extended_A,\r
- CR_In_Small_Kana_Extension,\r
- CR_In_Nushu,\r
- CR_In_Duployan,\r
- CR_In_Shorthand_Format_Controls,\r
- CR_In_Byzantine_Musical_Symbols,\r
- CR_In_Musical_Symbols,\r
- CR_In_Ancient_Greek_Musical_Notation,\r
- CR_In_Mayan_Numerals,\r
- CR_In_Tai_Xuan_Jing_Symbols,\r
- CR_In_Counting_Rod_Numerals,\r
- CR_In_Mathematical_Alphanumeric_Symbols,\r
- CR_In_Sutton_SignWriting,\r
- CR_In_Glagolitic_Supplement,\r
- CR_In_Nyiakeng_Puachue_Hmong,\r
- CR_In_Wancho,\r
- CR_In_Mende_Kikakui,\r
- CR_In_Adlam,\r
- CR_In_Indic_Siyaq_Numbers,\r
- CR_In_Ottoman_Siyaq_Numbers,\r
- CR_In_Arabic_Mathematical_Alphabetic_Symbols,\r
- CR_In_Mahjong_Tiles,\r
- CR_In_Domino_Tiles,\r
- CR_In_Playing_Cards,\r
- CR_In_Enclosed_Alphanumeric_Supplement,\r
- CR_In_Enclosed_Ideographic_Supplement,\r
- CR_In_Miscellaneous_Symbols_and_Pictographs,\r
- CR_In_Emoticons,\r
- CR_In_Ornamental_Dingbats,\r
- CR_In_Transport_and_Map_Symbols,\r
- CR_In_Alchemical_Symbols,\r
- CR_In_Geometric_Shapes_Extended,\r
- CR_In_Supplemental_Arrows_C,\r
- CR_In_Supplemental_Symbols_and_Pictographs,\r
- CR_In_Chess_Symbols,\r
- CR_In_Symbols_and_Pictographs_Extended_A,\r
- CR_In_CJK_Unified_Ideographs_Extension_B,\r
- CR_In_CJK_Unified_Ideographs_Extension_C,\r
- CR_In_CJK_Unified_Ideographs_Extension_D,\r
- CR_In_CJK_Unified_Ideographs_Extension_E,\r
- CR_In_CJK_Unified_Ideographs_Extension_F,\r
- CR_In_CJK_Compatibility_Ideographs_Supplement,\r
- CR_In_Tags,\r
- CR_In_Variation_Selectors_Supplement,\r
- CR_In_Supplementary_Private_Use_Area_A,\r
- CR_In_Supplementary_Private_Use_Area_B,\r
- CR_In_No_Block,\r
-};\r
-\r
-#define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s)\r
-\r
-\r
-#define TOTAL_KEYWORDS 801\r
-#define MIN_WORD_LENGTH 1\r
-#define MAX_WORD_LENGTH 44\r
-#define MIN_HASH_VALUE 10\r
-#define MAX_HASH_VALUE 5809\r
-/* maximum key range = 5800, duplicates = 0 */\r
-\r
-#ifndef GPERF_DOWNCASE\r
-#define GPERF_DOWNCASE 1\r
-static unsigned char gperf_downcase[256] =\r
- {\r
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,\r
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\r
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,\r
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\r
- 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,\r
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,\r
- 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,\r
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\r
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,\r
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,\r
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,\r
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,\r
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,\r
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,\r
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,\r
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,\r
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,\r
- 255\r
- };\r
-#endif\r
-\r
-#ifndef GPERF_CASE_STRNCMP\r
-#define GPERF_CASE_STRNCMP 1\r
-static int\r
-gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n)\r
-{\r
- for (; n > 0;)\r
- {\r
- unsigned char c1 = gperf_downcase[(unsigned char)*s1++];\r
- unsigned char c2 = gperf_downcase[(unsigned char)*s2++];\r
- if (c1 != 0 && c1 == c2)\r
- {\r
- n--;\r
- continue;\r
- }\r
- return (int)c1 - (int)c2;\r
- }\r
- return 0;\r
-}\r
-#endif\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-static unsigned int\r
-hash (register const char *str, register size_t len)\r
-{\r
- static const unsigned short asso_values[] =\r
- {\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 0, 1121, 136, 394, 19,\r
- 417, 1048, 958, 7, 856, 8, 415, 103, 3, 16,\r
- 1380, 1068, 56, 181, 326, 631, 1151, 930, 358, 1083,\r
- 8, 0, 5, 5810, 5810, 5810, 5810, 0, 1121, 136,\r
- 394, 19, 417, 1048, 958, 7, 856, 8, 415, 103,\r
- 3, 16, 1380, 1068, 56, 181, 326, 631, 1151, 930,\r
- 358, 1083, 8, 0, 5, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810,\r
- 5810, 5810, 5810, 5810, 5810, 5810, 5810, 5810\r
- };\r
- register unsigned int hval = (unsigned int )len;\r
-\r
- switch (hval)\r
- {\r
- default:\r
- hval += asso_values[(unsigned char)str[15]];\r
- /*FALLTHROUGH*/\r
- case 15:\r
- case 14:\r
- case 13:\r
- case 12:\r
- hval += asso_values[(unsigned char)str[11]];\r
- /*FALLTHROUGH*/\r
- case 11:\r
- case 10:\r
- case 9:\r
- case 8:\r
- case 7:\r
- case 6:\r
- hval += asso_values[(unsigned char)str[5]];\r
- /*FALLTHROUGH*/\r
- case 5:\r
- hval += asso_values[(unsigned char)str[4]];\r
- /*FALLTHROUGH*/\r
- case 4:\r
- case 3:\r
- hval += asso_values[(unsigned char)str[2]];\r
- /*FALLTHROUGH*/\r
- case 2:\r
- hval += asso_values[(unsigned char)str[1]];\r
- /*FALLTHROUGH*/\r
- case 1:\r
- hval += asso_values[(unsigned char)str[0]+2];\r
- break;\r
- }\r
- return hval + asso_values[(unsigned char)str[len - 1]];\r
-}\r
-\r
-struct unicode_prop_name_pool_t\r
- {\r
- char unicode_prop_name_pool_str10[sizeof("lana")];\r
- char unicode_prop_name_pool_str14[sizeof("z")];\r
- char unicode_prop_name_pool_str16[sizeof("yi")];\r
- char unicode_prop_name_pool_str17[sizeof("lina")];\r
- char unicode_prop_name_pool_str24[sizeof("mn")];\r
- char unicode_prop_name_pool_str25[sizeof("yiii")];\r
- char unicode_prop_name_pool_str27[sizeof("cn")];\r
- char unicode_prop_name_pool_str28[sizeof("maka")];\r
- char unicode_prop_name_pool_str30[sizeof("mani")];\r
- char unicode_prop_name_pool_str33[sizeof("zzzz")];\r
- char unicode_prop_name_pool_str34[sizeof("inkannada")];\r
- char unicode_prop_name_pool_str35[sizeof("ci")];\r
- char unicode_prop_name_pool_str37[sizeof("lo")];\r
- char unicode_prop_name_pool_str38[sizeof("lao")];\r
- char unicode_prop_name_pool_str39[sizeof("laoo")];\r
- char unicode_prop_name_pool_str43[sizeof("miao")];\r
- char unicode_prop_name_pool_str51[sizeof("innko")];\r
- char unicode_prop_name_pool_str53[sizeof("co")];\r
- char unicode_prop_name_pool_str56[sizeof("me")];\r
- char unicode_prop_name_pool_str60[sizeof("loe")];\r
- char unicode_prop_name_pool_str70[sizeof("gran")];\r
- char unicode_prop_name_pool_str72[sizeof("pi")];\r
- char unicode_prop_name_pool_str76[sizeof("lineara")];\r
- char unicode_prop_name_pool_str84[sizeof("mark")];\r
- char unicode_prop_name_pool_str86[sizeof("cari")];\r
- char unicode_prop_name_pool_str87[sizeof("carian")];\r
- char unicode_prop_name_pool_str90[sizeof("po")];\r
- char unicode_prop_name_pool_str91[sizeof("mendekikakui")];\r
- char unicode_prop_name_pool_str94[sizeof("grek")];\r
- char unicode_prop_name_pool_str96[sizeof("pe")];\r
- char unicode_prop_name_pool_str99[sizeof("meeteimayek")];\r
- char unicode_prop_name_pool_str101[sizeof("inkharoshthi")];\r
- char unicode_prop_name_pool_str102[sizeof("geor")];\r
- char unicode_prop_name_pool_str103[sizeof("greek")];\r
- char unicode_prop_name_pool_str107[sizeof("mro")];\r
- char unicode_prop_name_pool_str108[sizeof("mroo")];\r
- char unicode_prop_name_pool_str110[sizeof("kana")];\r
- char unicode_prop_name_pool_str111[sizeof("mero")];\r
- char unicode_prop_name_pool_str120[sizeof("m")];\r
- char unicode_prop_name_pool_str133[sizeof("gonm")];\r
- char unicode_prop_name_pool_str134[sizeof("cakm")];\r
- char unicode_prop_name_pool_str139[sizeof("inosmanya")];\r
- char unicode_prop_name_pool_str142[sizeof("inmanichaean")];\r
- char unicode_prop_name_pool_str146[sizeof("inarmenian")];\r
- char unicode_prop_name_pool_str151[sizeof("inmro")];\r
- char unicode_prop_name_pool_str152[sizeof("inmiao")];\r
- char unicode_prop_name_pool_str156[sizeof("c")];\r
- char unicode_prop_name_pool_str163[sizeof("inchakma")];\r
- char unicode_prop_name_pool_str166[sizeof("common")];\r
- char unicode_prop_name_pool_str169[sizeof("mandaic")];\r
- char unicode_prop_name_pool_str182[sizeof("inmyanmar")];\r
- char unicode_prop_name_pool_str187[sizeof("inmakasar")];\r
- char unicode_prop_name_pool_str192[sizeof("qaai")];\r
- char unicode_prop_name_pool_str200[sizeof("inideographicsymbolsandpunctuation")];\r
- char unicode_prop_name_pool_str204[sizeof("inkhmer")];\r
- char unicode_prop_name_pool_str207[sizeof("cans")];\r
- char unicode_prop_name_pool_str209[sizeof("prependedconcatenationmark")];\r
- char unicode_prop_name_pool_str211[sizeof("lm")];\r
- char unicode_prop_name_pool_str212[sizeof("marc")];\r
- char unicode_prop_name_pool_str219[sizeof("connectorpunctuation")];\r
- char unicode_prop_name_pool_str220[sizeof("inrunic")];\r
- char unicode_prop_name_pool_str221[sizeof("incarian")];\r
- char unicode_prop_name_pool_str223[sizeof("inavestan")];\r
- char unicode_prop_name_pool_str225[sizeof("combiningmark")];\r
- char unicode_prop_name_pool_str226[sizeof("incuneiformnumbersandpunctuation")];\r
- char unicode_prop_name_pool_str231[sizeof("merc")];\r
- char unicode_prop_name_pool_str238[sizeof("perm")];\r
- char unicode_prop_name_pool_str239[sizeof("inahom")];\r
- char unicode_prop_name_pool_str240[sizeof("inipaextensions")];\r
- char unicode_prop_name_pool_str251[sizeof("incherokee")];\r
- char unicode_prop_name_pool_str257[sizeof("insharada")];\r
- char unicode_prop_name_pool_str268[sizeof("makasar")];\r
- char unicode_prop_name_pool_str272[sizeof("inarrows")];\r
- char unicode_prop_name_pool_str277[sizeof("lc")];\r
- char unicode_prop_name_pool_str279[sizeof("masaramgondi")];\r
- char unicode_prop_name_pool_str283[sizeof("incuneiform")];\r
- char unicode_prop_name_pool_str290[sizeof("mc")];\r
- char unicode_prop_name_pool_str293[sizeof("cc")];\r
- char unicode_prop_name_pool_str295[sizeof("inzanabazarsquare")];\r
- char unicode_prop_name_pool_str298[sizeof("lineseparator")];\r
- char unicode_prop_name_pool_str302[sizeof("armn")];\r
- char unicode_prop_name_pool_str305[sizeof("qmark")];\r
- char unicode_prop_name_pool_str306[sizeof("armi")];\r
- char unicode_prop_name_pool_str309[sizeof("insamaritan")];\r
- char unicode_prop_name_pool_str316[sizeof("armenian")];\r
- char unicode_prop_name_pool_str318[sizeof("inmarchen")];\r
- char unicode_prop_name_pool_str319[sizeof("inmasaramgondi")];\r
- char unicode_prop_name_pool_str321[sizeof("qaac")];\r
- char unicode_prop_name_pool_str330[sizeof("pc")];\r
- char unicode_prop_name_pool_str335[sizeof("inscriptionalparthian")];\r
- char unicode_prop_name_pool_str336[sizeof("latn")];\r
- char unicode_prop_name_pool_str340[sizeof("latin")];\r
- char unicode_prop_name_pool_str342[sizeof("ri")];\r
- char unicode_prop_name_pool_str345[sizeof("inthaana")];\r
- char unicode_prop_name_pool_str352[sizeof("inkhmersymbols")];\r
- char unicode_prop_name_pool_str355[sizeof("inkatakana")];\r
- char unicode_prop_name_pool_str356[sizeof("incyrillic")];\r
- char unicode_prop_name_pool_str357[sizeof("inthai")];\r
- char unicode_prop_name_pool_str359[sizeof("incham")];\r
- char unicode_prop_name_pool_str367[sizeof("inkaithi")];\r
- char unicode_prop_name_pool_str369[sizeof("zs")];\r
- char unicode_prop_name_pool_str372[sizeof("mtei")];\r
- char unicode_prop_name_pool_str375[sizeof("vai")];\r
- char unicode_prop_name_pool_str376[sizeof("vaii")];\r
- char unicode_prop_name_pool_str379[sizeof("initialpunctuation")];\r
- char unicode_prop_name_pool_str383[sizeof("cs")];\r
- char unicode_prop_name_pool_str399[sizeof("insyriac")];\r
- char unicode_prop_name_pool_str401[sizeof("pcm")];\r
- char unicode_prop_name_pool_str415[sizeof("intakri")];\r
- char unicode_prop_name_pool_str417[sizeof("mand")];\r
- char unicode_prop_name_pool_str419[sizeof("l")];\r
- char unicode_prop_name_pool_str420[sizeof("ps")];\r
- char unicode_prop_name_pool_str427[sizeof("dia")];\r
- char unicode_prop_name_pool_str431[sizeof("inkanaextendeda")];\r
- char unicode_prop_name_pool_str433[sizeof("di")];\r
- char unicode_prop_name_pool_str436[sizeof("mend")];\r
- char unicode_prop_name_pool_str437[sizeof("modi")];\r
- char unicode_prop_name_pool_str441[sizeof("ideo")];\r
- char unicode_prop_name_pool_str445[sizeof("katakana")];\r
- char unicode_prop_name_pool_str449[sizeof("prti")];\r
- char unicode_prop_name_pool_str456[sizeof("inideographicdescriptioncharacters")];\r
- char unicode_prop_name_pool_str457[sizeof("inlineara")];\r
- char unicode_prop_name_pool_str458[sizeof("xidcontinue")];\r
- char unicode_prop_name_pool_str461[sizeof("brai")];\r
- char unicode_prop_name_pool_str463[sizeof("inlao")];\r
- char unicode_prop_name_pool_str472[sizeof("ascii")];\r
- char unicode_prop_name_pool_str474[sizeof("privateuse")];\r
- char unicode_prop_name_pool_str477[sizeof("arabic")];\r
- char unicode_prop_name_pool_str478[sizeof("mongolian")];\r
- char unicode_prop_name_pool_str480[sizeof("inmyanmarextendeda")];\r
- char unicode_prop_name_pool_str481[sizeof("inruminumeralsymbols")];\r
- char unicode_prop_name_pool_str485[sizeof("letter")];\r
- char unicode_prop_name_pool_str487[sizeof("innandinagari")];\r
- char unicode_prop_name_pool_str499[sizeof("inmeeteimayek")];\r
- char unicode_prop_name_pool_str500[sizeof("inoldnortharabian")];\r
- char unicode_prop_name_pool_str503[sizeof("grlink")];\r
- char unicode_prop_name_pool_str504[sizeof("knda")];\r
- char unicode_prop_name_pool_str507[sizeof("kannada")];\r
- char unicode_prop_name_pool_str509[sizeof("incjkcompatibilityforms")];\r
- char unicode_prop_name_pool_str514[sizeof("incjkcompatibilityideographs")];\r
- char unicode_prop_name_pool_str528[sizeof("inmodi")];\r
- char unicode_prop_name_pool_str529[sizeof("kali")];\r
- char unicode_prop_name_pool_str532[sizeof("control")];\r
- char unicode_prop_name_pool_str536[sizeof("inadlam")];\r
- char unicode_prop_name_pool_str538[sizeof("inspecials")];\r
- char unicode_prop_name_pool_str540[sizeof("inmendekikakui")];\r
- char unicode_prop_name_pool_str545[sizeof("intransportandmapsymbols")];\r
- char unicode_prop_name_pool_str547[sizeof("letternumber")];\r
- char unicode_prop_name_pool_str549[sizeof("xidc")];\r
- char unicode_prop_name_pool_str550[sizeof("inmedefaidrin")];\r
- char unicode_prop_name_pool_str558[sizeof("inchesssymbols")];\r
- char unicode_prop_name_pool_str564[sizeof("inemoticons")];\r
- char unicode_prop_name_pool_str573[sizeof("brahmi")];\r
- char unicode_prop_name_pool_str575[sizeof("inolditalic")];\r
- char unicode_prop_name_pool_str578[sizeof("palm")];\r
- char unicode_prop_name_pool_str580[sizeof("inlycian")];\r
- char unicode_prop_name_pool_str588[sizeof("inmiscellaneousmathematicalsymbolsa")];\r
- char unicode_prop_name_pool_str594[sizeof("xids")];\r
- char unicode_prop_name_pool_str603[sizeof("psalterpahlavi")];\r
- char unicode_prop_name_pool_str619[sizeof("insundanese")];\r
- char unicode_prop_name_pool_str620[sizeof("inoldsogdian")];\r
- char unicode_prop_name_pool_str632[sizeof("diacritic")];\r
- char unicode_prop_name_pool_str634[sizeof("gothic")];\r
- char unicode_prop_name_pool_str635[sizeof("inancientsymbols")];\r
- char unicode_prop_name_pool_str639[sizeof("meroiticcursive")];\r
- char unicode_prop_name_pool_str643[sizeof("inmalayalam")];\r
- char unicode_prop_name_pool_str648[sizeof("patternwhitespace")];\r
- char unicode_prop_name_pool_str649[sizeof("sk")];\r
- char unicode_prop_name_pool_str652[sizeof("insmallkanaextension")];\r
- char unicode_prop_name_pool_str656[sizeof("inmandaic")];\r
- char unicode_prop_name_pool_str657[sizeof("lt")];\r
- char unicode_prop_name_pool_str665[sizeof("so")];\r
- char unicode_prop_name_pool_str666[sizeof("inlinearbideograms")];\r
- char unicode_prop_name_pool_str668[sizeof("incommonindicnumberforms")];\r
- char unicode_prop_name_pool_str669[sizeof("incjkcompatibilityideographssupplement")];\r
- char unicode_prop_name_pool_str677[sizeof("idc")];\r
- char unicode_prop_name_pool_str678[sizeof("inoldsoutharabian")];\r
- char unicode_prop_name_pool_str699[sizeof("insylotinagri")];\r
- char unicode_prop_name_pool_str701[sizeof("idsbinaryoperator")];\r
- char unicode_prop_name_pool_str707[sizeof("sora")];\r
- char unicode_prop_name_pool_str708[sizeof("bamum")];\r
- char unicode_prop_name_pool_str709[sizeof("inkanasupplement")];\r
- char unicode_prop_name_pool_str710[sizeof("incjkstrokes")];\r
- char unicode_prop_name_pool_str715[sizeof("joinc")];\r
- char unicode_prop_name_pool_str718[sizeof("inopticalcharacterrecognition")];\r
- char unicode_prop_name_pool_str722[sizeof("vs")];\r
- char unicode_prop_name_pool_str728[sizeof("indominotiles")];\r
- char unicode_prop_name_pool_str732[sizeof("batk")];\r
- char unicode_prop_name_pool_str739[sizeof("grext")];\r
- char unicode_prop_name_pool_str741[sizeof("batak")];\r
- char unicode_prop_name_pool_str749[sizeof("patws")];\r
- char unicode_prop_name_pool_str752[sizeof("inmodifiertoneletters")];\r
- char unicode_prop_name_pool_str753[sizeof("ital")];\r
- char unicode_prop_name_pool_str760[sizeof("bass")];\r
- char unicode_prop_name_pool_str763[sizeof("decimalnumber")];\r
- char unicode_prop_name_pool_str765[sizeof("alnum")];\r
- char unicode_prop_name_pool_str767[sizeof("ids")];\r
- char unicode_prop_name_pool_str776[sizeof("print")];\r
- char unicode_prop_name_pool_str778[sizeof("inlatinextendeda")];\r
- char unicode_prop_name_pool_str782[sizeof("intaitham")];\r
- char unicode_prop_name_pool_str783[sizeof("inmusicalsymbols")];\r
- char unicode_prop_name_pool_str785[sizeof("intaile")];\r
- char unicode_prop_name_pool_str794[sizeof("samr")];\r
- char unicode_prop_name_pool_str809[sizeof("samaritan")];\r
- char unicode_prop_name_pool_str813[sizeof("s")];\r
- char unicode_prop_name_pool_str816[sizeof("inlatinextendede")];\r
- char unicode_prop_name_pool_str820[sizeof("bali")];\r
- char unicode_prop_name_pool_str826[sizeof("lisu")];\r
- char unicode_prop_name_pool_str827[sizeof("pauc")];\r
- char unicode_prop_name_pool_str828[sizeof("patternsyntax")];\r
- char unicode_prop_name_pool_str829[sizeof("incontrolpictures")];\r
- char unicode_prop_name_pool_str830[sizeof("blank")];\r
- char unicode_prop_name_pool_str834[sizeof("inmiscellaneoussymbols")];\r
- char unicode_prop_name_pool_str835[sizeof("ll")];\r
- char unicode_prop_name_pool_str836[sizeof("inancientgreekmusicalnotation")];\r
- char unicode_prop_name_pool_str837[sizeof("zl")];\r
- char unicode_prop_name_pool_str838[sizeof("inlydian")];\r
- char unicode_prop_name_pool_str839[sizeof("sm")];\r
- char unicode_prop_name_pool_str843[sizeof("inmiscellaneoussymbolsandarrows")];\r
- char unicode_prop_name_pool_str844[sizeof("inugaritic")];\r
- char unicode_prop_name_pool_str845[sizeof("bengali")];\r
- char unicode_prop_name_pool_str846[sizeof("pd")];\r
- char unicode_prop_name_pool_str848[sizeof("inmiscellaneoussymbolsandpictographs")];\r
- char unicode_prop_name_pool_str850[sizeof("medf")];\r
- char unicode_prop_name_pool_str855[sizeof("cf")];\r
- char unicode_prop_name_pool_str858[sizeof("balinese")];\r
- char unicode_prop_name_pool_str860[sizeof("medefaidrin")];\r
- char unicode_prop_name_pool_str865[sizeof("han")];\r
- char unicode_prop_name_pool_str869[sizeof("intamil")];\r
- char unicode_prop_name_pool_str870[sizeof("hani")];\r
- char unicode_prop_name_pool_str871[sizeof("inmultani")];\r
- char unicode_prop_name_pool_str879[sizeof("hano")];\r
- char unicode_prop_name_pool_str887[sizeof("inshorthandformatcontrols")];\r
- char unicode_prop_name_pool_str891[sizeof("insaurashtra")];\r
- char unicode_prop_name_pool_str892[sizeof("pf")];\r
- char unicode_prop_name_pool_str894[sizeof("inoldturkic")];\r
- char unicode_prop_name_pool_str896[sizeof("idcontinue")];\r
- char unicode_prop_name_pool_str901[sizeof("hanunoo")];\r
- char unicode_prop_name_pool_str905[sizeof("sc")];\r
- char unicode_prop_name_pool_str906[sizeof("inkhojki")];\r
- char unicode_prop_name_pool_str913[sizeof("idst")];\r
- char unicode_prop_name_pool_str915[sizeof("canadianaboriginal")];\r
- char unicode_prop_name_pool_str923[sizeof("hira")];\r
- char unicode_prop_name_pool_str925[sizeof("plrd")];\r
- char unicode_prop_name_pool_str939[sizeof("incaucasianalbanian")];\r
- char unicode_prop_name_pool_str940[sizeof("indeseret")];\r
- char unicode_prop_name_pool_str945[sizeof("inearlydynasticcuneiform")];\r
- char unicode_prop_name_pool_str946[sizeof("inspacingmodifierletters")];\r
- char unicode_prop_name_pool_str950[sizeof("innewa")];\r
- char unicode_prop_name_pool_str972[sizeof("idstart")];\r
- char unicode_prop_name_pool_str977[sizeof("zinh")];\r
- char unicode_prop_name_pool_str981[sizeof("incyrillicextendeda")];\r
- char unicode_prop_name_pool_str984[sizeof("dsrt")];\r
- char unicode_prop_name_pool_str993[sizeof("cased")];\r
- char unicode_prop_name_pool_str999[sizeof("glagolitic")];\r
- char unicode_prop_name_pool_str1002[sizeof("inhanifirohingya")];\r
- char unicode_prop_name_pool_str1006[sizeof("inancientgreeknumbers")];\r
- char unicode_prop_name_pool_str1008[sizeof("inmeeteimayekextensions")];\r
- char unicode_prop_name_pool_str1009[sizeof("intaixuanjingsymbols")];\r
- char unicode_prop_name_pool_str1016[sizeof("joincontrol")];\r
- char unicode_prop_name_pool_str1020[sizeof("runr")];\r
- char unicode_prop_name_pool_str1023[sizeof("inwarangciti")];\r
- char unicode_prop_name_pool_str1025[sizeof("deseret")];\r
- char unicode_prop_name_pool_str1035[sizeof("inhiragana")];\r
- char unicode_prop_name_pool_str1039[sizeof("sind")];\r
- char unicode_prop_name_pool_str1047[sizeof("cherokee")];\r
- char unicode_prop_name_pool_str1050[sizeof("inlatinextendedc")];\r
- char unicode_prop_name_pool_str1052[sizeof("adlm")];\r
- char unicode_prop_name_pool_str1053[sizeof("phoenician")];\r
- char unicode_prop_name_pool_str1056[sizeof("cher")];\r
- char unicode_prop_name_pool_str1059[sizeof("marchen")];\r
- char unicode_prop_name_pool_str1062[sizeof("inkhudawadi")];\r
- char unicode_prop_name_pool_str1063[sizeof("sinhala")];\r
- char unicode_prop_name_pool_str1066[sizeof("lower")];\r
- char unicode_prop_name_pool_str1068[sizeof("graphemelink")];\r
- char unicode_prop_name_pool_str1069[sizeof("xidstart")];\r
- char unicode_prop_name_pool_str1071[sizeof("ingrantha")];\r
- char unicode_prop_name_pool_str1072[sizeof("bidic")];\r
- char unicode_prop_name_pool_str1074[sizeof("xdigit")];\r
- char unicode_prop_name_pool_str1076[sizeof("casedletter")];\r
- char unicode_prop_name_pool_str1078[sizeof("gong")];\r
- char unicode_prop_name_pool_str1079[sizeof("multani")];\r
- char unicode_prop_name_pool_str1082[sizeof("gunjalagondi")];\r
- char unicode_prop_name_pool_str1084[sizeof("cham")];\r
- char unicode_prop_name_pool_str1086[sizeof("chakma")];\r
- char unicode_prop_name_pool_str1087[sizeof("mong")];\r
- char unicode_prop_name_pool_str1088[sizeof("kaithi")];\r
- char unicode_prop_name_pool_str1089[sizeof("inmahajani")];\r
- char unicode_prop_name_pool_str1090[sizeof("graphemebase")];\r
- char unicode_prop_name_pool_str1092[sizeof("insiddham")];\r
- char unicode_prop_name_pool_str1095[sizeof("inogham")];\r
- char unicode_prop_name_pool_str1101[sizeof("inosage")];\r
- char unicode_prop_name_pool_str1102[sizeof("incountingrodnumerals")];\r
- char unicode_prop_name_pool_str1104[sizeof("inwancho")];\r
- char unicode_prop_name_pool_str1105[sizeof("khojki")];\r
- char unicode_prop_name_pool_str1107[sizeof("ingeneralpunctuation")];\r
- char unicode_prop_name_pool_str1108[sizeof("georgian")];\r
- char unicode_prop_name_pool_str1117[sizeof("incyrillicextendedc")];\r
- char unicode_prop_name_pool_str1118[sizeof("inkayahli")];\r
- char unicode_prop_name_pool_str1121[sizeof("khar")];\r
- char unicode_prop_name_pool_str1124[sizeof("inoriya")];\r
- char unicode_prop_name_pool_str1126[sizeof("manichaean")];\r
- char unicode_prop_name_pool_str1132[sizeof("bamu")];\r
- char unicode_prop_name_pool_str1133[sizeof("zanb")];\r
- char unicode_prop_name_pool_str1136[sizeof("oriya")];\r
- char unicode_prop_name_pool_str1137[sizeof("inolchiki")];\r
- char unicode_prop_name_pool_str1138[sizeof("linb")];\r
- char unicode_prop_name_pool_str1141[sizeof("inethiopic")];\r
- char unicode_prop_name_pool_str1143[sizeof("wara")];\r
- char unicode_prop_name_pool_str1144[sizeof("ingeorgian")];\r
- char unicode_prop_name_pool_str1149[sizeof("innabataean")];\r
- char unicode_prop_name_pool_str1154[sizeof("inkanbun")];\r
- char unicode_prop_name_pool_str1156[sizeof("adlam")];\r
- char unicode_prop_name_pool_str1157[sizeof("inbhaiksuki")];\r
- char unicode_prop_name_pool_str1162[sizeof("insinhala")];\r
- char unicode_prop_name_pool_str1163[sizeof("inelbasan")];\r
- char unicode_prop_name_pool_str1169[sizeof("lowercase")];\r
- char unicode_prop_name_pool_str1178[sizeof("takri")];\r
- char unicode_prop_name_pool_str1179[sizeof("inmongolian")];\r
- char unicode_prop_name_pool_str1181[sizeof("invai")];\r
- char unicode_prop_name_pool_str1182[sizeof("xsux")];\r
- char unicode_prop_name_pool_str1183[sizeof("cntrl")];\r
- char unicode_prop_name_pool_str1186[sizeof("emoji")];\r
- char unicode_prop_name_pool_str1187[sizeof("sterm")];\r
- char unicode_prop_name_pool_str1189[sizeof("cuneiform")];\r
- char unicode_prop_name_pool_str1192[sizeof("cwcm")];\r
- char unicode_prop_name_pool_str1194[sizeof("hatran")];\r
- char unicode_prop_name_pool_str1197[sizeof("linearb")];\r
- char unicode_prop_name_pool_str1201[sizeof("taile")];\r
- char unicode_prop_name_pool_str1202[sizeof("inlatinextendedadditional")];\r
- char unicode_prop_name_pool_str1203[sizeof("inenclosedalphanumerics")];\r
- char unicode_prop_name_pool_str1205[sizeof("anatolianhieroglyphs")];\r
- char unicode_prop_name_pool_str1206[sizeof("incyrillicsupplement")];\r
- char unicode_prop_name_pool_str1208[sizeof("intamilsupplement")];\r
- char unicode_prop_name_pool_str1215[sizeof("inmiscellaneoustechnical")];\r
- char unicode_prop_name_pool_str1217[sizeof("ahom")];\r
- char unicode_prop_name_pool_str1218[sizeof("incherokeesupplement")];\r
- char unicode_prop_name_pool_str1219[sizeof("takr")];\r
- char unicode_prop_name_pool_str1224[sizeof("khmr")];\r
- char unicode_prop_name_pool_str1228[sizeof("incjkunifiedideographsextensiona")];\r
- char unicode_prop_name_pool_str1231[sizeof("quotationmark")];\r
- char unicode_prop_name_pool_str1233[sizeof("lyci")];\r
- char unicode_prop_name_pool_str1234[sizeof("lycian")];\r
- char unicode_prop_name_pool_str1235[sizeof("ingurmukhi")];\r
- char unicode_prop_name_pool_str1237[sizeof("runic")];\r
- char unicode_prop_name_pool_str1238[sizeof("limb")];\r
- char unicode_prop_name_pool_str1240[sizeof("inscriptionalpahlavi")];\r
- char unicode_prop_name_pool_str1242[sizeof("hatr")];\r
- char unicode_prop_name_pool_str1244[sizeof("variationselector")];\r
- char unicode_prop_name_pool_str1246[sizeof("modifierletter")];\r
- char unicode_prop_name_pool_str1247[sizeof("incjkunifiedideographsextensione")];\r
- char unicode_prop_name_pool_str1262[sizeof("mymr")];\r
- char unicode_prop_name_pool_str1265[sizeof("myanmar")];\r
- char unicode_prop_name_pool_str1267[sizeof("lu")];\r
- char unicode_prop_name_pool_str1275[sizeof("kharoshthi")];\r
- char unicode_prop_name_pool_str1276[sizeof("inarabic")];\r
- char unicode_prop_name_pool_str1278[sizeof("radical")];\r
- char unicode_prop_name_pool_str1281[sizeof("khmer")];\r
- char unicode_prop_name_pool_str1286[sizeof("inunifiedcanadianaboriginalsyllabics")];\r
- char unicode_prop_name_pool_str1292[sizeof("osage")];\r
- char unicode_prop_name_pool_str1296[sizeof("sundanese")];\r
- char unicode_prop_name_pool_str1300[sizeof("innewtailue")];\r
- char unicode_prop_name_pool_str1302[sizeof("logicalorderexception")];\r
- char unicode_prop_name_pool_str1304[sizeof("math")];\r
- char unicode_prop_name_pool_str1306[sizeof("braille")];\r
- char unicode_prop_name_pool_str1311[sizeof("goth")];\r
- char unicode_prop_name_pool_str1312[sizeof("insorasompeng")];\r
- char unicode_prop_name_pool_str1316[sizeof("insoyombo")];\r
- char unicode_prop_name_pool_str1317[sizeof("arab")];\r
- char unicode_prop_name_pool_str1322[sizeof("saur")];\r
- char unicode_prop_name_pool_str1329[sizeof("guru")];\r
- char unicode_prop_name_pool_str1333[sizeof("term")];\r
- char unicode_prop_name_pool_str1337[sizeof("paucinhau")];\r
- char unicode_prop_name_pool_str1338[sizeof("inbasiclatin")];\r
- char unicode_prop_name_pool_str1339[sizeof("inarabicpresentationformsa")];\r
- char unicode_prop_name_pool_str1347[sizeof("punct")];\r
- char unicode_prop_name_pool_str1348[sizeof("gurmukhi")];\r
- char unicode_prop_name_pool_str1354[sizeof("grantha")];\r
- char unicode_prop_name_pool_str1355[sizeof("inshavian")];\r
- char unicode_prop_name_pool_str1356[sizeof("osma")];\r
- char unicode_prop_name_pool_str1357[sizeof("inenclosedalphanumericsupplement")];\r
- char unicode_prop_name_pool_str1360[sizeof("intirhuta")];\r
- char unicode_prop_name_pool_str1361[sizeof("inelymaic")];\r
- char unicode_prop_name_pool_str1362[sizeof("inhatran")];\r
- char unicode_prop_name_pool_str1364[sizeof("incjkunifiedideographsextensionc")];\r
- char unicode_prop_name_pool_str1365[sizeof("emojimodifier")];\r
- char unicode_prop_name_pool_str1368[sizeof("uideo")];\r
- char unicode_prop_name_pool_str1373[sizeof("bidicontrol")];\r
- char unicode_prop_name_pool_str1379[sizeof("phnx")];\r
- char unicode_prop_name_pool_str1380[sizeof("limbu")];\r
- char unicode_prop_name_pool_str1384[sizeof("n")];\r
- char unicode_prop_name_pool_str1388[sizeof("inenclosedideographicsupplement")];\r
- char unicode_prop_name_pool_str1392[sizeof("mult")];\r
- char unicode_prop_name_pool_str1398[sizeof("kthi")];\r
- char unicode_prop_name_pool_str1399[sizeof("incjkunifiedideographs")];\r
- char unicode_prop_name_pool_str1401[sizeof("ingreekandcoptic")];\r
- char unicode_prop_name_pool_str1403[sizeof("inoldhungarian")];\r
- char unicode_prop_name_pool_str1406[sizeof("incjkcompatibility")];\r
- char unicode_prop_name_pool_str1409[sizeof("grbase")];\r
- char unicode_prop_name_pool_str1411[sizeof("nandinagari")];\r
- char unicode_prop_name_pool_str1412[sizeof("brah")];\r
- char unicode_prop_name_pool_str1414[sizeof("no")];\r
- char unicode_prop_name_pool_str1421[sizeof("sd")];\r
- char unicode_prop_name_pool_str1423[sizeof("nko")];\r
- char unicode_prop_name_pool_str1424[sizeof("nkoo")];\r
- char unicode_prop_name_pool_str1427[sizeof("xpeo")];\r
- char unicode_prop_name_pool_str1430[sizeof("sidd")];\r
- char unicode_prop_name_pool_str1435[sizeof("inherited")];\r
- char unicode_prop_name_pool_str1437[sizeof("p")];\r
- char unicode_prop_name_pool_str1440[sizeof("phli")];\r
- char unicode_prop_name_pool_str1443[sizeof("inmeroitichieroglyphs")];\r
- char unicode_prop_name_pool_str1444[sizeof("inphoenician")];\r
- char unicode_prop_name_pool_str1449[sizeof("inmayannumerals")];\r
- char unicode_prop_name_pool_str1453[sizeof("saurashtra")];\r
- char unicode_prop_name_pool_str1455[sizeof("inkangxiradicals")];\r
- char unicode_prop_name_pool_str1461[sizeof("enclosingmark")];\r
- char unicode_prop_name_pool_str1467[sizeof("graphemeextend")];\r
- char unicode_prop_name_pool_str1468[sizeof("beng")];\r
- char unicode_prop_name_pool_str1473[sizeof("inbatak")];\r
- char unicode_prop_name_pool_str1474[sizeof("glag")];\r
- char unicode_prop_name_pool_str1475[sizeof("ahex")];\r
- char unicode_prop_name_pool_str1477[sizeof("patsyn")];\r
- char unicode_prop_name_pool_str1479[sizeof("odi")];\r
- char unicode_prop_name_pool_str1486[sizeof("dogra")];\r
- char unicode_prop_name_pool_str1489[sizeof("intibetan")];\r
- char unicode_prop_name_pool_str1491[sizeof("lydi")];\r
- char unicode_prop_name_pool_str1492[sizeof("lydian")];\r
- char unicode_prop_name_pool_str1499[sizeof("inblockelements")];\r
- char unicode_prop_name_pool_str1506[sizeof("cwcf")];\r
- char unicode_prop_name_pool_str1507[sizeof("inunifiedcanadianaboriginalsyllabicsextended")];\r
- char unicode_prop_name_pool_str1508[sizeof("regionalindicator")];\r
- char unicode_prop_name_pool_str1509[sizeof("ingreekextended")];\r
- char unicode_prop_name_pool_str1513[sizeof("emojimodifierbase")];\r
- char unicode_prop_name_pool_str1514[sizeof("inanatolianhieroglyphs")];\r
- char unicode_prop_name_pool_str1516[sizeof("indogra")];\r
- char unicode_prop_name_pool_str1517[sizeof("taiviet")];\r
- char unicode_prop_name_pool_str1524[sizeof("inyiradicals")];\r
- char unicode_prop_name_pool_str1525[sizeof("unassigned")];\r
- char unicode_prop_name_pool_str1532[sizeof("insundanesesupplement")];\r
- char unicode_prop_name_pool_str1535[sizeof("innumberforms")];\r
- char unicode_prop_name_pool_str1538[sizeof("lowercaseletter")];\r
- char unicode_prop_name_pool_str1541[sizeof("dogr")];\r
- char unicode_prop_name_pool_str1542[sizeof("lepc")];\r
- char unicode_prop_name_pool_str1545[sizeof("bhks")];\r
- char unicode_prop_name_pool_str1553[sizeof("word")];\r
- char unicode_prop_name_pool_str1554[sizeof("gujr")];\r
- char unicode_prop_name_pool_str1555[sizeof("inphaistosdisc")];\r
- char unicode_prop_name_pool_str1557[sizeof("bhaiksuki")];\r
- char unicode_prop_name_pool_str1560[sizeof("dash")];\r
- char unicode_prop_name_pool_str1562[sizeof("inarabicextendeda")];\r
- char unicode_prop_name_pool_str1565[sizeof("gujarati")];\r
- char unicode_prop_name_pool_str1566[sizeof("inlatinextendedd")];\r
- char unicode_prop_name_pool_str1567[sizeof("innoblock")];\r
- char unicode_prop_name_pool_str1570[sizeof("java")];\r
- char unicode_prop_name_pool_str1576[sizeof("ingeometricshapes")];\r
- char unicode_prop_name_pool_str1577[sizeof("cyrl")];\r
- char unicode_prop_name_pool_str1582[sizeof("indevanagari")];\r
- char unicode_prop_name_pool_str1583[sizeof("inbalinese")];\r
- char unicode_prop_name_pool_str1585[sizeof("inbyzantinemusicalsymbols")];\r
- char unicode_prop_name_pool_str1589[sizeof("tale")];\r
- char unicode_prop_name_pool_str1591[sizeof("deva")];\r
- char unicode_prop_name_pool_str1594[sizeof("hex")];\r
- char unicode_prop_name_pool_str1601[sizeof("inmyanmarextendedb")];\r
- char unicode_prop_name_pool_str1603[sizeof("sinh")];\r
- char unicode_prop_name_pool_str1604[sizeof("cwt")];\r
- char unicode_prop_name_pool_str1606[sizeof("shavian")];\r
- char unicode_prop_name_pool_str1607[sizeof("devanagari")];\r
- char unicode_prop_name_pool_str1609[sizeof("oidc")];\r
- char unicode_prop_name_pool_str1615[sizeof("javanese")];\r
- char unicode_prop_name_pool_str1621[sizeof("mlym")];\r
- char unicode_prop_name_pool_str1622[sizeof("incjkunifiedideographsextensiond")];\r
- char unicode_prop_name_pool_str1624[sizeof("sentenceterminal")];\r
- char unicode_prop_name_pool_str1626[sizeof("malayalam")];\r
- char unicode_prop_name_pool_str1628[sizeof("inhanunoo")];\r
- char unicode_prop_name_pool_str1629[sizeof("insinhalaarchaicnumbers")];\r
- char unicode_prop_name_pool_str1631[sizeof("olck")];\r
- char unicode_prop_name_pool_str1633[sizeof("inimperialaramaic")];\r
- char unicode_prop_name_pool_str1636[sizeof("olower")];\r
- char unicode_prop_name_pool_str1638[sizeof("palmyrene")];\r
- char unicode_prop_name_pool_str1642[sizeof("avestan")];\r
- char unicode_prop_name_pool_str1645[sizeof("incjkunifiedideographsextensionf")];\r
- char unicode_prop_name_pool_str1646[sizeof("insogdian")];\r
- char unicode_prop_name_pool_str1647[sizeof("indingbats")];\r
- char unicode_prop_name_pool_str1648[sizeof("olchiki")];\r
- char unicode_prop_name_pool_str1654[sizeof("oids")];\r
- char unicode_prop_name_pool_str1661[sizeof("punctuation")];\r
- char unicode_prop_name_pool_str1663[sizeof("sund")];\r
- char unicode_prop_name_pool_str1666[sizeof("inbraillepatterns")];\r
- char unicode_prop_name_pool_str1669[sizeof("emojicomponent")];\r
- char unicode_prop_name_pool_str1672[sizeof("ideographic")];\r
- char unicode_prop_name_pool_str1673[sizeof("taml")];\r
- char unicode_prop_name_pool_str1688[sizeof("format")];\r
- char unicode_prop_name_pool_str1694[sizeof("inornamentaldingbats")];\r
- char unicode_prop_name_pool_str1700[sizeof("coptic")];\r
- char unicode_prop_name_pool_str1702[sizeof("caseignorable")];\r
- char unicode_prop_name_pool_str1708[sizeof("idsb")];\r
- char unicode_prop_name_pool_str1709[sizeof("inmiscellaneousmathematicalsymbolsb")];\r
- char unicode_prop_name_pool_str1712[sizeof("sogdian")];\r
- char unicode_prop_name_pool_str1715[sizeof("sogo")];\r
- char unicode_prop_name_pool_str1720[sizeof("terminalpunctuation")];\r
- char unicode_prop_name_pool_str1722[sizeof("intangut")];\r
- char unicode_prop_name_pool_str1729[sizeof("intifinagh")];\r
- char unicode_prop_name_pool_str1733[sizeof("inlowsurrogates")];\r
- char unicode_prop_name_pool_str1743[sizeof("invariationselectors")];\r
- char unicode_prop_name_pool_str1745[sizeof("copt")];\r
- char unicode_prop_name_pool_str1750[sizeof("soyo")];\r
- char unicode_prop_name_pool_str1753[sizeof("intags")];\r
- char unicode_prop_name_pool_str1756[sizeof("inverticalforms")];\r
- char unicode_prop_name_pool_str1757[sizeof("ininscriptionalparthian")];\r
- char unicode_prop_name_pool_str1760[sizeof("ininscriptionalpahlavi")];\r
- char unicode_prop_name_pool_str1763[sizeof("meroitichieroglyphs")];\r
- char unicode_prop_name_pool_str1764[sizeof("asciihexdigit")];\r
- char unicode_prop_name_pool_str1766[sizeof("inethiopicextendeda")];\r
- char unicode_prop_name_pool_str1767[sizeof("invedicextensions")];\r
- char unicode_prop_name_pool_str1781[sizeof("nand")];\r
- char unicode_prop_name_pool_str1782[sizeof("cwl")];\r
- char unicode_prop_name_pool_str1785[sizeof("cprt")];\r
- char unicode_prop_name_pool_str1791[sizeof("innushu")];\r
- char unicode_prop_name_pool_str1794[sizeof("zanabazarsquare")];\r
- char unicode_prop_name_pool_str1797[sizeof("ingeometricshapesextended")];\r
- char unicode_prop_name_pool_str1798[sizeof("avst")];\r
- char unicode_prop_name_pool_str1808[sizeof("imperialaramaic")];\r
- char unicode_prop_name_pool_str1810[sizeof("bopo")];\r
- char unicode_prop_name_pool_str1812[sizeof("sarb")];\r
- char unicode_prop_name_pool_str1819[sizeof("inoldpersian")];\r
- char unicode_prop_name_pool_str1830[sizeof("intaiviet")];\r
- char unicode_prop_name_pool_str1834[sizeof("mahj")];\r
- char unicode_prop_name_pool_str1838[sizeof("inkatakanaphoneticextensions")];\r
- char unicode_prop_name_pool_str1845[sizeof("mahajani")];\r
- char unicode_prop_name_pool_str1871[sizeof("closepunctuation")];\r
- char unicode_prop_name_pool_str1875[sizeof("inlisu")];\r
- char unicode_prop_name_pool_str1878[sizeof("softdotted")];\r
- char unicode_prop_name_pool_str1897[sizeof("unknown")];\r
- char unicode_prop_name_pool_str1898[sizeof("invariationselectorssupplement")];\r
- char unicode_prop_name_pool_str1910[sizeof("syrc")];\r
- char unicode_prop_name_pool_str1911[sizeof("hang")];\r
- char unicode_prop_name_pool_str1926[sizeof("incjksymbolsandpunctuation")];\r
- char unicode_prop_name_pool_str1932[sizeof("ingujarati")];\r
- char unicode_prop_name_pool_str1933[sizeof("bopomofo")];\r
- char unicode_prop_name_pool_str1936[sizeof("alpha")];\r
- char unicode_prop_name_pool_str1937[sizeof("khoj")];\r
- char unicode_prop_name_pool_str1939[sizeof("inpalmyrene")];\r
- char unicode_prop_name_pool_str1942[sizeof("ingunjalagondi")];\r
- char unicode_prop_name_pool_str1948[sizeof("inoldpermic")];\r
- char unicode_prop_name_pool_str1950[sizeof("inlepcha")];\r
- char unicode_prop_name_pool_str1951[sizeof("assigned")];\r
- char unicode_prop_name_pool_str1955[sizeof("incurrencysymbols")];\r
- char unicode_prop_name_pool_str1958[sizeof("insmallformvariants")];\r
- char unicode_prop_name_pool_str1959[sizeof("sorasompeng")];\r
- char unicode_prop_name_pool_str1964[sizeof("inlinearbsyllabary")];\r
- char unicode_prop_name_pool_str1965[sizeof("oldpersian")];\r
- char unicode_prop_name_pool_str1972[sizeof("caucasianalbanian")];\r
- char unicode_prop_name_pool_str1973[sizeof("inenclosedcjklettersandmonths")];\r
- char unicode_prop_name_pool_str1975[sizeof("hiragana")];\r
- char unicode_prop_name_pool_str1976[sizeof("inbamum")];\r
- char unicode_prop_name_pool_str1979[sizeof("inrejang")];\r
- char unicode_prop_name_pool_str1984[sizeof("graph")];\r
- char unicode_prop_name_pool_str1990[sizeof("sharada")];\r
- char unicode_prop_name_pool_str1991[sizeof("inethiopicsupplement")];\r
- char unicode_prop_name_pool_str1996[sizeof("indevanagariextended")];\r
- char unicode_prop_name_pool_str1997[sizeof("incoptic")];\r
- char unicode_prop_name_pool_str1998[sizeof("insyriacsupplement")];\r
- char unicode_prop_name_pool_str2004[sizeof("inmeroiticcursive")];\r
- char unicode_prop_name_pool_str2014[sizeof("hmng")];\r
- char unicode_prop_name_pool_str2022[sizeof("intelugu")];\r
- char unicode_prop_name_pool_str2029[sizeof("incombiningdiacriticalmarks")];\r
- char unicode_prop_name_pool_str2031[sizeof("mathsymbol")];\r
- char unicode_prop_name_pool_str2036[sizeof("titlecaseletter")];\r
- char unicode_prop_name_pool_str2038[sizeof("ugar")];\r
- char unicode_prop_name_pool_str2039[sizeof("incombiningdiacriticalmarksforsymbols")];\r
- char unicode_prop_name_pool_str2040[sizeof("spacingmark")];\r
- char unicode_prop_name_pool_str2043[sizeof("shrd")];\r
- char unicode_prop_name_pool_str2047[sizeof("injavanese")];\r
- char unicode_prop_name_pool_str2048[sizeof("syriac")];\r
- char unicode_prop_name_pool_str2054[sizeof("space")];\r
- char unicode_prop_name_pool_str2056[sizeof("hebr")];\r
- char unicode_prop_name_pool_str2061[sizeof("ext")];\r
- char unicode_prop_name_pool_str2064[sizeof("inhanguljamo")];\r
- char unicode_prop_name_pool_str2066[sizeof("phag")];\r
- char unicode_prop_name_pool_str2076[sizeof("inhanguljamoextendeda")];\r
- char unicode_prop_name_pool_str2082[sizeof("wancho")];\r
- char unicode_prop_name_pool_str2084[sizeof("bugi")];\r
- char unicode_prop_name_pool_str2089[sizeof("tamil")];\r
- char unicode_prop_name_pool_str2093[sizeof("sogd")];\r
- char unicode_prop_name_pool_str2094[sizeof("orkh")];\r
- char unicode_prop_name_pool_str2097[sizeof("oldpermic")];\r
- char unicode_prop_name_pool_str2100[sizeof("siddham")];\r
- char unicode_prop_name_pool_str2102[sizeof("incyrillicextendedb")];\r
- char unicode_prop_name_pool_str2105[sizeof("inbrahmi")];\r
- char unicode_prop_name_pool_str2108[sizeof("inmongoliansupplement")];\r
- char unicode_prop_name_pool_str2113[sizeof("thaa")];\r
- char unicode_prop_name_pool_str2118[sizeof("thaana")];\r
- char unicode_prop_name_pool_str2120[sizeof("thai")];\r
- char unicode_prop_name_pool_str2122[sizeof("buginese")];\r
- char unicode_prop_name_pool_str2127[sizeof("ingeorgiansupplement")];\r
- char unicode_prop_name_pool_str2129[sizeof("digit")];\r
- char unicode_prop_name_pool_str2132[sizeof("cyrillic")];\r
- char unicode_prop_name_pool_str2149[sizeof("sylo")];\r
- char unicode_prop_name_pool_str2150[sizeof("inphoneticextensions")];\r
- char unicode_prop_name_pool_str2151[sizeof("separator")];\r
- char unicode_prop_name_pool_str2159[sizeof("inethiopicextended")];\r
- char unicode_prop_name_pool_str2163[sizeof("inmathematicalalphanumericsymbols")];\r
- char unicode_prop_name_pool_str2168[sizeof("insymbolsandpictographsextendeda")];\r
- char unicode_prop_name_pool_str2170[sizeof("nd")];\r
- char unicode_prop_name_pool_str2176[sizeof("tirh")];\r
- char unicode_prop_name_pool_str2178[sizeof("tirhuta")];\r
- char unicode_prop_name_pool_str2184[sizeof("incombiningdiacriticalmarkssupplement")];\r
- char unicode_prop_name_pool_str2193[sizeof("extender")];\r
- char unicode_prop_name_pool_str2197[sizeof("wcho")];\r
- char unicode_prop_name_pool_str2199[sizeof("inbengali")];\r
- char unicode_prop_name_pool_str2201[sizeof("talu")];\r
- char unicode_prop_name_pool_str2206[sizeof("tang")];\r
- char unicode_prop_name_pool_str2207[sizeof("warangciti")];\r
- char unicode_prop_name_pool_str2210[sizeof("tagbanwa")];\r
- char unicode_prop_name_pool_str2211[sizeof("orya")];\r
- char unicode_prop_name_pool_str2212[sizeof("nl")];\r
- char unicode_prop_name_pool_str2213[sizeof("induployan")];\r
- char unicode_prop_name_pool_str2214[sizeof("cwu")];\r
- char unicode_prop_name_pool_str2216[sizeof("inbuginese")];\r
- char unicode_prop_name_pool_str2220[sizeof("telu")];\r
- char unicode_prop_name_pool_str2223[sizeof("ogam")];\r
- char unicode_prop_name_pool_str2226[sizeof("taitham")];\r
- char unicode_prop_name_pool_str2237[sizeof("rjng")];\r
- char unicode_prop_name_pool_str2240[sizeof("insuttonsignwriting")];\r
- char unicode_prop_name_pool_str2250[sizeof("incombiningdiacriticalmarksextended")];\r
- char unicode_prop_name_pool_str2251[sizeof("number")];\r
- char unicode_prop_name_pool_str2264[sizeof("inyijinghexagramsymbols")];\r
- char unicode_prop_name_pool_str2277[sizeof("whitespace")];\r
- char unicode_prop_name_pool_str2278[sizeof("currencysymbol")];\r
- char unicode_prop_name_pool_str2285[sizeof("inottomansiyaqnumbers")];\r
- char unicode_prop_name_pool_str2288[sizeof("inlimbu")];\r
- char unicode_prop_name_pool_str2293[sizeof("incopticepactnumbers")];\r
- char unicode_prop_name_pool_str2295[sizeof("ingeorgianextended")];\r
- char unicode_prop_name_pool_str2305[sizeof("inphoneticextensionssupplement")];\r
- char unicode_prop_name_pool_str2308[sizeof("any")];\r
- char unicode_prop_name_pool_str2320[sizeof("osge")];\r
- char unicode_prop_name_pool_str2325[sizeof("defaultignorablecodepoint")];\r
- char unicode_prop_name_pool_str2326[sizeof("hangul")];\r
- char unicode_prop_name_pool_str2333[sizeof("newa")];\r
- char unicode_prop_name_pool_str2343[sizeof("ethi")];\r
- char unicode_prop_name_pool_str2345[sizeof("hanifirohingya")];\r
- char unicode_prop_name_pool_str2346[sizeof("hmnp")];\r
- char unicode_prop_name_pool_str2348[sizeof("olditalic")];\r
- char unicode_prop_name_pool_str2349[sizeof("incjkunifiedideographsextensionb")];\r
- char unicode_prop_name_pool_str2352[sizeof("rohg")];\r
- char unicode_prop_name_pool_str2353[sizeof("innyiakengpuachuehmong")];\r
- char unicode_prop_name_pool_str2355[sizeof("incjkradicalssupplement")];\r
- char unicode_prop_name_pool_str2364[sizeof("newtailue")];\r
- char unicode_prop_name_pool_str2365[sizeof("newline")];\r
- char unicode_prop_name_pool_str2366[sizeof("lepcha")];\r
- char unicode_prop_name_pool_str2375[sizeof("deprecated")];\r
- char unicode_prop_name_pool_str2381[sizeof("buhd")];\r
- char unicode_prop_name_pool_str2391[sizeof("inglagolitic")];\r
- char unicode_prop_name_pool_str2395[sizeof("inaegeannumbers")];\r
- char unicode_prop_name_pool_str2400[sizeof("modifiersymbol")];\r
- char unicode_prop_name_pool_str2410[sizeof("surrogate")];\r
- char unicode_prop_name_pool_str2418[sizeof("inletterlikesymbols")];\r
- char unicode_prop_name_pool_str2426[sizeof("idstrinaryoperator")];\r
- char unicode_prop_name_pool_str2442[sizeof("intagalog")];\r
- char unicode_prop_name_pool_str2443[sizeof("tangut")];\r
- char unicode_prop_name_pool_str2445[sizeof("osmanya")];\r
- char unicode_prop_name_pool_str2447[sizeof("oalpha")];\r
- char unicode_prop_name_pool_str2448[sizeof("inphagspa")];\r
- char unicode_prop_name_pool_str2455[sizeof("ugaritic")];\r
- char unicode_prop_name_pool_str2456[sizeof("otheridcontinue")];\r
- char unicode_prop_name_pool_str2460[sizeof("inarabicpresentationformsb")];\r
- char unicode_prop_name_pool_str2462[sizeof("inbassavah")];\r
- char unicode_prop_name_pool_str2469[sizeof("other")];\r
- char unicode_prop_name_pool_str2478[sizeof("othernumber")];\r
- char unicode_prop_name_pool_str2480[sizeof("sylotinagri")];\r
- char unicode_prop_name_pool_str2487[sizeof("ingothic")];\r
- char unicode_prop_name_pool_str2498[sizeof("inbuhid")];\r
- char unicode_prop_name_pool_str2502[sizeof("inlatin1supplement")];\r
- char unicode_prop_name_pool_str2516[sizeof("intagbanwa")];\r
- char unicode_prop_name_pool_str2523[sizeof("shaw")];\r
- char unicode_prop_name_pool_str2529[sizeof("oldhungarian")];\r
- char unicode_prop_name_pool_str2538[sizeof("inmahjongtiles")];\r
- char unicode_prop_name_pool_str2542[sizeof("hung")];\r
- char unicode_prop_name_pool_str2544[sizeof("tifinagh")];\r
- char unicode_prop_name_pool_str2554[sizeof("inbopomofo")];\r
- char unicode_prop_name_pool_str2561[sizeof("narb")];\r
- char unicode_prop_name_pool_str2571[sizeof("inyisyllables")];\r
- char unicode_prop_name_pool_str2573[sizeof("kayahli")];\r
- char unicode_prop_name_pool_str2578[sizeof("otheralphabetic")];\r
- char unicode_prop_name_pool_str2582[sizeof("phagspa")];\r
- char unicode_prop_name_pool_str2584[sizeof("inprivateusearea")];\r
- char unicode_prop_name_pool_str2588[sizeof("elba")];\r
- char unicode_prop_name_pool_str2591[sizeof("nchar")];\r
- char unicode_prop_name_pool_str2607[sizeof("spaceseparator")];\r
- char unicode_prop_name_pool_str2609[sizeof("tibt")];\r
- char unicode_prop_name_pool_str2611[sizeof("extendedpictographic")];\r
- char unicode_prop_name_pool_str2615[sizeof("tibetan")];\r
- char unicode_prop_name_pool_str2616[sizeof("sgnw")];\r
- char unicode_prop_name_pool_str2622[sizeof("hexdigit")];\r
- char unicode_prop_name_pool_str2623[sizeof("tfng")];\r
- char unicode_prop_name_pool_str2627[sizeof("inbamumsupplement")];\r
- char unicode_prop_name_pool_str2632[sizeof("tavt")];\r
- char unicode_prop_name_pool_str2633[sizeof("incombininghalfmarks")];\r
- char unicode_prop_name_pool_str2634[sizeof("inarabicmathematicalalphabeticsymbols")];\r
- char unicode_prop_name_pool_str2638[sizeof("khudawadi")];\r
- char unicode_prop_name_pool_str2641[sizeof("inhalfwidthandfullwidthforms")];\r
- char unicode_prop_name_pool_str2652[sizeof("inhangulsyllables")];\r
- char unicode_prop_name_pool_str2653[sizeof("elym")];\r
- char unicode_prop_name_pool_str2669[sizeof("symbol")];\r
- char unicode_prop_name_pool_str2692[sizeof("bassavah")];\r
- char unicode_prop_name_pool_str2696[sizeof("elymaic")];\r
- char unicode_prop_name_pool_str2698[sizeof("changeswhencasemapped")];\r
- char unicode_prop_name_pool_str2709[sizeof("oldturkic")];\r
- char unicode_prop_name_pool_str2725[sizeof("inplayingcards")];\r
- char unicode_prop_name_pool_str2767[sizeof("zp")];\r
- char unicode_prop_name_pool_str2775[sizeof("elbasan")];\r
- char unicode_prop_name_pool_str2776[sizeof("buhid")];\r
- char unicode_prop_name_pool_str2779[sizeof("noncharactercodepoint")];\r
- char unicode_prop_name_pool_str2785[sizeof("finalpunctuation")];\r
- char unicode_prop_name_pool_str2794[sizeof("inpsalterpahlavi")];\r
- char unicode_prop_name_pool_str2800[sizeof("inpaucinhau")];\r
- char unicode_prop_name_pool_str2801[sizeof("nonspacingmark")];\r
- char unicode_prop_name_pool_str2804[sizeof("changeswhentitlecased")];\r
- char unicode_prop_name_pool_str2808[sizeof("inindicsiyaqnumbers")];\r
- char unicode_prop_name_pool_str2813[sizeof("phlp")];\r
- char unicode_prop_name_pool_str2824[sizeof("wspace")];\r
- char unicode_prop_name_pool_str2831[sizeof("nbat")];\r
- char unicode_prop_name_pool_str2836[sizeof("hluw")];\r
- char unicode_prop_name_pool_str2838[sizeof("cypriot")];\r
- char unicode_prop_name_pool_str2839[sizeof("nabataean")];\r
- char unicode_prop_name_pool_str2841[sizeof("inalchemicalsymbols")];\r
- char unicode_prop_name_pool_str2847[sizeof("dupl")];\r
- char unicode_prop_name_pool_str2856[sizeof("otherlowercase")];\r
- char unicode_prop_name_pool_str2875[sizeof("inarabicsupplement")];\r
- char unicode_prop_name_pool_str2876[sizeof("inalphabeticpresentationforms")];\r
- char unicode_prop_name_pool_str2890[sizeof("otherletter")];\r
- char unicode_prop_name_pool_str2916[sizeof("emojipresentation")];\r
- char unicode_prop_name_pool_str2930[sizeof("changeswhenlowercased")];\r
- char unicode_prop_name_pool_str2953[sizeof("dashpunctuation")];\r
- char unicode_prop_name_pool_str2954[sizeof("oldsogdian")];\r
- char unicode_prop_name_pool_str2970[sizeof("intangutcomponents")];\r
- char unicode_prop_name_pool_str2977[sizeof("soyombo")];\r
- char unicode_prop_name_pool_str2996[sizeof("paragraphseparator")];\r
- char unicode_prop_name_pool_str3012[sizeof("changeswhencasefolded")];\r
- char unicode_prop_name_pool_str3015[sizeof("othersymbol")];\r
- char unicode_prop_name_pool_str3020[sizeof("inlatinextendedb")];\r
- char unicode_prop_name_pool_str3072[sizeof("otheruppercase")];\r
- char unicode_prop_name_pool_str3079[sizeof("otheridstart")];\r
- char unicode_prop_name_pool_str3084[sizeof("inhebrew")];\r
- char unicode_prop_name_pool_str3088[sizeof("oldnortharabian")];\r
- char unicode_prop_name_pool_str3092[sizeof("omath")];\r
- char unicode_prop_name_pool_str3099[sizeof("incypriotsyllabary")];\r
- char unicode_prop_name_pool_str3118[sizeof("inmathematicaloperators")];\r
- char unicode_prop_name_pool_str3146[sizeof("changeswhenuppercased")];\r
- char unicode_prop_name_pool_str3154[sizeof("nshu")];\r
- char unicode_prop_name_pool_str3182[sizeof("insuperscriptsandsubscripts")];\r
- char unicode_prop_name_pool_str3188[sizeof("ogrext")];\r
- char unicode_prop_name_pool_str3197[sizeof("inhanguljamoextendedb")];\r
- char unicode_prop_name_pool_str3198[sizeof("alphabetic")];\r
- char unicode_prop_name_pool_str3199[sizeof("dep")];\r
- char unicode_prop_name_pool_str3216[sizeof("oupper")];\r
- char unicode_prop_name_pool_str3258[sizeof("zyyy")];\r
- char unicode_prop_name_pool_str3267[sizeof("aghb")];\r
- char unicode_prop_name_pool_str3285[sizeof("ogham")];\r
- char unicode_prop_name_pool_str3306[sizeof("rejang")];\r
- char unicode_prop_name_pool_str3324[sizeof("tagb")];\r
- char unicode_prop_name_pool_str3350[sizeof("hyphen")];\r
- char unicode_prop_name_pool_str3355[sizeof("insupplementalarrowsa")];\r
- char unicode_prop_name_pool_str3413[sizeof("inpahawhhmong")];\r
- char unicode_prop_name_pool_str3459[sizeof("nushu")];\r
- char unicode_prop_name_pool_str3478[sizeof("othermath")];\r
- char unicode_prop_name_pool_str3491[sizeof("insupplementalarrowsc")];\r
- char unicode_prop_name_pool_str3494[sizeof("insupplementalmathematicaloperators")];\r
- char unicode_prop_name_pool_str3500[sizeof("otherdefaultignorablecodepoint")];\r
- char unicode_prop_name_pool_str3527[sizeof("inhighprivateusesurrogates")];\r
- char unicode_prop_name_pool_str3538[sizeof("duployan")];\r
- char unicode_prop_name_pool_str3663[sizeof("oldsoutharabian")];\r
- char unicode_prop_name_pool_str3666[sizeof("tglg")];\r
- char unicode_prop_name_pool_str3685[sizeof("tagalog")];\r
- char unicode_prop_name_pool_str3692[sizeof("inbopomofoextended")];\r
- char unicode_prop_name_pool_str3731[sizeof("signwriting")];\r
- char unicode_prop_name_pool_str3750[sizeof("inegyptianhieroglyphs")];\r
- char unicode_prop_name_pool_str3763[sizeof("inegyptianhieroglyphformatcontrols")];\r
- char unicode_prop_name_pool_str3807[sizeof("upper")];\r
- char unicode_prop_name_pool_str3810[sizeof("otherpunctuation")];\r
- char unicode_prop_name_pool_str3872[sizeof("ethiopic")];\r
- char unicode_prop_name_pool_str3881[sizeof("hebrew")];\r
- char unicode_prop_name_pool_str3901[sizeof("telugu")];\r
- char unicode_prop_name_pool_str3910[sizeof("uppercase")];\r
- char unicode_prop_name_pool_str3937[sizeof("insupplementalpunctuation")];\r
- char unicode_prop_name_pool_str3946[sizeof("unifiedideograph")];\r
- char unicode_prop_name_pool_str3961[sizeof("pahawhhmong")];\r
- char unicode_prop_name_pool_str3971[sizeof("inglagoliticsupplement")];\r
- char unicode_prop_name_pool_str3992[sizeof("inboxdrawing")];\r
- char unicode_prop_name_pool_str4279[sizeof("uppercaseletter")];\r
- char unicode_prop_name_pool_str4298[sizeof("othergraphemeextend")];\r
- char unicode_prop_name_pool_str4401[sizeof("inhighsurrogates")];\r
- char unicode_prop_name_pool_str4476[sizeof("insupplementalarrowsb")];\r
- char unicode_prop_name_pool_str4562[sizeof("inhangulcompatibilityjamo")];\r
- char unicode_prop_name_pool_str4563[sizeof("egyp")];\r
- char unicode_prop_name_pool_str4577[sizeof("insupplementalsymbolsandpictographs")];\r
- char unicode_prop_name_pool_str4659[sizeof("nyiakengpuachuehmong")];\r
- char unicode_prop_name_pool_str4688[sizeof("insupplementaryprivateuseareaa")];\r
- char unicode_prop_name_pool_str4822[sizeof("openpunctuation")];\r
- char unicode_prop_name_pool_str4851[sizeof("egyptianhieroglyphs")];\r
- char unicode_prop_name_pool_str5809[sizeof("insupplementaryprivateuseareab")];\r
- };\r
-static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents =\r
- {\r
- "lana",\r
- "z",\r
- "yi",\r
- "lina",\r
- "mn",\r
- "yiii",\r
- "cn",\r
- "maka",\r
- "mani",\r
- "zzzz",\r
- "inkannada",\r
- "ci",\r
- "lo",\r
- "lao",\r
- "laoo",\r
- "miao",\r
- "innko",\r
- "co",\r
- "me",\r
- "loe",\r
- "gran",\r
- "pi",\r
- "lineara",\r
- "mark",\r
- "cari",\r
- "carian",\r
- "po",\r
- "mendekikakui",\r
- "grek",\r
- "pe",\r
- "meeteimayek",\r
- "inkharoshthi",\r
- "geor",\r
- "greek",\r
- "mro",\r
- "mroo",\r
- "kana",\r
- "mero",\r
- "m",\r
- "gonm",\r
- "cakm",\r
- "inosmanya",\r
- "inmanichaean",\r
- "inarmenian",\r
- "inmro",\r
- "inmiao",\r
- "c",\r
- "inchakma",\r
- "common",\r
- "mandaic",\r
- "inmyanmar",\r
- "inmakasar",\r
- "qaai",\r
- "inideographicsymbolsandpunctuation",\r
- "inkhmer",\r
- "cans",\r
- "prependedconcatenationmark",\r
- "lm",\r
- "marc",\r
- "connectorpunctuation",\r
- "inrunic",\r
- "incarian",\r
- "inavestan",\r
- "combiningmark",\r
- "incuneiformnumbersandpunctuation",\r
- "merc",\r
- "perm",\r
- "inahom",\r
- "inipaextensions",\r
- "incherokee",\r
- "insharada",\r
- "makasar",\r
- "inarrows",\r
- "lc",\r
- "masaramgondi",\r
- "incuneiform",\r
- "mc",\r
- "cc",\r
- "inzanabazarsquare",\r
- "lineseparator",\r
- "armn",\r
- "qmark",\r
- "armi",\r
- "insamaritan",\r
- "armenian",\r
- "inmarchen",\r
- "inmasaramgondi",\r
- "qaac",\r
- "pc",\r
- "inscriptionalparthian",\r
- "latn",\r
- "latin",\r
- "ri",\r
- "inthaana",\r
- "inkhmersymbols",\r
- "inkatakana",\r
- "incyrillic",\r
- "inthai",\r
- "incham",\r
- "inkaithi",\r
- "zs",\r
- "mtei",\r
- "vai",\r
- "vaii",\r
- "initialpunctuation",\r
- "cs",\r
- "insyriac",\r
- "pcm",\r
- "intakri",\r
- "mand",\r
- "l",\r
- "ps",\r
- "dia",\r
- "inkanaextendeda",\r
- "di",\r
- "mend",\r
- "modi",\r
- "ideo",\r
- "katakana",\r
- "prti",\r
- "inideographicdescriptioncharacters",\r
- "inlineara",\r
- "xidcontinue",\r
- "brai",\r
- "inlao",\r
- "ascii",\r
- "privateuse",\r
- "arabic",\r
- "mongolian",\r
- "inmyanmarextendeda",\r
- "inruminumeralsymbols",\r
- "letter",\r
- "innandinagari",\r
- "inmeeteimayek",\r
- "inoldnortharabian",\r
- "grlink",\r
- "knda",\r
- "kannada",\r
- "incjkcompatibilityforms",\r
- "incjkcompatibilityideographs",\r
- "inmodi",\r
- "kali",\r
- "control",\r
- "inadlam",\r
- "inspecials",\r
- "inmendekikakui",\r
- "intransportandmapsymbols",\r
- "letternumber",\r
- "xidc",\r
- "inmedefaidrin",\r
- "inchesssymbols",\r
- "inemoticons",\r
- "brahmi",\r
- "inolditalic",\r
- "palm",\r
- "inlycian",\r
- "inmiscellaneousmathematicalsymbolsa",\r
- "xids",\r
- "psalterpahlavi",\r
- "insundanese",\r
- "inoldsogdian",\r
- "diacritic",\r
- "gothic",\r
- "inancientsymbols",\r
- "meroiticcursive",\r
- "inmalayalam",\r
- "patternwhitespace",\r
- "sk",\r
- "insmallkanaextension",\r
- "inmandaic",\r
- "lt",\r
- "so",\r
- "inlinearbideograms",\r
- "incommonindicnumberforms",\r
- "incjkcompatibilityideographssupplement",\r
- "idc",\r
- "inoldsoutharabian",\r
- "insylotinagri",\r
- "idsbinaryoperator",\r
- "sora",\r
- "bamum",\r
- "inkanasupplement",\r
- "incjkstrokes",\r
- "joinc",\r
- "inopticalcharacterrecognition",\r
- "vs",\r
- "indominotiles",\r
- "batk",\r
- "grext",\r
- "batak",\r
- "patws",\r
- "inmodifiertoneletters",\r
- "ital",\r
- "bass",\r
- "decimalnumber",\r
- "alnum",\r
- "ids",\r
- "print",\r
- "inlatinextendeda",\r
- "intaitham",\r
- "inmusicalsymbols",\r
- "intaile",\r
- "samr",\r
- "samaritan",\r
- "s",\r
- "inlatinextendede",\r
- "bali",\r
- "lisu",\r
- "pauc",\r
- "patternsyntax",\r
- "incontrolpictures",\r
- "blank",\r
- "inmiscellaneoussymbols",\r
- "ll",\r
- "inancientgreekmusicalnotation",\r
- "zl",\r
- "inlydian",\r
- "sm",\r
- "inmiscellaneoussymbolsandarrows",\r
- "inugaritic",\r
- "bengali",\r
- "pd",\r
- "inmiscellaneoussymbolsandpictographs",\r
- "medf",\r
- "cf",\r
- "balinese",\r
- "medefaidrin",\r
- "han",\r
- "intamil",\r
- "hani",\r
- "inmultani",\r
- "hano",\r
- "inshorthandformatcontrols",\r
- "insaurashtra",\r
- "pf",\r
- "inoldturkic",\r
- "idcontinue",\r
- "hanunoo",\r
- "sc",\r
- "inkhojki",\r
- "idst",\r
- "canadianaboriginal",\r
- "hira",\r
- "plrd",\r
- "incaucasianalbanian",\r
- "indeseret",\r
- "inearlydynasticcuneiform",\r
- "inspacingmodifierletters",\r
- "innewa",\r
- "idstart",\r
- "zinh",\r
- "incyrillicextendeda",\r
- "dsrt",\r
- "cased",\r
- "glagolitic",\r
- "inhanifirohingya",\r
- "inancientgreeknumbers",\r
- "inmeeteimayekextensions",\r
- "intaixuanjingsymbols",\r
- "joincontrol",\r
- "runr",\r
- "inwarangciti",\r
- "deseret",\r
- "inhiragana",\r
- "sind",\r
- "cherokee",\r
- "inlatinextendedc",\r
- "adlm",\r
- "phoenician",\r
- "cher",\r
- "marchen",\r
- "inkhudawadi",\r
- "sinhala",\r
- "lower",\r
- "graphemelink",\r
- "xidstart",\r
- "ingrantha",\r
- "bidic",\r
- "xdigit",\r
- "casedletter",\r
- "gong",\r
- "multani",\r
- "gunjalagondi",\r
- "cham",\r
- "chakma",\r
- "mong",\r
- "kaithi",\r
- "inmahajani",\r
- "graphemebase",\r
- "insiddham",\r
- "inogham",\r
- "inosage",\r
- "incountingrodnumerals",\r
- "inwancho",\r
- "khojki",\r
- "ingeneralpunctuation",\r
- "georgian",\r
- "incyrillicextendedc",\r
- "inkayahli",\r
- "khar",\r
- "inoriya",\r
- "manichaean",\r
- "bamu",\r
- "zanb",\r
- "oriya",\r
- "inolchiki",\r
- "linb",\r
- "inethiopic",\r
- "wara",\r
- "ingeorgian",\r
- "innabataean",\r
- "inkanbun",\r
- "adlam",\r
- "inbhaiksuki",\r
- "insinhala",\r
- "inelbasan",\r
- "lowercase",\r
- "takri",\r
- "inmongolian",\r
- "invai",\r
- "xsux",\r
- "cntrl",\r
- "emoji",\r
- "sterm",\r
- "cuneiform",\r
- "cwcm",\r
- "hatran",\r
- "linearb",\r
- "taile",\r
- "inlatinextendedadditional",\r
- "inenclosedalphanumerics",\r
- "anatolianhieroglyphs",\r
- "incyrillicsupplement",\r
- "intamilsupplement",\r
- "inmiscellaneoustechnical",\r
- "ahom",\r
- "incherokeesupplement",\r
- "takr",\r
- "khmr",\r
- "incjkunifiedideographsextensiona",\r
- "quotationmark",\r
- "lyci",\r
- "lycian",\r
- "ingurmukhi",\r
- "runic",\r
- "limb",\r
- "inscriptionalpahlavi",\r
- "hatr",\r
- "variationselector",\r
- "modifierletter",\r
- "incjkunifiedideographsextensione",\r
- "mymr",\r
- "myanmar",\r
- "lu",\r
- "kharoshthi",\r
- "inarabic",\r
- "radical",\r
- "khmer",\r
- "inunifiedcanadianaboriginalsyllabics",\r
- "osage",\r
- "sundanese",\r
- "innewtailue",\r
- "logicalorderexception",\r
- "math",\r
- "braille",\r
- "goth",\r
- "insorasompeng",\r
- "insoyombo",\r
- "arab",\r
- "saur",\r
- "guru",\r
- "term",\r
- "paucinhau",\r
- "inbasiclatin",\r
- "inarabicpresentationformsa",\r
- "punct",\r
- "gurmukhi",\r
- "grantha",\r
- "inshavian",\r
- "osma",\r
- "inenclosedalphanumericsupplement",\r
- "intirhuta",\r
- "inelymaic",\r
- "inhatran",\r
- "incjkunifiedideographsextensionc",\r
- "emojimodifier",\r
- "uideo",\r
- "bidicontrol",\r
- "phnx",\r
- "limbu",\r
- "n",\r
- "inenclosedideographicsupplement",\r
- "mult",\r
- "kthi",\r
- "incjkunifiedideographs",\r
- "ingreekandcoptic",\r
- "inoldhungarian",\r
- "incjkcompatibility",\r
- "grbase",\r
- "nandinagari",\r
- "brah",\r
- "no",\r
- "sd",\r
- "nko",\r
- "nkoo",\r
- "xpeo",\r
- "sidd",\r
- "inherited",\r
- "p",\r
- "phli",\r
- "inmeroitichieroglyphs",\r
- "inphoenician",\r
- "inmayannumerals",\r
- "saurashtra",\r
- "inkangxiradicals",\r
- "enclosingmark",\r
- "graphemeextend",\r
- "beng",\r
- "inbatak",\r
- "glag",\r
- "ahex",\r
- "patsyn",\r
- "odi",\r
- "dogra",\r
- "intibetan",\r
- "lydi",\r
- "lydian",\r
- "inblockelements",\r
- "cwcf",\r
- "inunifiedcanadianaboriginalsyllabicsextended",\r
- "regionalindicator",\r
- "ingreekextended",\r
- "emojimodifierbase",\r
- "inanatolianhieroglyphs",\r
- "indogra",\r
- "taiviet",\r
- "inyiradicals",\r
- "unassigned",\r
- "insundanesesupplement",\r
- "innumberforms",\r
- "lowercaseletter",\r
- "dogr",\r
- "lepc",\r
- "bhks",\r
- "word",\r
- "gujr",\r
- "inphaistosdisc",\r
- "bhaiksuki",\r
- "dash",\r
- "inarabicextendeda",\r
- "gujarati",\r
- "inlatinextendedd",\r
- "innoblock",\r
- "java",\r
- "ingeometricshapes",\r
- "cyrl",\r
- "indevanagari",\r
- "inbalinese",\r
- "inbyzantinemusicalsymbols",\r
- "tale",\r
- "deva",\r
- "hex",\r
- "inmyanmarextendedb",\r
- "sinh",\r
- "cwt",\r
- "shavian",\r
- "devanagari",\r
- "oidc",\r
- "javanese",\r
- "mlym",\r
- "incjkunifiedideographsextensiond",\r
- "sentenceterminal",\r
- "malayalam",\r
- "inhanunoo",\r
- "insinhalaarchaicnumbers",\r
- "olck",\r
- "inimperialaramaic",\r
- "olower",\r
- "palmyrene",\r
- "avestan",\r
- "incjkunifiedideographsextensionf",\r
- "insogdian",\r
- "indingbats",\r
- "olchiki",\r
- "oids",\r
- "punctuation",\r
- "sund",\r
- "inbraillepatterns",\r
- "emojicomponent",\r
- "ideographic",\r
- "taml",\r
- "format",\r
- "inornamentaldingbats",\r
- "coptic",\r
- "caseignorable",\r
- "idsb",\r
- "inmiscellaneousmathematicalsymbolsb",\r
- "sogdian",\r
- "sogo",\r
- "terminalpunctuation",\r
- "intangut",\r
- "intifinagh",\r
- "inlowsurrogates",\r
- "invariationselectors",\r
- "copt",\r
- "soyo",\r
- "intags",\r
- "inverticalforms",\r
- "ininscriptionalparthian",\r
- "ininscriptionalpahlavi",\r
- "meroitichieroglyphs",\r
- "asciihexdigit",\r
- "inethiopicextendeda",\r
- "invedicextensions",\r
- "nand",\r
- "cwl",\r
- "cprt",\r
- "innushu",\r
- "zanabazarsquare",\r
- "ingeometricshapesextended",\r
- "avst",\r
- "imperialaramaic",\r
- "bopo",\r
- "sarb",\r
- "inoldpersian",\r
- "intaiviet",\r
- "mahj",\r
- "inkatakanaphoneticextensions",\r
- "mahajani",\r
- "closepunctuation",\r
- "inlisu",\r
- "softdotted",\r
- "unknown",\r
- "invariationselectorssupplement",\r
- "syrc",\r
- "hang",\r
- "incjksymbolsandpunctuation",\r
- "ingujarati",\r
- "bopomofo",\r
- "alpha",\r
- "khoj",\r
- "inpalmyrene",\r
- "ingunjalagondi",\r
- "inoldpermic",\r
- "inlepcha",\r
- "assigned",\r
- "incurrencysymbols",\r
- "insmallformvariants",\r
- "sorasompeng",\r
- "inlinearbsyllabary",\r
- "oldpersian",\r
- "caucasianalbanian",\r
- "inenclosedcjklettersandmonths",\r
- "hiragana",\r
- "inbamum",\r
- "inrejang",\r
- "graph",\r
- "sharada",\r
- "inethiopicsupplement",\r
- "indevanagariextended",\r
- "incoptic",\r
- "insyriacsupplement",\r
- "inmeroiticcursive",\r
- "hmng",\r
- "intelugu",\r
- "incombiningdiacriticalmarks",\r
- "mathsymbol",\r
- "titlecaseletter",\r
- "ugar",\r
- "incombiningdiacriticalmarksforsymbols",\r
- "spacingmark",\r
- "shrd",\r
- "injavanese",\r
- "syriac",\r
- "space",\r
- "hebr",\r
- "ext",\r
- "inhanguljamo",\r
- "phag",\r
- "inhanguljamoextendeda",\r
- "wancho",\r
- "bugi",\r
- "tamil",\r
- "sogd",\r
- "orkh",\r
- "oldpermic",\r
- "siddham",\r
- "incyrillicextendedb",\r
- "inbrahmi",\r
- "inmongoliansupplement",\r
- "thaa",\r
- "thaana",\r
- "thai",\r
- "buginese",\r
- "ingeorgiansupplement",\r
- "digit",\r
- "cyrillic",\r
- "sylo",\r
- "inphoneticextensions",\r
- "separator",\r
- "inethiopicextended",\r
- "inmathematicalalphanumericsymbols",\r
- "insymbolsandpictographsextendeda",\r
- "nd",\r
- "tirh",\r
- "tirhuta",\r
- "incombiningdiacriticalmarkssupplement",\r
- "extender",\r
- "wcho",\r
- "inbengali",\r
- "talu",\r
- "tang",\r
- "warangciti",\r
- "tagbanwa",\r
- "orya",\r
- "nl",\r
- "induployan",\r
- "cwu",\r
- "inbuginese",\r
- "telu",\r
- "ogam",\r
- "taitham",\r
- "rjng",\r
- "insuttonsignwriting",\r
- "incombiningdiacriticalmarksextended",\r
- "number",\r
- "inyijinghexagramsymbols",\r
- "whitespace",\r
- "currencysymbol",\r
- "inottomansiyaqnumbers",\r
- "inlimbu",\r
- "incopticepactnumbers",\r
- "ingeorgianextended",\r
- "inphoneticextensionssupplement",\r
- "any",\r
- "osge",\r
- "defaultignorablecodepoint",\r
- "hangul",\r
- "newa",\r
- "ethi",\r
- "hanifirohingya",\r
- "hmnp",\r
- "olditalic",\r
- "incjkunifiedideographsextensionb",\r
- "rohg",\r
- "innyiakengpuachuehmong",\r
- "incjkradicalssupplement",\r
- "newtailue",\r
- "newline",\r
- "lepcha",\r
- "deprecated",\r
- "buhd",\r
- "inglagolitic",\r
- "inaegeannumbers",\r
- "modifiersymbol",\r
- "surrogate",\r
- "inletterlikesymbols",\r
- "idstrinaryoperator",\r
- "intagalog",\r
- "tangut",\r
- "osmanya",\r
- "oalpha",\r
- "inphagspa",\r
- "ugaritic",\r
- "otheridcontinue",\r
- "inarabicpresentationformsb",\r
- "inbassavah",\r
- "other",\r
- "othernumber",\r
- "sylotinagri",\r
- "ingothic",\r
- "inbuhid",\r
- "inlatin1supplement",\r
- "intagbanwa",\r
- "shaw",\r
- "oldhungarian",\r
- "inmahjongtiles",\r
- "hung",\r
- "tifinagh",\r
- "inbopomofo",\r
- "narb",\r
- "inyisyllables",\r
- "kayahli",\r
- "otheralphabetic",\r
- "phagspa",\r
- "inprivateusearea",\r
- "elba",\r
- "nchar",\r
- "spaceseparator",\r
- "tibt",\r
- "extendedpictographic",\r
- "tibetan",\r
- "sgnw",\r
- "hexdigit",\r
- "tfng",\r
- "inbamumsupplement",\r
- "tavt",\r
- "incombininghalfmarks",\r
- "inarabicmathematicalalphabeticsymbols",\r
- "khudawadi",\r
- "inhalfwidthandfullwidthforms",\r
- "inhangulsyllables",\r
- "elym",\r
- "symbol",\r
- "bassavah",\r
- "elymaic",\r
- "changeswhencasemapped",\r
- "oldturkic",\r
- "inplayingcards",\r
- "zp",\r
- "elbasan",\r
- "buhid",\r
- "noncharactercodepoint",\r
- "finalpunctuation",\r
- "inpsalterpahlavi",\r
- "inpaucinhau",\r
- "nonspacingmark",\r
- "changeswhentitlecased",\r
- "inindicsiyaqnumbers",\r
- "phlp",\r
- "wspace",\r
- "nbat",\r
- "hluw",\r
- "cypriot",\r
- "nabataean",\r
- "inalchemicalsymbols",\r
- "dupl",\r
- "otherlowercase",\r
- "inarabicsupplement",\r
- "inalphabeticpresentationforms",\r
- "otherletter",\r
- "emojipresentation",\r
- "changeswhenlowercased",\r
- "dashpunctuation",\r
- "oldsogdian",\r
- "intangutcomponents",\r
- "soyombo",\r
- "paragraphseparator",\r
- "changeswhencasefolded",\r
- "othersymbol",\r
- "inlatinextendedb",\r
- "otheruppercase",\r
- "otheridstart",\r
- "inhebrew",\r
- "oldnortharabian",\r
- "omath",\r
- "incypriotsyllabary",\r
- "inmathematicaloperators",\r
- "changeswhenuppercased",\r
- "nshu",\r
- "insuperscriptsandsubscripts",\r
- "ogrext",\r
- "inhanguljamoextendedb",\r
- "alphabetic",\r
- "dep",\r
- "oupper",\r
- "zyyy",\r
- "aghb",\r
- "ogham",\r
- "rejang",\r
- "tagb",\r
- "hyphen",\r
- "insupplementalarrowsa",\r
- "inpahawhhmong",\r
- "nushu",\r
- "othermath",\r
- "insupplementalarrowsc",\r
- "insupplementalmathematicaloperators",\r
- "otherdefaultignorablecodepoint",\r
- "inhighprivateusesurrogates",\r
- "duployan",\r
- "oldsoutharabian",\r
- "tglg",\r
- "tagalog",\r
- "inbopomofoextended",\r
- "signwriting",\r
- "inegyptianhieroglyphs",\r
- "inegyptianhieroglyphformatcontrols",\r
- "upper",\r
- "otherpunctuation",\r
- "ethiopic",\r
- "hebrew",\r
- "telugu",\r
- "uppercase",\r
- "insupplementalpunctuation",\r
- "unifiedideograph",\r
- "pahawhhmong",\r
- "inglagoliticsupplement",\r
- "inboxdrawing",\r
- "uppercaseletter",\r
- "othergraphemeextend",\r
- "inhighsurrogates",\r
- "insupplementalarrowsb",\r
- "inhangulcompatibilityjamo",\r
- "egyp",\r
- "insupplementalsymbolsandpictographs",\r
- "nyiakengpuachuehmong",\r
- "insupplementaryprivateuseareaa",\r
- "openpunctuation",\r
- "egyptianhieroglyphs",\r
- "insupplementaryprivateuseareab"\r
- };\r
-#define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents)\r
-static const struct PoolPropertyNameCtype *\r
-unicode_lookup_property_name (register const char *str, register size_t len)\r
-{\r
- static const struct PoolPropertyNameCtype wordlist[] =\r
- {\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(10), 238},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(14), 262},\r
- {-1},\r
-\r
- {pool_offset(16), 261},\r
-\r
- {pool_offset(17), 125},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(24), 154},\r
-\r
- {pool_offset(25), 261},\r
- {-1},\r
-\r
- {pool_offset(27), 53},\r
-\r
- {pool_offset(28), 139},\r
- {-1},\r
-\r
- {pool_offset(30), 142},\r
- {-1}, {-1},\r
-\r
- {pool_offset(33), 252},\r
-\r
- {pool_offset(34), 295},\r
-\r
- {pool_offset(35), 40},\r
- {-1},\r
-\r
- {pool_offset(37), 130},\r
-\r
- {pool_offset(38), 121},\r
-\r
- {pool_offset(39), 121},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(43), 153},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(51), 283},\r
- {-1},\r
-\r
- {pool_offset(53), 54},\r
- {-1}, {-1},\r
-\r
- {pool_offset(56), 147},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(60), 131},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(70), 83},\r
- {-1},\r
-\r
- {pool_offset(72), 205},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(76), 125},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(84), 137},\r
- {-1},\r
-\r
- {pool_offset(86), 39},\r
-\r
- {pool_offset(87), 39},\r
- {-1}, {-1},\r
-\r
- {pool_offset(90), 206},\r
-\r
- {pool_offset(91), 150},\r
- {-1}, {-1},\r
-\r
- {pool_offset(94), 87},\r
- {-1},\r
-\r
- {pool_offset(96), 201},\r
- {-1}, {-1},\r
-\r
- {pool_offset(99), 149},\r
- {-1},\r
-\r
- {pool_offset(101), 460},\r
-\r
- {pool_offset(102), 80},\r
-\r
- {pool_offset(103), 87},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(107), 157},\r
-\r
- {pool_offset(108), 157},\r
- {-1},\r
-\r
- {pool_offset(110), 113},\r
-\r
- {pool_offset(111), 152},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(120), 137},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(133), 144},\r
-\r
- {pool_offset(134), 45},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(139), 446},\r
- {-1}, {-1},\r
-\r
- {pool_offset(142), 463},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(146), 277},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(151), 512},\r
-\r
- {pool_offset(152), 516},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(156), 37},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(163), 478},\r
- {-1}, {-1},\r
-\r
- {pool_offset(166), 55},\r
- {-1}, {-1},\r
-\r
- {pool_offset(169), 141},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(182), 301},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(187), 503},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(192), 106},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(200), 517},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(204), 314},\r
- {-1}, {-1},\r
-\r
- {pool_offset(207), 38},\r
- {-1},\r
-\r
- {pool_offset(209), 207},\r
- {-1},\r
-\r
- {pool_offset(211), 129},\r
-\r
- {pool_offset(212), 143},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(219), 199},\r
-\r
- {pool_offset(220), 309},\r
-\r
- {pool_offset(221), 437},\r
- {-1},\r
-\r
- {pool_offset(223), 464},\r
- {-1},\r
-\r
- {pool_offset(225), 137},\r
-\r
- {pool_offset(226), 506},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(231), 151},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(238), 177},\r
-\r
- {pool_offset(239), 492},\r
-\r
- {pool_offset(240), 271},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(251), 306},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(257), 480},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(268), 139},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(272), 344},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(277), 120},\r
- {-1},\r
-\r
- {pool_offset(279), 144},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(283), 505},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(290), 146},\r
- {-1}, {-1},\r
-\r
- {pool_offset(293), 43},\r
- {-1},\r
-\r
- {pool_offset(295), 496},\r
- {-1}, {-1},\r
-\r
- {pool_offset(298), 264},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(302), 22},\r
- {-1}, {-1},\r
-\r
- {pool_offset(305), 210},\r
-\r
- {pool_offset(306), 105},\r
- {-1}, {-1},\r
-\r
- {pool_offset(309), 284},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(316), 22},\r
- {-1},\r
-\r
- {pool_offset(318), 500},\r
-\r
- {pool_offset(319), 501},\r
- {-1},\r
-\r
- {pool_offset(321), 56},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(330), 199},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(335), 108},\r
-\r
- {pool_offset(336), 122},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(340), 122},\r
- {-1},\r
-\r
- {pool_offset(342), 212},\r
- {-1}, {-1},\r
-\r
- {pool_offset(345), 282},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(352), 320},\r
- {-1}, {-1},\r
-\r
- {pool_offset(355), 375},\r
-\r
- {pool_offset(356), 275},\r
-\r
- {pool_offset(357), 298},\r
- {-1},\r
-\r
- {pool_offset(359), 405},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(367), 476},\r
- {-1},\r
-\r
- {pool_offset(369), 266},\r
- {-1}, {-1},\r
-\r
- {pool_offset(372), 149},\r
- {-1}, {-1},\r
-\r
- {pool_offset(375), 254},\r
-\r
- {pool_offset(376), 254},\r
- {-1}, {-1},\r
-\r
- {pool_offset(379), 205},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(383), 57},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(399), 280},\r
- {-1},\r
-\r
- {pool_offset(401), 207},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(415), 491},\r
- {-1},\r
-\r
- {pool_offset(417), 141},\r
- {-1},\r
-\r
- {pool_offset(419), 119},\r
-\r
- {pool_offset(420), 208},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(427), 66},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(431), 521},\r
- {-1},\r
-\r
- {pool_offset(433), 62},\r
- {-1}, {-1},\r
-\r
- {pool_offset(436), 150},\r
-\r
- {pool_offset(437), 155},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(441), 104},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(445), 113},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(449), 108},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(456), 372},\r
-\r
- {pool_offset(457), 450},\r
-\r
- {pool_offset(458), 259},\r
- {-1}, {-1},\r
-\r
- {pool_offset(461), 34},\r
- {-1},\r
-\r
- {pool_offset(463), 299},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(472), 14},\r
- {-1},\r
-\r
- {pool_offset(474), 54},\r
- {-1}, {-1},\r
-\r
- {pool_offset(477), 21},\r
-\r
- {pool_offset(478), 156},\r
- {-1},\r
-\r
- {pool_offset(480), 406},\r
-\r
- {pool_offset(481), 471},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(485), 119},\r
- {-1},\r
-\r
- {pool_offset(487), 495},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(499), 412},\r
-\r
- {pool_offset(500), 462},\r
- {-1}, {-1},\r
-\r
- {pool_offset(503), 86},\r
-\r
- {pool_offset(504), 112},\r
- {-1}, {-1},\r
-\r
- {pool_offset(507), 112},\r
- {-1},\r
-\r
- {pool_offset(509), 425},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(514), 419},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(528), 489},\r
-\r
- {pool_offset(529), 114},\r
- {-1}, {-1},\r
-\r
- {pool_offset(532), 43},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(536), 538},\r
- {-1},\r
-\r
- {pool_offset(538), 429},\r
- {-1},\r
-\r
- {pool_offset(540), 537},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(545), 550},\r
- {-1},\r
-\r
- {pool_offset(547), 167},\r
- {-1},\r
-\r
- {pool_offset(549), 259},\r
-\r
- {pool_offset(550), 515},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(558), 555},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(564), 548},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(573), 33},\r
- {-1},\r
-\r
- {pool_offset(575), 439},\r
- {-1}, {-1},\r
-\r
- {pool_offset(578), 195},\r
- {-1},\r
-\r
- {pool_offset(580), 436},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(588), 355},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(594), 260},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(603), 209},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(619), 325},\r
-\r
- {pool_offset(620), 472},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(632), 66},\r
- {-1},\r
-\r
- {pool_offset(634), 82},\r
-\r
- {pool_offset(635), 434},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(639), 151},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(643), 296},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(648), 197},\r
-\r
- {pool_offset(649), 225},\r
- {-1}, {-1},\r
-\r
- {pool_offset(652), 522},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(656), 285},\r
-\r
- {pool_offset(657), 133},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(665), 227},\r
-\r
- {pool_offset(666), 431},\r
- {-1},\r
-\r
- {pool_offset(668), 396},\r
-\r
- {pool_offset(669), 562},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(677), 102},\r
-\r
- {pool_offset(678), 461},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(699), 395},\r
- {-1},\r
-\r
- {pool_offset(701), 100},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(707), 230},\r
-\r
- {pool_offset(708), 26},\r
-\r
- {pool_offset(709), 520},\r
-\r
- {pool_offset(710), 380},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(715), 110},\r
- {-1}, {-1},\r
-\r
- {pool_offset(718), 348},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(722), 255},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(728), 543},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(732), 28},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(739), 85},\r
- {-1},\r
-\r
- {pool_offset(741), 28},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(749), 197},\r
- {-1}, {-1},\r
-\r
- {pool_offset(752), 393},\r
-\r
- {pool_offset(753), 175},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(760), 27},\r
- {-1}, {-1},\r
-\r
- {pool_offset(763), 163},\r
- {-1},\r
-\r
- {pool_offset(765), 13},\r
- {-1},\r
-\r
- {pool_offset(767), 103},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(776), 7},\r
- {-1},\r
-\r
- {pool_offset(778), 269},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(782), 322},\r
-\r
- {pool_offset(783), 527},\r
- {-1},\r
-\r
- {pool_offset(785), 318},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(794), 216},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(809), 216},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(813), 215},\r
- {-1}, {-1},\r
-\r
- {pool_offset(816), 410},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(820), 25},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(826), 127},\r
-\r
- {pool_offset(827), 198},\r
-\r
- {pool_offset(828), 196},\r
-\r
- {pool_offset(829), 347},\r
-\r
- {pool_offset(830), 2},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(834), 353},\r
-\r
- {pool_offset(835), 128},\r
-\r
- {pool_offset(836), 528},\r
-\r
- {pool_offset(837), 264},\r
-\r
- {pool_offset(838), 457},\r
-\r
- {pool_offset(839), 226},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(843), 361},\r
-\r
- {pool_offset(844), 442},\r
-\r
- {pool_offset(845), 29},\r
-\r
- {pool_offset(846), 200},\r
- {-1},\r
-\r
- {pool_offset(848), 547},\r
- {-1},\r
-\r
- {pool_offset(850), 148},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(855), 44},\r
- {-1}, {-1},\r
-\r
- {pool_offset(858), 25},\r
- {-1},\r
-\r
- {pool_offset(860), 148},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(865), 91},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(869), 293},\r
-\r
- {pool_offset(870), 91},\r
-\r
- {pool_offset(871), 483},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(879), 94},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(887), 525},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(891), 398},\r
-\r
- {pool_offset(892), 202},\r
- {-1},\r
-\r
- {pool_offset(894), 468},\r
- {-1},\r
-\r
- {pool_offset(896), 102},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(901), 94},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(905), 218},\r
-\r
- {pool_offset(906), 482},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(913), 101},\r
- {-1},\r
-\r
- {pool_offset(915), 38},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(923), 98},\r
- {-1},\r
-\r
- {pool_offset(925), 153},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(939), 449},\r
-\r
- {pool_offset(940), 444},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(945), 507},\r
-\r
- {pool_offset(946), 272},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(950), 486},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(972), 103},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(977), 106},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(981), 368},\r
- {-1}, {-1},\r
-\r
- {pool_offset(984), 64},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(993), 41},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(999), 81},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1002), 470},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1006), 433},\r
- {-1},\r
-\r
- {pool_offset(1008), 408},\r
-\r
- {pool_offset(1009), 530},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1016), 110},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1020), 214},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1023), 494},\r
- {-1},\r
-\r
- {pool_offset(1025), 64},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1035), 374},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1039), 118},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1047), 52},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1050), 363},\r
- {-1},\r
-\r
- {pool_offset(1052), 16},\r
-\r
- {pool_offset(1053), 204},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1056), 52},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1059), 143},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1062), 484},\r
-\r
- {pool_offset(1063), 224},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1066), 6},\r
- {-1},\r
-\r
- {pool_offset(1068), 86},\r
-\r
- {pool_offset(1069), 260},\r
- {-1},\r
-\r
- {pool_offset(1071), 485},\r
-\r
- {pool_offset(1072), 31},\r
- {-1},\r
-\r
- {pool_offset(1074), 11},\r
- {-1},\r
-\r
- {pool_offset(1076), 120},\r
- {-1},\r
-\r
- {pool_offset(1078), 89},\r
-\r
- {pool_offset(1079), 158},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1082), 89},\r
- {-1},\r
-\r
- {pool_offset(1084), 46},\r
- {-1},\r
-\r
- {pool_offset(1086), 45},\r
-\r
- {pool_offset(1087), 156},\r
-\r
- {pool_offset(1088), 111},\r
-\r
- {pool_offset(1089), 479},\r
-\r
- {pool_offset(1090), 84},\r
- {-1},\r
-\r
- {pool_offset(1092), 488},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1095), 308},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1101), 447},\r
-\r
- {pool_offset(1102), 531},\r
- {-1},\r
-\r
- {pool_offset(1104), 536},\r
-\r
- {pool_offset(1105), 117},\r
- {-1},\r
-\r
- {pool_offset(1107), 338},\r
-\r
- {pool_offset(1108), 80},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1117), 329},\r
-\r
- {pool_offset(1118), 400},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1121), 115},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1124), 292},\r
- {-1},\r
-\r
- {pool_offset(1126), 142},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1132), 26},\r
-\r
- {pool_offset(1133), 263},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1136), 182},\r
-\r
- {pool_offset(1137), 328},\r
-\r
- {pool_offset(1138), 126},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1141), 304},\r
- {-1},\r
-\r
- {pool_offset(1143), 257},\r
-\r
- {pool_offset(1144), 302},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1149), 454},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1154), 378},\r
- {-1},\r
-\r
- {pool_offset(1156), 16},\r
-\r
- {pool_offset(1157), 499},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1162), 297},\r
-\r
- {pool_offset(1163), 448},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1169), 132},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1178), 240},\r
-\r
- {pool_offset(1179), 315},\r
- {-1},\r
-\r
- {pool_offset(1181), 390},\r
-\r
- {pool_offset(1182), 58},\r
-\r
- {pool_offset(1183), 3},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1186), 72},\r
-\r
- {pool_offset(1187), 219},\r
- {-1},\r
-\r
- {pool_offset(1189), 58},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1192), 48},\r
- {-1},\r
-\r
- {pool_offset(1194), 95},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1197), 126},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1201), 237},\r
-\r
- {pool_offset(1202), 336},\r
-\r
- {pool_offset(1203), 349},\r
- {-1},\r
-\r
- {pool_offset(1205), 19},\r
-\r
- {pool_offset(1206), 276},\r
- {-1},\r
-\r
- {pool_offset(1208), 504},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1215), 346},\r
- {-1},\r
-\r
- {pool_offset(1217), 17},\r
-\r
- {pool_offset(1218), 411},\r
-\r
- {pool_offset(1219), 240},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1224), 116},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1228), 384},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1231), 210},\r
- {-1},\r
-\r
- {pool_offset(1233), 135},\r
-\r
- {pool_offset(1234), 135},\r
-\r
- {pool_offset(1235), 290},\r
- {-1},\r
-\r
- {pool_offset(1237), 214},\r
-\r
- {pool_offset(1238), 124},\r
- {-1},\r
-\r
- {pool_offset(1240), 107},\r
- {-1},\r
-\r
- {pool_offset(1242), 95},\r
- {-1},\r
-\r
- {pool_offset(1244), 255},\r
- {-1},\r
-\r
- {pool_offset(1246), 129},\r
-\r
- {pool_offset(1247), 560},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1262), 159},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1265), 159},\r
- {-1},\r
-\r
- {pool_offset(1267), 134},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1275), 115},\r
-\r
- {pool_offset(1276), 279},\r
- {-1},\r
-\r
- {pool_offset(1278), 211},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1281), 116},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1286), 307},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1292), 183},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1296), 232},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1300), 319},\r
- {-1},\r
-\r
- {pool_offset(1302), 131},\r
- {-1},\r
-\r
- {pool_offset(1304), 145},\r
- {-1},\r
-\r
- {pool_offset(1306), 34},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1311), 82},\r
-\r
- {pool_offset(1312), 477},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1316), 497},\r
-\r
- {pool_offset(1317), 21},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1322), 217},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1329), 90},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1333), 244},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1337), 198},\r
-\r
- {pool_offset(1338), 267},\r
-\r
- {pool_offset(1339), 421},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1347), 8},\r
-\r
- {pool_offset(1348), 90},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1354), 83},\r
-\r
- {pool_offset(1355), 445},\r
-\r
- {pool_offset(1356), 184},\r
-\r
- {pool_offset(1357), 545},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1360), 487},\r
-\r
- {pool_offset(1361), 474},\r
-\r
- {pool_offset(1362), 455},\r
- {-1},\r
-\r
- {pool_offset(1364), 558},\r
-\r
- {pool_offset(1365), 74},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1368), 251},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1373), 31},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1379), 204},\r
-\r
- {pool_offset(1380), 124},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1384), 160},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1388), 546},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1392), 158},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1398), 111},\r
-\r
- {pool_offset(1399), 386},\r
- {-1},\r
-\r
- {pool_offset(1401), 274},\r
- {-1},\r
-\r
- {pool_offset(1403), 469},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1406), 383},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1409), 84},\r
- {-1},\r
-\r
- {pool_offset(1411), 162},\r
-\r
- {pool_offset(1412), 33},\r
- {-1},\r
-\r
- {pool_offset(1414), 168},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1421), 228},\r
- {-1},\r
-\r
- {pool_offset(1423), 166},\r
-\r
- {pool_offset(1424), 166},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1427), 178},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1430), 222},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1435), 106},\r
- {-1},\r
-\r
- {pool_offset(1437), 193},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1440), 107},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1443), 458},\r
-\r
- {pool_offset(1444), 456},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1449), 529},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1453), 217},\r
- {-1},\r
-\r
- {pool_offset(1455), 371},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1461), 147},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1467), 85},\r
-\r
- {pool_offset(1468), 29},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1473), 326},\r
-\r
- {pool_offset(1474), 81},\r
-\r
- {pool_offset(1475), 15},\r
- {-1},\r
-\r
- {pool_offset(1477), 196},\r
- {-1},\r
-\r
- {pool_offset(1479), 186},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1486), 67},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1489), 300},\r
- {-1},\r
-\r
- {pool_offset(1491), 136},\r
-\r
- {pool_offset(1492), 136},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1499), 351},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1506), 47},\r
-\r
- {pool_offset(1507), 316},\r
-\r
- {pool_offset(1508), 212},\r
-\r
- {pool_offset(1509), 337},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1513), 75},\r
-\r
- {pool_offset(1514), 510},\r
- {-1},\r
-\r
- {pool_offset(1516), 493},\r
-\r
- {pool_offset(1517), 239},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1524), 388},\r
-\r
- {pool_offset(1525), 53},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1532), 331},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1535), 343},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1538), 128},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1541), 67},\r
-\r
- {pool_offset(1542), 123},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1545), 30},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1553), 12},\r
-\r
- {pool_offset(1554), 88},\r
-\r
- {pool_offset(1555), 435},\r
- {-1},\r
-\r
- {pool_offset(1557), 30},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1560), 61},\r
- {-1},\r
-\r
- {pool_offset(1562), 287},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1565), 88},\r
-\r
- {pool_offset(1566), 394},\r
-\r
- {pool_offset(1567), 567},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1570), 109},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1576), 352},\r
-\r
- {pool_offset(1577), 60},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1582), 288},\r
-\r
- {pool_offset(1583), 324},\r
- {-1},\r
-\r
- {pool_offset(1585), 526},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1589), 237},\r
- {-1},\r
-\r
- {pool_offset(1591), 65},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1594), 97},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1601), 404},\r
- {-1},\r
-\r
- {pool_offset(1603), 224},\r
-\r
- {pool_offset(1604), 50},\r
- {-1},\r
-\r
- {pool_offset(1606), 221},\r
-\r
- {pool_offset(1607), 65},\r
- {-1},\r
-\r
- {pool_offset(1609), 188},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1615), 109},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1621), 140},\r
-\r
- {pool_offset(1622), 559},\r
- {-1},\r
-\r
- {pool_offset(1624), 219},\r
- {-1},\r
-\r
- {pool_offset(1626), 140},\r
- {-1},\r
-\r
- {pool_offset(1628), 311},\r
-\r
- {pool_offset(1629), 481},\r
- {-1},\r
-\r
- {pool_offset(1631), 173},\r
- {-1},\r
-\r
- {pool_offset(1633), 452},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1636), 190},\r
- {-1},\r
-\r
- {pool_offset(1638), 195},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1642), 24},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1645), 561},\r
-\r
- {pool_offset(1646), 473},\r
-\r
- {pool_offset(1647), 354},\r
-\r
- {pool_offset(1648), 173},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1654), 189},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1661), 193},\r
- {-1},\r
-\r
- {pool_offset(1663), 232},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1666), 357},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1669), 73},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1672), 104},\r
-\r
- {pool_offset(1673), 241},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1688), 44},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1694), 549},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1700), 56},\r
- {-1},\r
-\r
- {pool_offset(1702), 40},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1708), 100},\r
-\r
- {pool_offset(1709), 359},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1712), 229},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1715), 179},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1720), 244},\r
- {-1},\r
-\r
- {pool_offset(1722), 518},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1729), 366},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1733), 417},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1743), 422},\r
- {-1},\r
-\r
- {pool_offset(1745), 56},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1750), 231},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1753), 563},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1756), 423},\r
-\r
- {pool_offset(1757), 465},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1760), 466},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1763), 152},\r
-\r
- {pool_offset(1764), 15},\r
- {-1},\r
-\r
- {pool_offset(1766), 409},\r
-\r
- {pool_offset(1767), 332},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1781), 162},\r
-\r
- {pool_offset(1782), 49},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1785), 59},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1791), 523},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1794), 263},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1797), 552},\r
-\r
- {pool_offset(1798), 24},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1808), 105},\r
- {-1},\r
-\r
- {pool_offset(1810), 32},\r
- {-1},\r
-\r
- {pool_offset(1812), 180},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1819), 443},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(1830), 407},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1834), 138},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1838), 381},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1845), 138},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1871), 201},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1875), 389},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1878), 228},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1897), 252},\r
-\r
- {pool_offset(1898), 564},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1910), 234},\r
-\r
- {pool_offset(1911), 92},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1926), 373},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1932), 291},\r
-\r
- {pool_offset(1933), 32},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1936), 1},\r
-\r
- {pool_offset(1937), 117},\r
- {-1},\r
-\r
- {pool_offset(1939), 453},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1942), 502},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1948), 441},\r
- {-1},\r
-\r
- {pool_offset(1950), 327},\r
-\r
- {pool_offset(1951), 23},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1955), 340},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1958), 426},\r
-\r
- {pool_offset(1959), 230},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1964), 430},\r
-\r
- {pool_offset(1965), 178},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1972), 42},\r
-\r
- {pool_offset(1973), 382},\r
- {-1},\r
-\r
- {pool_offset(1975), 98},\r
-\r
- {pool_offset(1976), 392},\r
- {-1}, {-1},\r
-\r
- {pool_offset(1979), 401},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1984), 5},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1990), 220},\r
-\r
- {pool_offset(1991), 305},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(1996), 399},\r
-\r
- {pool_offset(1997), 364},\r
-\r
- {pool_offset(1998), 286},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2004), 459},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2014), 194},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2022), 294},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2029), 273},\r
- {-1},\r
-\r
- {pool_offset(2031), 226},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2036), 133},\r
- {-1},\r
-\r
- {pool_offset(2038), 250},\r
-\r
- {pool_offset(2039), 341},\r
-\r
- {pool_offset(2040), 146},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2043), 220},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2047), 403},\r
-\r
- {pool_offset(2048), 234},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2054), 9},\r
- {-1},\r
-\r
- {pool_offset(2056), 96},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2061), 79},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2064), 303},\r
- {-1},\r
-\r
- {pool_offset(2066), 203},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2076), 402},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2082), 256},\r
- {-1},\r
-\r
- {pool_offset(2084), 35},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2089), 241},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2093), 229},\r
-\r
- {pool_offset(2094), 181},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2097), 177},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2100), 222},\r
- {-1},\r
-\r
- {pool_offset(2102), 391},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2105), 475},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2108), 490},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2113), 245},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2118), 245},\r
- {-1},\r
-\r
- {pool_offset(2120), 246},\r
- {-1},\r
-\r
- {pool_offset(2122), 35},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2127), 365},\r
- {-1},\r
-\r
- {pool_offset(2129), 4},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2132), 60},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2149), 233},\r
-\r
- {pool_offset(2150), 333},\r
-\r
- {pool_offset(2151), 262},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2159), 367},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2163), 532},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2168), 556},\r
- {-1},\r
-\r
- {pool_offset(2170), 163},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2176), 249},\r
- {-1},\r
-\r
- {pool_offset(2178), 249},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2184), 335},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2193), 79},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2197), 256},\r
- {-1},\r
-\r
- {pool_offset(2199), 289},\r
- {-1},\r
-\r
- {pool_offset(2201), 164},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2206), 242},\r
-\r
- {pool_offset(2207), 257},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2210), 236},\r
-\r
- {pool_offset(2211), 182},\r
-\r
- {pool_offset(2212), 167},\r
-\r
- {pool_offset(2213), 524},\r
-\r
- {pool_offset(2214), 51},\r
- {-1},\r
-\r
- {pool_offset(2216), 321},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2220), 243},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2223), 172},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2226), 238},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(2237), 213},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2240), 533},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2250), 323},\r
-\r
- {pool_offset(2251), 160},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2264), 385},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2277), 258},\r
-\r
- {pool_offset(2278), 218},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2285), 540},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2288), 317},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2293), 438},\r
- {-1},\r
-\r
- {pool_offset(2295), 330},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2305), 334},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2308), 20},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2320), 183},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2325), 62},\r
-\r
- {pool_offset(2326), 92},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2333), 165},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2343), 77},\r
- {-1},\r
-\r
- {pool_offset(2345), 93},\r
-\r
- {pool_offset(2346), 171},\r
- {-1},\r
-\r
- {pool_offset(2348), 175},\r
-\r
- {pool_offset(2349), 557},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2352), 93},\r
-\r
- {pool_offset(2353), 535},\r
- {-1},\r
-\r
- {pool_offset(2355), 370},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2364), 164},\r
-\r
- {pool_offset(2365), 0},\r
-\r
- {pool_offset(2366), 123},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2375), 63},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2381), 36},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2391), 362},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2395), 432},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2400), 225},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2410), 57},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2418), 342},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2426), 101},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2442), 310},\r
-\r
- {pool_offset(2443), 242},\r
- {-1},\r
-\r
- {pool_offset(2445), 184},\r
- {-1},\r
-\r
- {pool_offset(2447), 185},\r
-\r
- {pool_offset(2448), 397},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2455), 250},\r
-\r
- {pool_offset(2456), 188},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2460), 427},\r
- {-1},\r
-\r
- {pool_offset(2462), 513},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2469), 37},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2478), 168},\r
- {-1},\r
-\r
- {pool_offset(2480), 233},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2487), 440},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(2498), 312},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2502), 268},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2516), 313},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2523), 221},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2529), 174},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2538), 542},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2542), 174},\r
- {-1},\r
-\r
- {pool_offset(2544), 248},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2554), 376},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2561), 176},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2571), 387},\r
- {-1},\r
-\r
- {pool_offset(2573), 114},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2578), 185},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2582), 203},\r
- {-1},\r
-\r
- {pool_offset(2584), 418},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2588), 70},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2591), 169},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2607), 266},\r
- {-1},\r
-\r
- {pool_offset(2609), 247},\r
- {-1},\r
-\r
- {pool_offset(2611), 78},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2615), 247},\r
-\r
- {pool_offset(2616), 223},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2622), 97},\r
-\r
- {pool_offset(2623), 248},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2627), 511},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2632), 239},\r
-\r
- {pool_offset(2633), 424},\r
-\r
- {pool_offset(2634), 541},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2638), 118},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2641), 428},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(2652), 413},\r
-\r
- {pool_offset(2653), 71},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2669), 215},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2692), 27},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2696), 71},\r
- {-1},\r
-\r
- {pool_offset(2698), 48},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(2709), 181},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2725), 544},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2767), 265},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2775), 70},\r
-\r
- {pool_offset(2776), 36},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2779), 169},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2785), 202},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2794), 467},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2800), 498},\r
-\r
- {pool_offset(2801), 154},\r
- {-1}, {-1},\r
-\r
- {pool_offset(2804), 50},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2808), 539},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2813), 209},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(2824), 258},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2831), 161},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2836), 19},\r
- {-1},\r
-\r
- {pool_offset(2838), 59},\r
-\r
- {pool_offset(2839), 161},\r
- {-1},\r
-\r
- {pool_offset(2841), 551},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2847), 68},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2856), 190},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2875), 281},\r
-\r
- {pool_offset(2876), 420},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2890), 130},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2916), 76},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2930), 49},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2953), 200},\r
-\r
- {pool_offset(2954), 179},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2970), 519},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2977), 231},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(2996), 265},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3012), 47},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3015), 227},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3020), 270},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3072), 192},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3079), 189},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3084), 278},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3088), 176},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3092), 191},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3099), 451},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3118), 345},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3146), 51},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3154), 170},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3182), 339},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3188), 187},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3197), 414},\r
-\r
- {pool_offset(3198), 18},\r
-\r
- {pool_offset(3199), 63},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3216), 192},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3258), 55},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3267), 42},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3285), 172},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3306), 213},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3324), 236},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3350), 99},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3355), 356},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3413), 514},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3459), 170},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3478), 191},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3491), 553},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3494), 360},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3500), 186},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3527), 416},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(3538), 68},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3663), 180},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3666), 235},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3685), 235},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3692), 379},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3731), 223},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3750), 508},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3763), 509},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3807), 10},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3810), 206},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3872), 77},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3881), 96},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(3901), 243},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3910), 253},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3937), 369},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3946), 251},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3961), 194},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(3971), 534},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(3992), 350},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4279), 134},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4298), 187},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4401), 415},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1},\r
-\r
- {pool_offset(4476), 358},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4562), 377},\r
-\r
- {pool_offset(4563), 69},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4577), 554},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4659), 171},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(4688), 565},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(4822), 208},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1},\r
-\r
- {pool_offset(4851), 69},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},\r
- {-1}, {-1}, {-1},\r
-\r
- {pool_offset(5809), 566}\r
- };\r
-\r
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\r
- {\r
- register unsigned int key = hash (str, len);\r
-\r
- if (key <= MAX_HASH_VALUE)\r
- {\r
- register int o = wordlist[key].name;\r
- if (o >= 0)\r
- {\r
- register const char *s = o + unicode_prop_name_pool;\r
-\r
- if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')\r
- return &wordlist[key];\r
- }\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-\r
-\r
-#define UNICODE_PROPERTY_VERSION 12_1_0\r
-\r
-#define PROPERTY_NAME_MAX_SIZE 59\r
-#define CODE_RANGES_NUM 568\r
-\r
-#define PROP_INDEX_NEWLINE 0\r
-#define PROP_INDEX_ALPHA 1\r
-#define PROP_INDEX_BLANK 2\r
-#define PROP_INDEX_CNTRL 3\r
-#define PROP_INDEX_DIGIT 4\r
-#define PROP_INDEX_GRAPH 5\r
-#define PROP_INDEX_LOWER 6\r
-#define PROP_INDEX_PRINT 7\r
-#define PROP_INDEX_PUNCT 8\r
-#define PROP_INDEX_SPACE 9\r
-#define PROP_INDEX_UPPER 10\r
-#define PROP_INDEX_XDIGIT 11\r
-#define PROP_INDEX_WORD 12\r
-#define PROP_INDEX_ALNUM 13\r
-#define PROP_INDEX_ASCII 14\r
-#define PROP_INDEX_ASCIIHEXDIGIT 15\r
-#define PROP_INDEX_AHEX 15\r
-#define PROP_INDEX_ADLM 16\r
-#define PROP_INDEX_ADLAM 16\r
-#define PROP_INDEX_AHOM 17\r
-#define PROP_INDEX_ALPHABETIC 18\r
-#define PROP_INDEX_ANATOLIANHIEROGLYPHS 19\r
-#define PROP_INDEX_HLUW 19\r
-#define PROP_INDEX_ANY 20\r
-#define PROP_INDEX_ARABIC 21\r
-#define PROP_INDEX_ARAB 21\r
-#define PROP_INDEX_ARMN 22\r
-#define PROP_INDEX_ARMENIAN 22\r
-#define PROP_INDEX_ASSIGNED 23\r
-#define PROP_INDEX_AVST 24\r
-#define PROP_INDEX_AVESTAN 24\r
-#define PROP_INDEX_BALINESE 25\r
-#define PROP_INDEX_BALI 25\r
-#define PROP_INDEX_BAMUM 26\r
-#define PROP_INDEX_BAMU 26\r
-#define PROP_INDEX_BASSAVAH 27\r
-#define PROP_INDEX_BASS 27\r
-#define PROP_INDEX_BATAK 28\r
-#define PROP_INDEX_BATK 28\r
-#define PROP_INDEX_BENG 29\r
-#define PROP_INDEX_BENGALI 29\r
-#define PROP_INDEX_BHKS 30\r
-#define PROP_INDEX_BHAIKSUKI 30\r
-#define PROP_INDEX_BIDICONTROL 31\r
-#define PROP_INDEX_BIDIC 31\r
-#define PROP_INDEX_BOPO 32\r
-#define PROP_INDEX_BOPOMOFO 32\r
-#define PROP_INDEX_BRAHMI 33\r
-#define PROP_INDEX_BRAH 33\r
-#define PROP_INDEX_BRAI 34\r
-#define PROP_INDEX_BRAILLE 34\r
-#define PROP_INDEX_BUGI 35\r
-#define PROP_INDEX_BUGINESE 35\r
-#define PROP_INDEX_BUHD 36\r
-#define PROP_INDEX_BUHID 36\r
-#define PROP_INDEX_C 37\r
-#define PROP_INDEX_OTHER 37\r
-#define PROP_INDEX_CANS 38\r
-#define PROP_INDEX_CANADIANABORIGINAL 38\r
-#define PROP_INDEX_CARI 39\r
-#define PROP_INDEX_CARIAN 39\r
-#define PROP_INDEX_CI 40\r
-#define PROP_INDEX_CASEIGNORABLE 40\r
-#define PROP_INDEX_CASED 41\r
-#define PROP_INDEX_AGHB 42\r
-#define PROP_INDEX_CAUCASIANALBANIAN 42\r
-#define PROP_INDEX_CONTROL 43\r
-#define PROP_INDEX_CC 43\r
-#define PROP_INDEX_CF 44\r
-#define PROP_INDEX_FORMAT 44\r
-#define PROP_INDEX_CHAKMA 45\r
-#define PROP_INDEX_CAKM 45\r
-#define PROP_INDEX_CHAM 46\r
-#define PROP_INDEX_CWCF 47\r
-#define PROP_INDEX_CHANGESWHENCASEFOLDED 47\r
-#define PROP_INDEX_CWCM 48\r
-#define PROP_INDEX_CHANGESWHENCASEMAPPED 48\r
-#define PROP_INDEX_CWL 49\r
-#define PROP_INDEX_CHANGESWHENLOWERCASED 49\r
-#define PROP_INDEX_CWT 50\r
-#define PROP_INDEX_CHANGESWHENTITLECASED 50\r
-#define PROP_INDEX_CWU 51\r
-#define PROP_INDEX_CHANGESWHENUPPERCASED 51\r
-#define PROP_INDEX_CHER 52\r
-#define PROP_INDEX_CHEROKEE 52\r
-#define PROP_INDEX_CN 53\r
-#define PROP_INDEX_UNASSIGNED 53\r
-#define PROP_INDEX_PRIVATEUSE 54\r
-#define PROP_INDEX_CO 54\r
-#define PROP_INDEX_ZYYY 55\r
-#define PROP_INDEX_COMMON 55\r
-#define PROP_INDEX_COPT 56\r
-#define PROP_INDEX_COPTIC 56\r
-#define PROP_INDEX_QAAC 56\r
-#define PROP_INDEX_CS 57\r
-#define PROP_INDEX_SURROGATE 57\r
-#define PROP_INDEX_XSUX 58\r
-#define PROP_INDEX_CUNEIFORM 58\r
-#define PROP_INDEX_CPRT 59\r
-#define PROP_INDEX_CYPRIOT 59\r
-#define PROP_INDEX_CYRILLIC 60\r
-#define PROP_INDEX_CYRL 60\r
-#define PROP_INDEX_DASH 61\r
-#define PROP_INDEX_DEFAULTIGNORABLECODEPOINT 62\r
-#define PROP_INDEX_DI 62\r
-#define PROP_INDEX_DEP 63\r
-#define PROP_INDEX_DEPRECATED 63\r
-#define PROP_INDEX_DSRT 64\r
-#define PROP_INDEX_DESERET 64\r
-#define PROP_INDEX_DEVA 65\r
-#define PROP_INDEX_DEVANAGARI 65\r
-#define PROP_INDEX_DIACRITIC 66\r
-#define PROP_INDEX_DIA 66\r
-#define PROP_INDEX_DOGRA 67\r
-#define PROP_INDEX_DOGR 67\r
-#define PROP_INDEX_DUPL 68\r
-#define PROP_INDEX_DUPLOYAN 68\r
-#define PROP_INDEX_EGYPTIANHIEROGLYPHS 69\r
-#define PROP_INDEX_EGYP 69\r
-#define PROP_INDEX_ELBA 70\r
-#define PROP_INDEX_ELBASAN 70\r
-#define PROP_INDEX_ELYM 71\r
-#define PROP_INDEX_ELYMAIC 71\r
-#define PROP_INDEX_EMOJI 72\r
-#define PROP_INDEX_EMOJICOMPONENT 73\r
-#define PROP_INDEX_EMOJIMODIFIER 74\r
-#define PROP_INDEX_EMOJIMODIFIERBASE 75\r
-#define PROP_INDEX_EMOJIPRESENTATION 76\r
-#define PROP_INDEX_ETHIOPIC 77\r
-#define PROP_INDEX_ETHI 77\r
-#define PROP_INDEX_EXTENDEDPICTOGRAPHIC 78\r
-#define PROP_INDEX_EXT 79\r
-#define PROP_INDEX_EXTENDER 79\r
-#define PROP_INDEX_GEORGIAN 80\r
-#define PROP_INDEX_GEOR 80\r
-#define PROP_INDEX_GLAG 81\r
-#define PROP_INDEX_GLAGOLITIC 81\r
-#define PROP_INDEX_GOTH 82\r
-#define PROP_INDEX_GOTHIC 82\r
-#define PROP_INDEX_GRAN 83\r
-#define PROP_INDEX_GRANTHA 83\r
-#define PROP_INDEX_GRBASE 84\r
-#define PROP_INDEX_GRAPHEMEBASE 84\r
-#define PROP_INDEX_GREXT 85\r
-#define PROP_INDEX_GRAPHEMEEXTEND 85\r
-#define PROP_INDEX_GRAPHEMELINK 86\r
-#define PROP_INDEX_GRLINK 86\r
-#define PROP_INDEX_GREEK 87\r
-#define PROP_INDEX_GREK 87\r
-#define PROP_INDEX_GUJARATI 88\r
-#define PROP_INDEX_GUJR 88\r
-#define PROP_INDEX_GUNJALAGONDI 89\r
-#define PROP_INDEX_GONG 89\r
-#define PROP_INDEX_GURU 90\r
-#define PROP_INDEX_GURMUKHI 90\r
-#define PROP_INDEX_HANI 91\r
-#define PROP_INDEX_HAN 91\r
-#define PROP_INDEX_HANG 92\r
-#define PROP_INDEX_HANGUL 92\r
-#define PROP_INDEX_HANIFIROHINGYA 93\r
-#define PROP_INDEX_ROHG 93\r
-#define PROP_INDEX_HANUNOO 94\r
-#define PROP_INDEX_HANO 94\r
-#define PROP_INDEX_HATR 95\r
-#define PROP_INDEX_HATRAN 95\r
-#define PROP_INDEX_HEBREW 96\r
-#define PROP_INDEX_HEBR 96\r
-#define PROP_INDEX_HEXDIGIT 97\r
-#define PROP_INDEX_HEX 97\r
-#define PROP_INDEX_HIRAGANA 98\r
-#define PROP_INDEX_HIRA 98\r
-#define PROP_INDEX_HYPHEN 99\r
-#define PROP_INDEX_IDSB 100\r
-#define PROP_INDEX_IDSBINARYOPERATOR 100\r
-#define PROP_INDEX_IDST 101\r
-#define PROP_INDEX_IDSTRINARYOPERATOR 101\r
-#define PROP_INDEX_IDCONTINUE 102\r
-#define PROP_INDEX_IDC 102\r
-#define PROP_INDEX_IDS 103\r
-#define PROP_INDEX_IDSTART 103\r
-#define PROP_INDEX_IDEO 104\r
-#define PROP_INDEX_IDEOGRAPHIC 104\r
-#define PROP_INDEX_ARMI 105\r
-#define PROP_INDEX_IMPERIALARAMAIC 105\r
-#define PROP_INDEX_ZINH 106\r
-#define PROP_INDEX_INHERITED 106\r
-#define PROP_INDEX_QAAI 106\r
-#define PROP_INDEX_PHLI 107\r
-#define PROP_INDEX_INSCRIPTIONALPAHLAVI 107\r
-#define PROP_INDEX_INSCRIPTIONALPARTHIAN 108\r
-#define PROP_INDEX_PRTI 108\r
-#define PROP_INDEX_JAVANESE 109\r
-#define PROP_INDEX_JAVA 109\r
-#define PROP_INDEX_JOINC 110\r
-#define PROP_INDEX_JOINCONTROL 110\r
-#define PROP_INDEX_KAITHI 111\r
-#define PROP_INDEX_KTHI 111\r
-#define PROP_INDEX_KNDA 112\r
-#define PROP_INDEX_KANNADA 112\r
-#define PROP_INDEX_KATAKANA 113\r
-#define PROP_INDEX_KANA 113\r
-#define PROP_INDEX_KAYAHLI 114\r
-#define PROP_INDEX_KALI 114\r
-#define PROP_INDEX_KHAROSHTHI 115\r
-#define PROP_INDEX_KHAR 115\r
-#define PROP_INDEX_KHMR 116\r
-#define PROP_INDEX_KHMER 116\r
-#define PROP_INDEX_KHOJ 117\r
-#define PROP_INDEX_KHOJKI 117\r
-#define PROP_INDEX_KHUDAWADI 118\r
-#define PROP_INDEX_SIND 118\r
-#define PROP_INDEX_L 119\r
-#define PROP_INDEX_LETTER 119\r
-#define PROP_INDEX_LC 120\r
-#define PROP_INDEX_CASEDLETTER 120\r
-#define PROP_INDEX_LAO 121\r
-#define PROP_INDEX_LAOO 121\r
-#define PROP_INDEX_LATN 122\r
-#define PROP_INDEX_LATIN 122\r
-#define PROP_INDEX_LEPC 123\r
-#define PROP_INDEX_LEPCHA 123\r
-#define PROP_INDEX_LIMBU 124\r
-#define PROP_INDEX_LIMB 124\r
-#define PROP_INDEX_LINA 125\r
-#define PROP_INDEX_LINEARA 125\r
-#define PROP_INDEX_LINB 126\r
-#define PROP_INDEX_LINEARB 126\r
-#define PROP_INDEX_LISU 127\r
-#define PROP_INDEX_LOWERCASELETTER 128\r
-#define PROP_INDEX_LL 128\r
-#define PROP_INDEX_LM 129\r
-#define PROP_INDEX_MODIFIERLETTER 129\r
-#define PROP_INDEX_LO 130\r
-#define PROP_INDEX_OTHERLETTER 130\r
-#define PROP_INDEX_LOGICALORDEREXCEPTION 131\r
-#define PROP_INDEX_LOE 131\r
-#define PROP_INDEX_LOWERCASE 132\r
-#define PROP_INDEX_LT 133\r
-#define PROP_INDEX_TITLECASELETTER 133\r
-#define PROP_INDEX_UPPERCASELETTER 134\r
-#define PROP_INDEX_LU 134\r
-#define PROP_INDEX_LYCI 135\r
-#define PROP_INDEX_LYCIAN 135\r
-#define PROP_INDEX_LYDI 136\r
-#define PROP_INDEX_LYDIAN 136\r
-#define PROP_INDEX_M 137\r
-#define PROP_INDEX_COMBININGMARK 137\r
-#define PROP_INDEX_MARK 137\r
-#define PROP_INDEX_MAHJ 138\r
-#define PROP_INDEX_MAHAJANI 138\r
-#define PROP_INDEX_MAKASAR 139\r
-#define PROP_INDEX_MAKA 139\r
-#define PROP_INDEX_MALAYALAM 140\r
-#define PROP_INDEX_MLYM 140\r
-#define PROP_INDEX_MAND 141\r
-#define PROP_INDEX_MANDAIC 141\r
-#define PROP_INDEX_MANI 142\r
-#define PROP_INDEX_MANICHAEAN 142\r
-#define PROP_INDEX_MARC 143\r
-#define PROP_INDEX_MARCHEN 143\r
-#define PROP_INDEX_MASARAMGONDI 144\r
-#define PROP_INDEX_GONM 144\r
-#define PROP_INDEX_MATH 145\r
-#define PROP_INDEX_MC 146\r
-#define PROP_INDEX_SPACINGMARK 146\r
-#define PROP_INDEX_ENCLOSINGMARK 147\r
-#define PROP_INDEX_ME 147\r
-#define PROP_INDEX_MEDEFAIDRIN 148\r
-#define PROP_INDEX_MEDF 148\r
-#define PROP_INDEX_MEETEIMAYEK 149\r
-#define PROP_INDEX_MTEI 149\r
-#define PROP_INDEX_MENDEKIKAKUI 150\r
-#define PROP_INDEX_MEND 150\r
-#define PROP_INDEX_MEROITICCURSIVE 151\r
-#define PROP_INDEX_MERC 151\r
-#define PROP_INDEX_MEROITICHIEROGLYPHS 152\r
-#define PROP_INDEX_MERO 152\r
-#define PROP_INDEX_PLRD 153\r
-#define PROP_INDEX_MIAO 153\r
-#define PROP_INDEX_MN 154\r
-#define PROP_INDEX_NONSPACINGMARK 154\r
-#define PROP_INDEX_MODI 155\r
-#define PROP_INDEX_MONGOLIAN 156\r
-#define PROP_INDEX_MONG 156\r
-#define PROP_INDEX_MRO 157\r
-#define PROP_INDEX_MROO 157\r
-#define PROP_INDEX_MULT 158\r
-#define PROP_INDEX_MULTANI 158\r
-#define PROP_INDEX_MYANMAR 159\r
-#define PROP_INDEX_MYMR 159\r
-#define PROP_INDEX_NUMBER 160\r
-#define PROP_INDEX_N 160\r
-#define PROP_INDEX_NABATAEAN 161\r
-#define PROP_INDEX_NBAT 161\r
-#define PROP_INDEX_NAND 162\r
-#define PROP_INDEX_NANDINAGARI 162\r
-#define PROP_INDEX_DECIMALNUMBER 163\r
-#define PROP_INDEX_ND 163\r
-#define PROP_INDEX_TALU 164\r
-#define PROP_INDEX_NEWTAILUE 164\r
-#define PROP_INDEX_NEWA 165\r
-#define PROP_INDEX_NKO 166\r
-#define PROP_INDEX_NKOO 166\r
-#define PROP_INDEX_LETTERNUMBER 167\r
-#define PROP_INDEX_NL 167\r
-#define PROP_INDEX_OTHERNUMBER 168\r
-#define PROP_INDEX_NO 168\r
-#define PROP_INDEX_NONCHARACTERCODEPOINT 169\r
-#define PROP_INDEX_NCHAR 169\r
-#define PROP_INDEX_NSHU 170\r
-#define PROP_INDEX_NUSHU 170\r
-#define PROP_INDEX_HMNP 171\r
-#define PROP_INDEX_NYIAKENGPUACHUEHMONG 171\r
-#define PROP_INDEX_OGHAM 172\r
-#define PROP_INDEX_OGAM 172\r
-#define PROP_INDEX_OLCK 173\r
-#define PROP_INDEX_OLCHIKI 173\r
-#define PROP_INDEX_HUNG 174\r
-#define PROP_INDEX_OLDHUNGARIAN 174\r
-#define PROP_INDEX_ITAL 175\r
-#define PROP_INDEX_OLDITALIC 175\r
-#define PROP_INDEX_NARB 176\r
-#define PROP_INDEX_OLDNORTHARABIAN 176\r
-#define PROP_INDEX_OLDPERMIC 177\r
-#define PROP_INDEX_PERM 177\r
-#define PROP_INDEX_OLDPERSIAN 178\r
-#define PROP_INDEX_XPEO 178\r
-#define PROP_INDEX_SOGO 179\r
-#define PROP_INDEX_OLDSOGDIAN 179\r
-#define PROP_INDEX_SARB 180\r
-#define PROP_INDEX_OLDSOUTHARABIAN 180\r
-#define PROP_INDEX_OLDTURKIC 181\r
-#define PROP_INDEX_ORKH 181\r
-#define PROP_INDEX_ORYA 182\r
-#define PROP_INDEX_ORIYA 182\r
-#define PROP_INDEX_OSAGE 183\r
-#define PROP_INDEX_OSGE 183\r
-#define PROP_INDEX_OSMANYA 184\r
-#define PROP_INDEX_OSMA 184\r
-#define PROP_INDEX_OTHERALPHABETIC 185\r
-#define PROP_INDEX_OALPHA 185\r
-#define PROP_INDEX_ODI 186\r
-#define PROP_INDEX_OTHERDEFAULTIGNORABLECODEPOINT 186\r
-#define PROP_INDEX_OGREXT 187\r
-#define PROP_INDEX_OTHERGRAPHEMEEXTEND 187\r
-#define PROP_INDEX_OIDC 188\r
-#define PROP_INDEX_OTHERIDCONTINUE 188\r
-#define PROP_INDEX_OTHERIDSTART 189\r
-#define PROP_INDEX_OIDS 189\r
-#define PROP_INDEX_OTHERLOWERCASE 190\r
-#define PROP_INDEX_OLOWER 190\r
-#define PROP_INDEX_OTHERMATH 191\r
-#define PROP_INDEX_OMATH 191\r
-#define PROP_INDEX_OTHERUPPERCASE 192\r
-#define PROP_INDEX_OUPPER 192\r
-#define PROP_INDEX_P 193\r
-#define PROP_INDEX_PUNCTUATION 193\r
-#define PROP_INDEX_PAHAWHHMONG 194\r
-#define PROP_INDEX_HMNG 194\r
-#define PROP_INDEX_PALMYRENE 195\r
-#define PROP_INDEX_PALM 195\r
-#define PROP_INDEX_PATTERNSYNTAX 196\r
-#define PROP_INDEX_PATSYN 196\r
-#define PROP_INDEX_PATWS 197\r
-#define PROP_INDEX_PATTERNWHITESPACE 197\r
-#define PROP_INDEX_PAUCINHAU 198\r
-#define PROP_INDEX_PAUC 198\r
-#define PROP_INDEX_CONNECTORPUNCTUATION 199\r
-#define PROP_INDEX_PC 199\r
-#define PROP_INDEX_DASHPUNCTUATION 200\r
-#define PROP_INDEX_PD 200\r
-#define PROP_INDEX_PE 201\r
-#define PROP_INDEX_CLOSEPUNCTUATION 201\r
-#define PROP_INDEX_FINALPUNCTUATION 202\r
-#define PROP_INDEX_PF 202\r
-#define PROP_INDEX_PHAG 203\r
-#define PROP_INDEX_PHAGSPA 203\r
-#define PROP_INDEX_PHOENICIAN 204\r
-#define PROP_INDEX_PHNX 204\r
-#define PROP_INDEX_PI 205\r
-#define PROP_INDEX_INITIALPUNCTUATION 205\r
-#define PROP_INDEX_OTHERPUNCTUATION 206\r
-#define PROP_INDEX_PO 206\r
-#define PROP_INDEX_PREPENDEDCONCATENATIONMARK 207\r
-#define PROP_INDEX_PCM 207\r
-#define PROP_INDEX_PS 208\r
-#define PROP_INDEX_OPENPUNCTUATION 208\r
-#define PROP_INDEX_PHLP 209\r
-#define PROP_INDEX_PSALTERPAHLAVI 209\r
-#define PROP_INDEX_QUOTATIONMARK 210\r
-#define PROP_INDEX_QMARK 210\r
-#define PROP_INDEX_RADICAL 211\r
-#define PROP_INDEX_RI 212\r
-#define PROP_INDEX_REGIONALINDICATOR 212\r
-#define PROP_INDEX_REJANG 213\r
-#define PROP_INDEX_RJNG 213\r
-#define PROP_INDEX_RUNIC 214\r
-#define PROP_INDEX_RUNR 214\r
-#define PROP_INDEX_S 215\r
-#define PROP_INDEX_SYMBOL 215\r
-#define PROP_INDEX_SAMARITAN 216\r
-#define PROP_INDEX_SAMR 216\r
-#define PROP_INDEX_SAURASHTRA 217\r
-#define PROP_INDEX_SAUR 217\r
-#define PROP_INDEX_SC 218\r
-#define PROP_INDEX_CURRENCYSYMBOL 218\r
-#define PROP_INDEX_SENTENCETERMINAL 219\r
-#define PROP_INDEX_STERM 219\r
-#define PROP_INDEX_SHARADA 220\r
-#define PROP_INDEX_SHRD 220\r
-#define PROP_INDEX_SHAVIAN 221\r
-#define PROP_INDEX_SHAW 221\r
-#define PROP_INDEX_SIDDHAM 222\r
-#define PROP_INDEX_SIDD 222\r
-#define PROP_INDEX_SIGNWRITING 223\r
-#define PROP_INDEX_SGNW 223\r
-#define PROP_INDEX_SINH 224\r
-#define PROP_INDEX_SINHALA 224\r
-#define PROP_INDEX_SK 225\r
-#define PROP_INDEX_MODIFIERSYMBOL 225\r
-#define PROP_INDEX_MATHSYMBOL 226\r
-#define PROP_INDEX_SM 226\r
-#define PROP_INDEX_SO 227\r
-#define PROP_INDEX_OTHERSYMBOL 227\r
-#define PROP_INDEX_SD 228\r
-#define PROP_INDEX_SOFTDOTTED 228\r
-#define PROP_INDEX_SOGD 229\r
-#define PROP_INDEX_SOGDIAN 229\r
-#define PROP_INDEX_SORASOMPENG 230\r
-#define PROP_INDEX_SORA 230\r
-#define PROP_INDEX_SOYO 231\r
-#define PROP_INDEX_SOYOMBO 231\r
-#define PROP_INDEX_SUND 232\r
-#define PROP_INDEX_SUNDANESE 232\r
-#define PROP_INDEX_SYLO 233\r
-#define PROP_INDEX_SYLOTINAGRI 233\r
-#define PROP_INDEX_SYRC 234\r
-#define PROP_INDEX_SYRIAC 234\r
-#define PROP_INDEX_TGLG 235\r
-#define PROP_INDEX_TAGALOG 235\r
-#define PROP_INDEX_TAGBANWA 236\r
-#define PROP_INDEX_TAGB 236\r
-#define PROP_INDEX_TAILE 237\r
-#define PROP_INDEX_TALE 237\r
-#define PROP_INDEX_TAITHAM 238\r
-#define PROP_INDEX_LANA 238\r
-#define PROP_INDEX_TAIVIET 239\r
-#define PROP_INDEX_TAVT 239\r
-#define PROP_INDEX_TAKRI 240\r
-#define PROP_INDEX_TAKR 240\r
-#define PROP_INDEX_TAMIL 241\r
-#define PROP_INDEX_TAML 241\r
-#define PROP_INDEX_TANG 242\r
-#define PROP_INDEX_TANGUT 242\r
-#define PROP_INDEX_TELUGU 243\r
-#define PROP_INDEX_TELU 243\r
-#define PROP_INDEX_TERM 244\r
-#define PROP_INDEX_TERMINALPUNCTUATION 244\r
-#define PROP_INDEX_THAA 245\r
-#define PROP_INDEX_THAANA 245\r
-#define PROP_INDEX_THAI 246\r
-#define PROP_INDEX_TIBT 247\r
-#define PROP_INDEX_TIBETAN 247\r
-#define PROP_INDEX_TFNG 248\r
-#define PROP_INDEX_TIFINAGH 248\r
-#define PROP_INDEX_TIRHUTA 249\r
-#define PROP_INDEX_TIRH 249\r
-#define PROP_INDEX_UGAR 250\r
-#define PROP_INDEX_UGARITIC 250\r
-#define PROP_INDEX_UNIFIEDIDEOGRAPH 251\r
-#define PROP_INDEX_UIDEO 251\r
-#define PROP_INDEX_ZZZZ 252\r
-#define PROP_INDEX_UNKNOWN 252\r
-#define PROP_INDEX_UPPERCASE 253\r
-#define PROP_INDEX_VAII 254\r
-#define PROP_INDEX_VAI 254\r
-#define PROP_INDEX_VARIATIONSELECTOR 255\r
-#define PROP_INDEX_VS 255\r
-#define PROP_INDEX_WCHO 256\r
-#define PROP_INDEX_WANCHO 256\r
-#define PROP_INDEX_WARANGCITI 257\r
-#define PROP_INDEX_WARA 257\r
-#define PROP_INDEX_WHITESPACE 258\r
-#define PROP_INDEX_WSPACE 258\r
-#define PROP_INDEX_XIDC 259\r
-#define PROP_INDEX_XIDCONTINUE 259\r
-#define PROP_INDEX_XIDS 260\r
-#define PROP_INDEX_XIDSTART 260\r
-#define PROP_INDEX_YI 261\r
-#define PROP_INDEX_YIII 261\r
-#define PROP_INDEX_SEPARATOR 262\r
-#define PROP_INDEX_Z 262\r
-#define PROP_INDEX_ZANABAZARSQUARE 263\r
-#define PROP_INDEX_ZANB 263\r
-#define PROP_INDEX_ZL 264\r
-#define PROP_INDEX_LINESEPARATOR 264\r
-#define PROP_INDEX_ZP 265\r
-#define PROP_INDEX_PARAGRAPHSEPARATOR 265\r
-#define PROP_INDEX_ZS 266\r
-#define PROP_INDEX_SPACESEPARATOR 266\r
-#define PROP_INDEX_INBASICLATIN 267\r
-#define PROP_INDEX_INLATIN1SUPPLEMENT 268\r
-#define PROP_INDEX_INLATINEXTENDEDA 269\r
-#define PROP_INDEX_INLATINEXTENDEDB 270\r
-#define PROP_INDEX_INIPAEXTENSIONS 271\r
-#define PROP_INDEX_INSPACINGMODIFIERLETTERS 272\r
-#define PROP_INDEX_INCOMBININGDIACRITICALMARKS 273\r
-#define PROP_INDEX_INGREEKANDCOPTIC 274\r
-#define PROP_INDEX_INCYRILLIC 275\r
-#define PROP_INDEX_INCYRILLICSUPPLEMENT 276\r
-#define PROP_INDEX_INARMENIAN 277\r
-#define PROP_INDEX_INHEBREW 278\r
-#define PROP_INDEX_INARABIC 279\r
-#define PROP_INDEX_INSYRIAC 280\r
-#define PROP_INDEX_INARABICSUPPLEMENT 281\r
-#define PROP_INDEX_INTHAANA 282\r
-#define PROP_INDEX_INNKO 283\r
-#define PROP_INDEX_INSAMARITAN 284\r
-#define PROP_INDEX_INMANDAIC 285\r
-#define PROP_INDEX_INSYRIACSUPPLEMENT 286\r
-#define PROP_INDEX_INARABICEXTENDEDA 287\r
-#define PROP_INDEX_INDEVANAGARI 288\r
-#define PROP_INDEX_INBENGALI 289\r
-#define PROP_INDEX_INGURMUKHI 290\r
-#define PROP_INDEX_INGUJARATI 291\r
-#define PROP_INDEX_INORIYA 292\r
-#define PROP_INDEX_INTAMIL 293\r
-#define PROP_INDEX_INTELUGU 294\r
-#define PROP_INDEX_INKANNADA 295\r
-#define PROP_INDEX_INMALAYALAM 296\r
-#define PROP_INDEX_INSINHALA 297\r
-#define PROP_INDEX_INTHAI 298\r
-#define PROP_INDEX_INLAO 299\r
-#define PROP_INDEX_INTIBETAN 300\r
-#define PROP_INDEX_INMYANMAR 301\r
-#define PROP_INDEX_INGEORGIAN 302\r
-#define PROP_INDEX_INHANGULJAMO 303\r
-#define PROP_INDEX_INETHIOPIC 304\r
-#define PROP_INDEX_INETHIOPICSUPPLEMENT 305\r
-#define PROP_INDEX_INCHEROKEE 306\r
-#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICS 307\r
-#define PROP_INDEX_INOGHAM 308\r
-#define PROP_INDEX_INRUNIC 309\r
-#define PROP_INDEX_INTAGALOG 310\r
-#define PROP_INDEX_INHANUNOO 311\r
-#define PROP_INDEX_INBUHID 312\r
-#define PROP_INDEX_INTAGBANWA 313\r
-#define PROP_INDEX_INKHMER 314\r
-#define PROP_INDEX_INMONGOLIAN 315\r
-#define PROP_INDEX_INUNIFIEDCANADIANABORIGINALSYLLABICSEXTENDED 316\r
-#define PROP_INDEX_INLIMBU 317\r
-#define PROP_INDEX_INTAILE 318\r
-#define PROP_INDEX_INNEWTAILUE 319\r
-#define PROP_INDEX_INKHMERSYMBOLS 320\r
-#define PROP_INDEX_INBUGINESE 321\r
-#define PROP_INDEX_INTAITHAM 322\r
-#define PROP_INDEX_INCOMBININGDIACRITICALMARKSEXTENDED 323\r
-#define PROP_INDEX_INBALINESE 324\r
-#define PROP_INDEX_INSUNDANESE 325\r
-#define PROP_INDEX_INBATAK 326\r
-#define PROP_INDEX_INLEPCHA 327\r
-#define PROP_INDEX_INOLCHIKI 328\r
-#define PROP_INDEX_INCYRILLICEXTENDEDC 329\r
-#define PROP_INDEX_INGEORGIANEXTENDED 330\r
-#define PROP_INDEX_INSUNDANESESUPPLEMENT 331\r
-#define PROP_INDEX_INVEDICEXTENSIONS 332\r
-#define PROP_INDEX_INPHONETICEXTENSIONS 333\r
-#define PROP_INDEX_INPHONETICEXTENSIONSSUPPLEMENT 334\r
-#define PROP_INDEX_INCOMBININGDIACRITICALMARKSSUPPLEMENT 335\r
-#define PROP_INDEX_INLATINEXTENDEDADDITIONAL 336\r
-#define PROP_INDEX_INGREEKEXTENDED 337\r
-#define PROP_INDEX_INGENERALPUNCTUATION 338\r
-#define PROP_INDEX_INSUPERSCRIPTSANDSUBSCRIPTS 339\r
-#define PROP_INDEX_INCURRENCYSYMBOLS 340\r
-#define PROP_INDEX_INCOMBININGDIACRITICALMARKSFORSYMBOLS 341\r
-#define PROP_INDEX_INLETTERLIKESYMBOLS 342\r
-#define PROP_INDEX_INNUMBERFORMS 343\r
-#define PROP_INDEX_INARROWS 344\r
-#define PROP_INDEX_INMATHEMATICALOPERATORS 345\r
-#define PROP_INDEX_INMISCELLANEOUSTECHNICAL 346\r
-#define PROP_INDEX_INCONTROLPICTURES 347\r
-#define PROP_INDEX_INOPTICALCHARACTERRECOGNITION 348\r
-#define PROP_INDEX_INENCLOSEDALPHANUMERICS 349\r
-#define PROP_INDEX_INBOXDRAWING 350\r
-#define PROP_INDEX_INBLOCKELEMENTS 351\r
-#define PROP_INDEX_INGEOMETRICSHAPES 352\r
-#define PROP_INDEX_INMISCELLANEOUSSYMBOLS 353\r
-#define PROP_INDEX_INDINGBATS 354\r
-#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSA 355\r
-#define PROP_INDEX_INSUPPLEMENTALARROWSA 356\r
-#define PROP_INDEX_INBRAILLEPATTERNS 357\r
-#define PROP_INDEX_INSUPPLEMENTALARROWSB 358\r
-#define PROP_INDEX_INMISCELLANEOUSMATHEMATICALSYMBOLSB 359\r
-#define PROP_INDEX_INSUPPLEMENTALMATHEMATICALOPERATORS 360\r
-#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDARROWS 361\r
-#define PROP_INDEX_INGLAGOLITIC 362\r
-#define PROP_INDEX_INLATINEXTENDEDC 363\r
-#define PROP_INDEX_INCOPTIC 364\r
-#define PROP_INDEX_INGEORGIANSUPPLEMENT 365\r
-#define PROP_INDEX_INTIFINAGH 366\r
-#define PROP_INDEX_INETHIOPICEXTENDED 367\r
-#define PROP_INDEX_INCYRILLICEXTENDEDA 368\r
-#define PROP_INDEX_INSUPPLEMENTALPUNCTUATION 369\r
-#define PROP_INDEX_INCJKRADICALSSUPPLEMENT 370\r
-#define PROP_INDEX_INKANGXIRADICALS 371\r
-#define PROP_INDEX_INIDEOGRAPHICDESCRIPTIONCHARACTERS 372\r
-#define PROP_INDEX_INCJKSYMBOLSANDPUNCTUATION 373\r
-#define PROP_INDEX_INHIRAGANA 374\r
-#define PROP_INDEX_INKATAKANA 375\r
-#define PROP_INDEX_INBOPOMOFO 376\r
-#define PROP_INDEX_INHANGULCOMPATIBILITYJAMO 377\r
-#define PROP_INDEX_INKANBUN 378\r
-#define PROP_INDEX_INBOPOMOFOEXTENDED 379\r
-#define PROP_INDEX_INCJKSTROKES 380\r
-#define PROP_INDEX_INKATAKANAPHONETICEXTENSIONS 381\r
-#define PROP_INDEX_INENCLOSEDCJKLETTERSANDMONTHS 382\r
-#define PROP_INDEX_INCJKCOMPATIBILITY 383\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONA 384\r
-#define PROP_INDEX_INYIJINGHEXAGRAMSYMBOLS 385\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHS 386\r
-#define PROP_INDEX_INYISYLLABLES 387\r
-#define PROP_INDEX_INYIRADICALS 388\r
-#define PROP_INDEX_INLISU 389\r
-#define PROP_INDEX_INVAI 390\r
-#define PROP_INDEX_INCYRILLICEXTENDEDB 391\r
-#define PROP_INDEX_INBAMUM 392\r
-#define PROP_INDEX_INMODIFIERTONELETTERS 393\r
-#define PROP_INDEX_INLATINEXTENDEDD 394\r
-#define PROP_INDEX_INSYLOTINAGRI 395\r
-#define PROP_INDEX_INCOMMONINDICNUMBERFORMS 396\r
-#define PROP_INDEX_INPHAGSPA 397\r
-#define PROP_INDEX_INSAURASHTRA 398\r
-#define PROP_INDEX_INDEVANAGARIEXTENDED 399\r
-#define PROP_INDEX_INKAYAHLI 400\r
-#define PROP_INDEX_INREJANG 401\r
-#define PROP_INDEX_INHANGULJAMOEXTENDEDA 402\r
-#define PROP_INDEX_INJAVANESE 403\r
-#define PROP_INDEX_INMYANMAREXTENDEDB 404\r
-#define PROP_INDEX_INCHAM 405\r
-#define PROP_INDEX_INMYANMAREXTENDEDA 406\r
-#define PROP_INDEX_INTAIVIET 407\r
-#define PROP_INDEX_INMEETEIMAYEKEXTENSIONS 408\r
-#define PROP_INDEX_INETHIOPICEXTENDEDA 409\r
-#define PROP_INDEX_INLATINEXTENDEDE 410\r
-#define PROP_INDEX_INCHEROKEESUPPLEMENT 411\r
-#define PROP_INDEX_INMEETEIMAYEK 412\r
-#define PROP_INDEX_INHANGULSYLLABLES 413\r
-#define PROP_INDEX_INHANGULJAMOEXTENDEDB 414\r
-#define PROP_INDEX_INHIGHSURROGATES 415\r
-#define PROP_INDEX_INHIGHPRIVATEUSESURROGATES 416\r
-#define PROP_INDEX_INLOWSURROGATES 417\r
-#define PROP_INDEX_INPRIVATEUSEAREA 418\r
-#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHS 419\r
-#define PROP_INDEX_INALPHABETICPRESENTATIONFORMS 420\r
-#define PROP_INDEX_INARABICPRESENTATIONFORMSA 421\r
-#define PROP_INDEX_INVARIATIONSELECTORS 422\r
-#define PROP_INDEX_INVERTICALFORMS 423\r
-#define PROP_INDEX_INCOMBININGHALFMARKS 424\r
-#define PROP_INDEX_INCJKCOMPATIBILITYFORMS 425\r
-#define PROP_INDEX_INSMALLFORMVARIANTS 426\r
-#define PROP_INDEX_INARABICPRESENTATIONFORMSB 427\r
-#define PROP_INDEX_INHALFWIDTHANDFULLWIDTHFORMS 428\r
-#define PROP_INDEX_INSPECIALS 429\r
-#define PROP_INDEX_INLINEARBSYLLABARY 430\r
-#define PROP_INDEX_INLINEARBIDEOGRAMS 431\r
-#define PROP_INDEX_INAEGEANNUMBERS 432\r
-#define PROP_INDEX_INANCIENTGREEKNUMBERS 433\r
-#define PROP_INDEX_INANCIENTSYMBOLS 434\r
-#define PROP_INDEX_INPHAISTOSDISC 435\r
-#define PROP_INDEX_INLYCIAN 436\r
-#define PROP_INDEX_INCARIAN 437\r
-#define PROP_INDEX_INCOPTICEPACTNUMBERS 438\r
-#define PROP_INDEX_INOLDITALIC 439\r
-#define PROP_INDEX_INGOTHIC 440\r
-#define PROP_INDEX_INOLDPERMIC 441\r
-#define PROP_INDEX_INUGARITIC 442\r
-#define PROP_INDEX_INOLDPERSIAN 443\r
-#define PROP_INDEX_INDESERET 444\r
-#define PROP_INDEX_INSHAVIAN 445\r
-#define PROP_INDEX_INOSMANYA 446\r
-#define PROP_INDEX_INOSAGE 447\r
-#define PROP_INDEX_INELBASAN 448\r
-#define PROP_INDEX_INCAUCASIANALBANIAN 449\r
-#define PROP_INDEX_INLINEARA 450\r
-#define PROP_INDEX_INCYPRIOTSYLLABARY 451\r
-#define PROP_INDEX_INIMPERIALARAMAIC 452\r
-#define PROP_INDEX_INPALMYRENE 453\r
-#define PROP_INDEX_INNABATAEAN 454\r
-#define PROP_INDEX_INHATRAN 455\r
-#define PROP_INDEX_INPHOENICIAN 456\r
-#define PROP_INDEX_INLYDIAN 457\r
-#define PROP_INDEX_INMEROITICHIEROGLYPHS 458\r
-#define PROP_INDEX_INMEROITICCURSIVE 459\r
-#define PROP_INDEX_INKHAROSHTHI 460\r
-#define PROP_INDEX_INOLDSOUTHARABIAN 461\r
-#define PROP_INDEX_INOLDNORTHARABIAN 462\r
-#define PROP_INDEX_INMANICHAEAN 463\r
-#define PROP_INDEX_INAVESTAN 464\r
-#define PROP_INDEX_ININSCRIPTIONALPARTHIAN 465\r
-#define PROP_INDEX_ININSCRIPTIONALPAHLAVI 466\r
-#define PROP_INDEX_INPSALTERPAHLAVI 467\r
-#define PROP_INDEX_INOLDTURKIC 468\r
-#define PROP_INDEX_INOLDHUNGARIAN 469\r
-#define PROP_INDEX_INHANIFIROHINGYA 470\r
-#define PROP_INDEX_INRUMINUMERALSYMBOLS 471\r
-#define PROP_INDEX_INOLDSOGDIAN 472\r
-#define PROP_INDEX_INSOGDIAN 473\r
-#define PROP_INDEX_INELYMAIC 474\r
-#define PROP_INDEX_INBRAHMI 475\r
-#define PROP_INDEX_INKAITHI 476\r
-#define PROP_INDEX_INSORASOMPENG 477\r
-#define PROP_INDEX_INCHAKMA 478\r
-#define PROP_INDEX_INMAHAJANI 479\r
-#define PROP_INDEX_INSHARADA 480\r
-#define PROP_INDEX_INSINHALAARCHAICNUMBERS 481\r
-#define PROP_INDEX_INKHOJKI 482\r
-#define PROP_INDEX_INMULTANI 483\r
-#define PROP_INDEX_INKHUDAWADI 484\r
-#define PROP_INDEX_INGRANTHA 485\r
-#define PROP_INDEX_INNEWA 486\r
-#define PROP_INDEX_INTIRHUTA 487\r
-#define PROP_INDEX_INSIDDHAM 488\r
-#define PROP_INDEX_INMODI 489\r
-#define PROP_INDEX_INMONGOLIANSUPPLEMENT 490\r
-#define PROP_INDEX_INTAKRI 491\r
-#define PROP_INDEX_INAHOM 492\r
-#define PROP_INDEX_INDOGRA 493\r
-#define PROP_INDEX_INWARANGCITI 494\r
-#define PROP_INDEX_INNANDINAGARI 495\r
-#define PROP_INDEX_INZANABAZARSQUARE 496\r
-#define PROP_INDEX_INSOYOMBO 497\r
-#define PROP_INDEX_INPAUCINHAU 498\r
-#define PROP_INDEX_INBHAIKSUKI 499\r
-#define PROP_INDEX_INMARCHEN 500\r
-#define PROP_INDEX_INMASARAMGONDI 501\r
-#define PROP_INDEX_INGUNJALAGONDI 502\r
-#define PROP_INDEX_INMAKASAR 503\r
-#define PROP_INDEX_INTAMILSUPPLEMENT 504\r
-#define PROP_INDEX_INCUNEIFORM 505\r
-#define PROP_INDEX_INCUNEIFORMNUMBERSANDPUNCTUATION 506\r
-#define PROP_INDEX_INEARLYDYNASTICCUNEIFORM 507\r
-#define PROP_INDEX_INEGYPTIANHIEROGLYPHS 508\r
-#define PROP_INDEX_INEGYPTIANHIEROGLYPHFORMATCONTROLS 509\r
-#define PROP_INDEX_INANATOLIANHIEROGLYPHS 510\r
-#define PROP_INDEX_INBAMUMSUPPLEMENT 511\r
-#define PROP_INDEX_INMRO 512\r
-#define PROP_INDEX_INBASSAVAH 513\r
-#define PROP_INDEX_INPAHAWHHMONG 514\r
-#define PROP_INDEX_INMEDEFAIDRIN 515\r
-#define PROP_INDEX_INMIAO 516\r
-#define PROP_INDEX_INIDEOGRAPHICSYMBOLSANDPUNCTUATION 517\r
-#define PROP_INDEX_INTANGUT 518\r
-#define PROP_INDEX_INTANGUTCOMPONENTS 519\r
-#define PROP_INDEX_INKANASUPPLEMENT 520\r
-#define PROP_INDEX_INKANAEXTENDEDA 521\r
-#define PROP_INDEX_INSMALLKANAEXTENSION 522\r
-#define PROP_INDEX_INNUSHU 523\r
-#define PROP_INDEX_INDUPLOYAN 524\r
-#define PROP_INDEX_INSHORTHANDFORMATCONTROLS 525\r
-#define PROP_INDEX_INBYZANTINEMUSICALSYMBOLS 526\r
-#define PROP_INDEX_INMUSICALSYMBOLS 527\r
-#define PROP_INDEX_INANCIENTGREEKMUSICALNOTATION 528\r
-#define PROP_INDEX_INMAYANNUMERALS 529\r
-#define PROP_INDEX_INTAIXUANJINGSYMBOLS 530\r
-#define PROP_INDEX_INCOUNTINGRODNUMERALS 531\r
-#define PROP_INDEX_INMATHEMATICALALPHANUMERICSYMBOLS 532\r
-#define PROP_INDEX_INSUTTONSIGNWRITING 533\r
-#define PROP_INDEX_INGLAGOLITICSUPPLEMENT 534\r
-#define PROP_INDEX_INNYIAKENGPUACHUEHMONG 535\r
-#define PROP_INDEX_INWANCHO 536\r
-#define PROP_INDEX_INMENDEKIKAKUI 537\r
-#define PROP_INDEX_INADLAM 538\r
-#define PROP_INDEX_ININDICSIYAQNUMBERS 539\r
-#define PROP_INDEX_INOTTOMANSIYAQNUMBERS 540\r
-#define PROP_INDEX_INARABICMATHEMATICALALPHABETICSYMBOLS 541\r
-#define PROP_INDEX_INMAHJONGTILES 542\r
-#define PROP_INDEX_INDOMINOTILES 543\r
-#define PROP_INDEX_INPLAYINGCARDS 544\r
-#define PROP_INDEX_INENCLOSEDALPHANUMERICSUPPLEMENT 545\r
-#define PROP_INDEX_INENCLOSEDIDEOGRAPHICSUPPLEMENT 546\r
-#define PROP_INDEX_INMISCELLANEOUSSYMBOLSANDPICTOGRAPHS 547\r
-#define PROP_INDEX_INEMOTICONS 548\r
-#define PROP_INDEX_INORNAMENTALDINGBATS 549\r
-#define PROP_INDEX_INTRANSPORTANDMAPSYMBOLS 550\r
-#define PROP_INDEX_INALCHEMICALSYMBOLS 551\r
-#define PROP_INDEX_INGEOMETRICSHAPESEXTENDED 552\r
-#define PROP_INDEX_INSUPPLEMENTALARROWSC 553\r
-#define PROP_INDEX_INSUPPLEMENTALSYMBOLSANDPICTOGRAPHS 554\r
-#define PROP_INDEX_INCHESSSYMBOLS 555\r
-#define PROP_INDEX_INSYMBOLSANDPICTOGRAPHSEXTENDEDA 556\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONB 557\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONC 558\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIOND 559\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONE 560\r
-#define PROP_INDEX_INCJKUNIFIEDIDEOGRAPHSEXTENSIONF 561\r
-#define PROP_INDEX_INCJKCOMPATIBILITYIDEOGRAPHSSUPPLEMENT 562\r
-#define PROP_INDEX_INTAGS 563\r
-#define PROP_INDEX_INVARIATIONSELECTORSSUPPLEMENT 564\r
-#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAA 565\r
-#define PROP_INDEX_INSUPPLEMENTARYPRIVATEUSEAREAB 566\r
-#define PROP_INDEX_INNOBLOCK 567\r
+++ /dev/null
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -T -C -c -t -j1 -L ANSI-C --ignore-case --pic -Q unicode_prop_name_pool -N unicode_lookup_property_name --output-file gperf2.tmp unicode_property_data_posix.gperf */\r
-/* Computed positions: -k'1,3' */\r
-\r
-#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \\r
- && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \\r
- && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \\r
- && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \\r
- && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \\r
- && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \\r
- && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \\r
- && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \\r
- && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \\r
- && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \\r
- && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \\r
- && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \\r
- && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \\r
- && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \\r
- && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \\r
- && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \\r
- && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \\r
- && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \\r
- && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \\r
- && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \\r
- && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \\r
- && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \\r
- && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))\r
-/* The character set is not based on ISO-646. */\r
-#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>."\r
-#endif\r
-\r
-\r
-\r
-/* Generated by make_unicode_property_data.py. */\r
-\r
-\r
-/* PROPERTY: 'NEWLINE': POSIX [[:NEWLINE:]] */\r
-static const OnigCodePoint\r
-CR_NEWLINE[] = { 1,\r
-0x000a, 0x000a,\r
-}; /* END of CR_NEWLINE */\r
-\r
-/* PROPERTY: 'Alpha': POSIX [[:Alpha:]] */\r
-static const OnigCodePoint\r
-CR_Alpha[] = { 679,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0345, 0x0345,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05b0, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0657,\r
-0x0659, 0x065f,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06e1, 0x06e8,\r
-0x06ed, 0x06ef,\r
-0x06fa, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x073f,\r
-0x074d, 0x07b1,\r
-0x07ca, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0817,\r
-0x081a, 0x082c,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d4, 0x08df,\r
-0x08e3, 0x08e9,\r
-0x08f0, 0x093b,\r
-0x093d, 0x094c,\r
-0x094e, 0x0950,\r
-0x0955, 0x0963,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09ce, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09f0, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4c,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a70, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0af9, 0x0afc,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0c00, 0x0c03,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4c,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccc,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e46,\r
-0x0e4d, 0x0e4d,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb9,\r
-0x0ebb, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ecd, 0x0ecd,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f81,\r
-0x0f88, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x1000, 0x1036,\r
-0x1038, 0x1038,\r
-0x103b, 0x103f,\r
-0x1050, 0x108f,\r
-0x109a, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1713,\r
-0x1720, 0x1733,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17b3,\r
-0x17b6, 0x17c8,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x1938,\r
-0x1950, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a61, 0x1a74,\r
-0x1aa7, 0x1aa7,\r
-0x1b00, 0x1b33,\r
-0x1b35, 0x1b43,\r
-0x1b45, 0x1b4b,\r
-0x1b80, 0x1ba9,\r
-0x1bac, 0x1baf,\r
-0x1bba, 0x1be5,\r
-0x1be7, 0x1bf1,\r
-0x1c00, 0x1c36,\r
-0x1c4d, 0x1c4f,\r
-0x1c5a, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1de7, 0x1df4,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa61f,\r
-0xa62a, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa674, 0xa67b,\r
-0xa67f, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa805,\r
-0xa807, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c3,\r
-0xa8c5, 0xa8c5,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa8ff,\r
-0xa90a, 0xa92a,\r
-0xa930, 0xa952,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9b2,\r
-0xa9b4, 0xa9bf,\r
-0xa9cf, 0xa9cf,\r
-0xa9e0, 0xa9ef,\r
-0xa9fa, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaabe,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf5,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11045,\r
-0x11082, 0x110b8,\r
-0x110d0, 0x110e8,\r
-0x11100, 0x11132,\r
-0x11144, 0x11146,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11180, 0x111bf,\r
-0x111c1, 0x111c4,\r
-0x111da, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11234,\r
-0x11237, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112e8,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134c,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11400, 0x11441,\r
-0x11443, 0x11445,\r
-0x11447, 0x1144a,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114c1,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115be,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x1163e,\r
-0x11640, 0x11640,\r
-0x11644, 0x11644,\r
-0x11680, 0x116b5,\r
-0x116b8, 0x116b8,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172a,\r
-0x11800, 0x11838,\r
-0x118a0, 0x118df,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119df,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a32,\r
-0x11a35, 0x11a3e,\r
-0x11a50, 0x11a97,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c3e,\r
-0x11c40, 0x11c40,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d41,\r
-0x11d43, 0x11d43,\r
-0x11d46, 0x11d47,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d96,\r
-0x11d98, 0x11d98,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9e, 0x1bc9e,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e947, 0x1e947,\r
-0x1e94b, 0x1e94b,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Alpha */\r
-\r
-/* PROPERTY: 'Blank': POSIX [[:Blank:]] */\r
-static const OnigCodePoint\r
-CR_Blank[] = { 8,\r
-0x0009, 0x0009,\r
-0x0020, 0x0020,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Blank */\r
-\r
-/* PROPERTY: 'Cntrl': POSIX [[:Cntrl:]] */\r
-static const OnigCodePoint\r
-CR_Cntrl[] = { 2,\r
-0x0000, 0x001f,\r
-0x007f, 0x009f,\r
-}; /* END of CR_Cntrl */\r
-\r
-/* PROPERTY: 'Digit': POSIX [[:Digit:]] */\r
-static const OnigCodePoint\r
-CR_Digit[] = { 59,\r
-0x0030, 0x0039,\r
-0x0660, 0x0669,\r
-0x06f0, 0x06f9,\r
-0x07c0, 0x07c9,\r
-0x0966, 0x096f,\r
-0x09e6, 0x09ef,\r
-0x0a66, 0x0a6f,\r
-0x0ae6, 0x0aef,\r
-0x0b66, 0x0b6f,\r
-0x0be6, 0x0bef,\r
-0x0c66, 0x0c6f,\r
-0x0ce6, 0x0cef,\r
-0x0d66, 0x0d6f,\r
-0x0de6, 0x0def,\r
-0x0e50, 0x0e59,\r
-0x0ed0, 0x0ed9,\r
-0x0f20, 0x0f29,\r
-0x1040, 0x1049,\r
-0x1090, 0x1099,\r
-0x17e0, 0x17e9,\r
-0x1810, 0x1819,\r
-0x1946, 0x194f,\r
-0x19d0, 0x19d9,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1b50, 0x1b59,\r
-0x1bb0, 0x1bb9,\r
-0x1c40, 0x1c49,\r
-0x1c50, 0x1c59,\r
-0xa620, 0xa629,\r
-0xa8d0, 0xa8d9,\r
-0xa900, 0xa909,\r
-0xa9d0, 0xa9d9,\r
-0xa9f0, 0xa9f9,\r
-0xaa50, 0xaa59,\r
-0xabf0, 0xabf9,\r
-0xff10, 0xff19,\r
-0x104a0, 0x104a9,\r
-0x10d30, 0x10d39,\r
-0x11066, 0x1106f,\r
-0x110f0, 0x110f9,\r
-0x11136, 0x1113f,\r
-0x111d0, 0x111d9,\r
-0x112f0, 0x112f9,\r
-0x11450, 0x11459,\r
-0x114d0, 0x114d9,\r
-0x11650, 0x11659,\r
-0x116c0, 0x116c9,\r
-0x11730, 0x11739,\r
-0x118e0, 0x118e9,\r
-0x11c50, 0x11c59,\r
-0x11d50, 0x11d59,\r
-0x11da0, 0x11da9,\r
-0x16a60, 0x16a69,\r
-0x16b50, 0x16b59,\r
-0x1d7ce, 0x1d7ff,\r
-0x1e140, 0x1e149,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e950, 0x1e959,\r
-}; /* END of CR_Digit */\r
-\r
-/* PROPERTY: 'Graph': POSIX [[:Graph:]] */\r
-static const OnigCodePoint\r
-CR_Graph[] = { 671,\r
-0x0021, 0x007e,\r
-0x00a1, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0600, 0x061c,\r
-0x061e, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x082d,\r
-0x0830, 0x083e,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e3a,\r
-0x0e3f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x167f,\r
-0x1681, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1736,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a1b,\r
-0x1a1e, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-0x1b80, 0x1bf3,\r
-0x1bfc, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd0, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x200b, 0x2027,\r
-0x202a, 0x202e,\r
-0x2030, 0x205e,\r
-0x2060, 0x2064,\r
-0x2066, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x20d0, 0x20f0,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3001, 0x303f,\r
-0x3041, 0x3096,\r
-0x3099, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-0xa8e0, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa980, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaac2,\r
-0xaadb, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xe000, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe00, 0xfe19,\r
-0xfe20, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x110c1,\r
-0x110cd, 0x110cd,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-0x11150, 0x11176,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-0x11a00, 0x11a47,\r
-0x11a50, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d1e8,\r
-0x1d200, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Graph */\r
-\r
-/* PROPERTY: 'Lower': POSIX [[:Lower:]] */\r
-static const OnigCodePoint\r
-CR_Lower[] = { 649,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00df, 0x00f6,\r
-0x00f8, 0x00ff,\r
-0x0101, 0x0101,\r
-0x0103, 0x0103,\r
-0x0105, 0x0105,\r
-0x0107, 0x0107,\r
-0x0109, 0x0109,\r
-0x010b, 0x010b,\r
-0x010d, 0x010d,\r
-0x010f, 0x010f,\r
-0x0111, 0x0111,\r
-0x0113, 0x0113,\r
-0x0115, 0x0115,\r
-0x0117, 0x0117,\r
-0x0119, 0x0119,\r
-0x011b, 0x011b,\r
-0x011d, 0x011d,\r
-0x011f, 0x011f,\r
-0x0121, 0x0121,\r
-0x0123, 0x0123,\r
-0x0125, 0x0125,\r
-0x0127, 0x0127,\r
-0x0129, 0x0129,\r
-0x012b, 0x012b,\r
-0x012d, 0x012d,\r
-0x012f, 0x012f,\r
-0x0131, 0x0131,\r
-0x0133, 0x0133,\r
-0x0135, 0x0135,\r
-0x0137, 0x0138,\r
-0x013a, 0x013a,\r
-0x013c, 0x013c,\r
-0x013e, 0x013e,\r
-0x0140, 0x0140,\r
-0x0142, 0x0142,\r
-0x0144, 0x0144,\r
-0x0146, 0x0146,\r
-0x0148, 0x0149,\r
-0x014b, 0x014b,\r
-0x014d, 0x014d,\r
-0x014f, 0x014f,\r
-0x0151, 0x0151,\r
-0x0153, 0x0153,\r
-0x0155, 0x0155,\r
-0x0157, 0x0157,\r
-0x0159, 0x0159,\r
-0x015b, 0x015b,\r
-0x015d, 0x015d,\r
-0x015f, 0x015f,\r
-0x0161, 0x0161,\r
-0x0163, 0x0163,\r
-0x0165, 0x0165,\r
-0x0167, 0x0167,\r
-0x0169, 0x0169,\r
-0x016b, 0x016b,\r
-0x016d, 0x016d,\r
-0x016f, 0x016f,\r
-0x0171, 0x0171,\r
-0x0173, 0x0173,\r
-0x0175, 0x0175,\r
-0x0177, 0x0177,\r
-0x017a, 0x017a,\r
-0x017c, 0x017c,\r
-0x017e, 0x0180,\r
-0x0183, 0x0183,\r
-0x0185, 0x0185,\r
-0x0188, 0x0188,\r
-0x018c, 0x018d,\r
-0x0192, 0x0192,\r
-0x0195, 0x0195,\r
-0x0199, 0x019b,\r
-0x019e, 0x019e,\r
-0x01a1, 0x01a1,\r
-0x01a3, 0x01a3,\r
-0x01a5, 0x01a5,\r
-0x01a8, 0x01a8,\r
-0x01aa, 0x01ab,\r
-0x01ad, 0x01ad,\r
-0x01b0, 0x01b0,\r
-0x01b4, 0x01b4,\r
-0x01b6, 0x01b6,\r
-0x01b9, 0x01ba,\r
-0x01bd, 0x01bf,\r
-0x01c6, 0x01c6,\r
-0x01c9, 0x01c9,\r
-0x01cc, 0x01cc,\r
-0x01ce, 0x01ce,\r
-0x01d0, 0x01d0,\r
-0x01d2, 0x01d2,\r
-0x01d4, 0x01d4,\r
-0x01d6, 0x01d6,\r
-0x01d8, 0x01d8,\r
-0x01da, 0x01da,\r
-0x01dc, 0x01dd,\r
-0x01df, 0x01df,\r
-0x01e1, 0x01e1,\r
-0x01e3, 0x01e3,\r
-0x01e5, 0x01e5,\r
-0x01e7, 0x01e7,\r
-0x01e9, 0x01e9,\r
-0x01eb, 0x01eb,\r
-0x01ed, 0x01ed,\r
-0x01ef, 0x01f0,\r
-0x01f3, 0x01f3,\r
-0x01f5, 0x01f5,\r
-0x01f9, 0x01f9,\r
-0x01fb, 0x01fb,\r
-0x01fd, 0x01fd,\r
-0x01ff, 0x01ff,\r
-0x0201, 0x0201,\r
-0x0203, 0x0203,\r
-0x0205, 0x0205,\r
-0x0207, 0x0207,\r
-0x0209, 0x0209,\r
-0x020b, 0x020b,\r
-0x020d, 0x020d,\r
-0x020f, 0x020f,\r
-0x0211, 0x0211,\r
-0x0213, 0x0213,\r
-0x0215, 0x0215,\r
-0x0217, 0x0217,\r
-0x0219, 0x0219,\r
-0x021b, 0x021b,\r
-0x021d, 0x021d,\r
-0x021f, 0x021f,\r
-0x0221, 0x0221,\r
-0x0223, 0x0223,\r
-0x0225, 0x0225,\r
-0x0227, 0x0227,\r
-0x0229, 0x0229,\r
-0x022b, 0x022b,\r
-0x022d, 0x022d,\r
-0x022f, 0x022f,\r
-0x0231, 0x0231,\r
-0x0233, 0x0239,\r
-0x023c, 0x023c,\r
-0x023f, 0x0240,\r
-0x0242, 0x0242,\r
-0x0247, 0x0247,\r
-0x0249, 0x0249,\r
-0x024b, 0x024b,\r
-0x024d, 0x024d,\r
-0x024f, 0x0293,\r
-0x0295, 0x02b8,\r
-0x02c0, 0x02c1,\r
-0x02e0, 0x02e4,\r
-0x0345, 0x0345,\r
-0x0371, 0x0371,\r
-0x0373, 0x0373,\r
-0x0377, 0x0377,\r
-0x037a, 0x037d,\r
-0x0390, 0x0390,\r
-0x03ac, 0x03ce,\r
-0x03d0, 0x03d1,\r
-0x03d5, 0x03d7,\r
-0x03d9, 0x03d9,\r
-0x03db, 0x03db,\r
-0x03dd, 0x03dd,\r
-0x03df, 0x03df,\r
-0x03e1, 0x03e1,\r
-0x03e3, 0x03e3,\r
-0x03e5, 0x03e5,\r
-0x03e7, 0x03e7,\r
-0x03e9, 0x03e9,\r
-0x03eb, 0x03eb,\r
-0x03ed, 0x03ed,\r
-0x03ef, 0x03f3,\r
-0x03f5, 0x03f5,\r
-0x03f8, 0x03f8,\r
-0x03fb, 0x03fc,\r
-0x0430, 0x045f,\r
-0x0461, 0x0461,\r
-0x0463, 0x0463,\r
-0x0465, 0x0465,\r
-0x0467, 0x0467,\r
-0x0469, 0x0469,\r
-0x046b, 0x046b,\r
-0x046d, 0x046d,\r
-0x046f, 0x046f,\r
-0x0471, 0x0471,\r
-0x0473, 0x0473,\r
-0x0475, 0x0475,\r
-0x0477, 0x0477,\r
-0x0479, 0x0479,\r
-0x047b, 0x047b,\r
-0x047d, 0x047d,\r
-0x047f, 0x047f,\r
-0x0481, 0x0481,\r
-0x048b, 0x048b,\r
-0x048d, 0x048d,\r
-0x048f, 0x048f,\r
-0x0491, 0x0491,\r
-0x0493, 0x0493,\r
-0x0495, 0x0495,\r
-0x0497, 0x0497,\r
-0x0499, 0x0499,\r
-0x049b, 0x049b,\r
-0x049d, 0x049d,\r
-0x049f, 0x049f,\r
-0x04a1, 0x04a1,\r
-0x04a3, 0x04a3,\r
-0x04a5, 0x04a5,\r
-0x04a7, 0x04a7,\r
-0x04a9, 0x04a9,\r
-0x04ab, 0x04ab,\r
-0x04ad, 0x04ad,\r
-0x04af, 0x04af,\r
-0x04b1, 0x04b1,\r
-0x04b3, 0x04b3,\r
-0x04b5, 0x04b5,\r
-0x04b7, 0x04b7,\r
-0x04b9, 0x04b9,\r
-0x04bb, 0x04bb,\r
-0x04bd, 0x04bd,\r
-0x04bf, 0x04bf,\r
-0x04c2, 0x04c2,\r
-0x04c4, 0x04c4,\r
-0x04c6, 0x04c6,\r
-0x04c8, 0x04c8,\r
-0x04ca, 0x04ca,\r
-0x04cc, 0x04cc,\r
-0x04ce, 0x04cf,\r
-0x04d1, 0x04d1,\r
-0x04d3, 0x04d3,\r
-0x04d5, 0x04d5,\r
-0x04d7, 0x04d7,\r
-0x04d9, 0x04d9,\r
-0x04db, 0x04db,\r
-0x04dd, 0x04dd,\r
-0x04df, 0x04df,\r
-0x04e1, 0x04e1,\r
-0x04e3, 0x04e3,\r
-0x04e5, 0x04e5,\r
-0x04e7, 0x04e7,\r
-0x04e9, 0x04e9,\r
-0x04eb, 0x04eb,\r
-0x04ed, 0x04ed,\r
-0x04ef, 0x04ef,\r
-0x04f1, 0x04f1,\r
-0x04f3, 0x04f3,\r
-0x04f5, 0x04f5,\r
-0x04f7, 0x04f7,\r
-0x04f9, 0x04f9,\r
-0x04fb, 0x04fb,\r
-0x04fd, 0x04fd,\r
-0x04ff, 0x04ff,\r
-0x0501, 0x0501,\r
-0x0503, 0x0503,\r
-0x0505, 0x0505,\r
-0x0507, 0x0507,\r
-0x0509, 0x0509,\r
-0x050b, 0x050b,\r
-0x050d, 0x050d,\r
-0x050f, 0x050f,\r
-0x0511, 0x0511,\r
-0x0513, 0x0513,\r
-0x0515, 0x0515,\r
-0x0517, 0x0517,\r
-0x0519, 0x0519,\r
-0x051b, 0x051b,\r
-0x051d, 0x051d,\r
-0x051f, 0x051f,\r
-0x0521, 0x0521,\r
-0x0523, 0x0523,\r
-0x0525, 0x0525,\r
-0x0527, 0x0527,\r
-0x0529, 0x0529,\r
-0x052b, 0x052b,\r
-0x052d, 0x052d,\r
-0x052f, 0x052f,\r
-0x0560, 0x0588,\r
-0x10d0, 0x10fa,\r
-0x10fd, 0x10ff,\r
-0x13f8, 0x13fd,\r
-0x1c80, 0x1c88,\r
-0x1d00, 0x1dbf,\r
-0x1e01, 0x1e01,\r
-0x1e03, 0x1e03,\r
-0x1e05, 0x1e05,\r
-0x1e07, 0x1e07,\r
-0x1e09, 0x1e09,\r
-0x1e0b, 0x1e0b,\r
-0x1e0d, 0x1e0d,\r
-0x1e0f, 0x1e0f,\r
-0x1e11, 0x1e11,\r
-0x1e13, 0x1e13,\r
-0x1e15, 0x1e15,\r
-0x1e17, 0x1e17,\r
-0x1e19, 0x1e19,\r
-0x1e1b, 0x1e1b,\r
-0x1e1d, 0x1e1d,\r
-0x1e1f, 0x1e1f,\r
-0x1e21, 0x1e21,\r
-0x1e23, 0x1e23,\r
-0x1e25, 0x1e25,\r
-0x1e27, 0x1e27,\r
-0x1e29, 0x1e29,\r
-0x1e2b, 0x1e2b,\r
-0x1e2d, 0x1e2d,\r
-0x1e2f, 0x1e2f,\r
-0x1e31, 0x1e31,\r
-0x1e33, 0x1e33,\r
-0x1e35, 0x1e35,\r
-0x1e37, 0x1e37,\r
-0x1e39, 0x1e39,\r
-0x1e3b, 0x1e3b,\r
-0x1e3d, 0x1e3d,\r
-0x1e3f, 0x1e3f,\r
-0x1e41, 0x1e41,\r
-0x1e43, 0x1e43,\r
-0x1e45, 0x1e45,\r
-0x1e47, 0x1e47,\r
-0x1e49, 0x1e49,\r
-0x1e4b, 0x1e4b,\r
-0x1e4d, 0x1e4d,\r
-0x1e4f, 0x1e4f,\r
-0x1e51, 0x1e51,\r
-0x1e53, 0x1e53,\r
-0x1e55, 0x1e55,\r
-0x1e57, 0x1e57,\r
-0x1e59, 0x1e59,\r
-0x1e5b, 0x1e5b,\r
-0x1e5d, 0x1e5d,\r
-0x1e5f, 0x1e5f,\r
-0x1e61, 0x1e61,\r
-0x1e63, 0x1e63,\r
-0x1e65, 0x1e65,\r
-0x1e67, 0x1e67,\r
-0x1e69, 0x1e69,\r
-0x1e6b, 0x1e6b,\r
-0x1e6d, 0x1e6d,\r
-0x1e6f, 0x1e6f,\r
-0x1e71, 0x1e71,\r
-0x1e73, 0x1e73,\r
-0x1e75, 0x1e75,\r
-0x1e77, 0x1e77,\r
-0x1e79, 0x1e79,\r
-0x1e7b, 0x1e7b,\r
-0x1e7d, 0x1e7d,\r
-0x1e7f, 0x1e7f,\r
-0x1e81, 0x1e81,\r
-0x1e83, 0x1e83,\r
-0x1e85, 0x1e85,\r
-0x1e87, 0x1e87,\r
-0x1e89, 0x1e89,\r
-0x1e8b, 0x1e8b,\r
-0x1e8d, 0x1e8d,\r
-0x1e8f, 0x1e8f,\r
-0x1e91, 0x1e91,\r
-0x1e93, 0x1e93,\r
-0x1e95, 0x1e9d,\r
-0x1e9f, 0x1e9f,\r
-0x1ea1, 0x1ea1,\r
-0x1ea3, 0x1ea3,\r
-0x1ea5, 0x1ea5,\r
-0x1ea7, 0x1ea7,\r
-0x1ea9, 0x1ea9,\r
-0x1eab, 0x1eab,\r
-0x1ead, 0x1ead,\r
-0x1eaf, 0x1eaf,\r
-0x1eb1, 0x1eb1,\r
-0x1eb3, 0x1eb3,\r
-0x1eb5, 0x1eb5,\r
-0x1eb7, 0x1eb7,\r
-0x1eb9, 0x1eb9,\r
-0x1ebb, 0x1ebb,\r
-0x1ebd, 0x1ebd,\r
-0x1ebf, 0x1ebf,\r
-0x1ec1, 0x1ec1,\r
-0x1ec3, 0x1ec3,\r
-0x1ec5, 0x1ec5,\r
-0x1ec7, 0x1ec7,\r
-0x1ec9, 0x1ec9,\r
-0x1ecb, 0x1ecb,\r
-0x1ecd, 0x1ecd,\r
-0x1ecf, 0x1ecf,\r
-0x1ed1, 0x1ed1,\r
-0x1ed3, 0x1ed3,\r
-0x1ed5, 0x1ed5,\r
-0x1ed7, 0x1ed7,\r
-0x1ed9, 0x1ed9,\r
-0x1edb, 0x1edb,\r
-0x1edd, 0x1edd,\r
-0x1edf, 0x1edf,\r
-0x1ee1, 0x1ee1,\r
-0x1ee3, 0x1ee3,\r
-0x1ee5, 0x1ee5,\r
-0x1ee7, 0x1ee7,\r
-0x1ee9, 0x1ee9,\r
-0x1eeb, 0x1eeb,\r
-0x1eed, 0x1eed,\r
-0x1eef, 0x1eef,\r
-0x1ef1, 0x1ef1,\r
-0x1ef3, 0x1ef3,\r
-0x1ef5, 0x1ef5,\r
-0x1ef7, 0x1ef7,\r
-0x1ef9, 0x1ef9,\r
-0x1efb, 0x1efb,\r
-0x1efd, 0x1efd,\r
-0x1eff, 0x1f07,\r
-0x1f10, 0x1f15,\r
-0x1f20, 0x1f27,\r
-0x1f30, 0x1f37,\r
-0x1f40, 0x1f45,\r
-0x1f50, 0x1f57,\r
-0x1f60, 0x1f67,\r
-0x1f70, 0x1f7d,\r
-0x1f80, 0x1f87,\r
-0x1f90, 0x1f97,\r
-0x1fa0, 0x1fa7,\r
-0x1fb0, 0x1fb4,\r
-0x1fb6, 0x1fb7,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fc7,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fd7,\r
-0x1fe0, 0x1fe7,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ff7,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x210a, 0x210a,\r
-0x210e, 0x210f,\r
-0x2113, 0x2113,\r
-0x212f, 0x212f,\r
-0x2134, 0x2134,\r
-0x2139, 0x2139,\r
-0x213c, 0x213d,\r
-0x2146, 0x2149,\r
-0x214e, 0x214e,\r
-0x2170, 0x217f,\r
-0x2184, 0x2184,\r
-0x24d0, 0x24e9,\r
-0x2c30, 0x2c5e,\r
-0x2c61, 0x2c61,\r
-0x2c65, 0x2c66,\r
-0x2c68, 0x2c68,\r
-0x2c6a, 0x2c6a,\r
-0x2c6c, 0x2c6c,\r
-0x2c71, 0x2c71,\r
-0x2c73, 0x2c74,\r
-0x2c76, 0x2c7d,\r
-0x2c81, 0x2c81,\r
-0x2c83, 0x2c83,\r
-0x2c85, 0x2c85,\r
-0x2c87, 0x2c87,\r
-0x2c89, 0x2c89,\r
-0x2c8b, 0x2c8b,\r
-0x2c8d, 0x2c8d,\r
-0x2c8f, 0x2c8f,\r
-0x2c91, 0x2c91,\r
-0x2c93, 0x2c93,\r
-0x2c95, 0x2c95,\r
-0x2c97, 0x2c97,\r
-0x2c99, 0x2c99,\r
-0x2c9b, 0x2c9b,\r
-0x2c9d, 0x2c9d,\r
-0x2c9f, 0x2c9f,\r
-0x2ca1, 0x2ca1,\r
-0x2ca3, 0x2ca3,\r
-0x2ca5, 0x2ca5,\r
-0x2ca7, 0x2ca7,\r
-0x2ca9, 0x2ca9,\r
-0x2cab, 0x2cab,\r
-0x2cad, 0x2cad,\r
-0x2caf, 0x2caf,\r
-0x2cb1, 0x2cb1,\r
-0x2cb3, 0x2cb3,\r
-0x2cb5, 0x2cb5,\r
-0x2cb7, 0x2cb7,\r
-0x2cb9, 0x2cb9,\r
-0x2cbb, 0x2cbb,\r
-0x2cbd, 0x2cbd,\r
-0x2cbf, 0x2cbf,\r
-0x2cc1, 0x2cc1,\r
-0x2cc3, 0x2cc3,\r
-0x2cc5, 0x2cc5,\r
-0x2cc7, 0x2cc7,\r
-0x2cc9, 0x2cc9,\r
-0x2ccb, 0x2ccb,\r
-0x2ccd, 0x2ccd,\r
-0x2ccf, 0x2ccf,\r
-0x2cd1, 0x2cd1,\r
-0x2cd3, 0x2cd3,\r
-0x2cd5, 0x2cd5,\r
-0x2cd7, 0x2cd7,\r
-0x2cd9, 0x2cd9,\r
-0x2cdb, 0x2cdb,\r
-0x2cdd, 0x2cdd,\r
-0x2cdf, 0x2cdf,\r
-0x2ce1, 0x2ce1,\r
-0x2ce3, 0x2ce4,\r
-0x2cec, 0x2cec,\r
-0x2cee, 0x2cee,\r
-0x2cf3, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0xa641, 0xa641,\r
-0xa643, 0xa643,\r
-0xa645, 0xa645,\r
-0xa647, 0xa647,\r
-0xa649, 0xa649,\r
-0xa64b, 0xa64b,\r
-0xa64d, 0xa64d,\r
-0xa64f, 0xa64f,\r
-0xa651, 0xa651,\r
-0xa653, 0xa653,\r
-0xa655, 0xa655,\r
-0xa657, 0xa657,\r
-0xa659, 0xa659,\r
-0xa65b, 0xa65b,\r
-0xa65d, 0xa65d,\r
-0xa65f, 0xa65f,\r
-0xa661, 0xa661,\r
-0xa663, 0xa663,\r
-0xa665, 0xa665,\r
-0xa667, 0xa667,\r
-0xa669, 0xa669,\r
-0xa66b, 0xa66b,\r
-0xa66d, 0xa66d,\r
-0xa681, 0xa681,\r
-0xa683, 0xa683,\r
-0xa685, 0xa685,\r
-0xa687, 0xa687,\r
-0xa689, 0xa689,\r
-0xa68b, 0xa68b,\r
-0xa68d, 0xa68d,\r
-0xa68f, 0xa68f,\r
-0xa691, 0xa691,\r
-0xa693, 0xa693,\r
-0xa695, 0xa695,\r
-0xa697, 0xa697,\r
-0xa699, 0xa699,\r
-0xa69b, 0xa69d,\r
-0xa723, 0xa723,\r
-0xa725, 0xa725,\r
-0xa727, 0xa727,\r
-0xa729, 0xa729,\r
-0xa72b, 0xa72b,\r
-0xa72d, 0xa72d,\r
-0xa72f, 0xa731,\r
-0xa733, 0xa733,\r
-0xa735, 0xa735,\r
-0xa737, 0xa737,\r
-0xa739, 0xa739,\r
-0xa73b, 0xa73b,\r
-0xa73d, 0xa73d,\r
-0xa73f, 0xa73f,\r
-0xa741, 0xa741,\r
-0xa743, 0xa743,\r
-0xa745, 0xa745,\r
-0xa747, 0xa747,\r
-0xa749, 0xa749,\r
-0xa74b, 0xa74b,\r
-0xa74d, 0xa74d,\r
-0xa74f, 0xa74f,\r
-0xa751, 0xa751,\r
-0xa753, 0xa753,\r
-0xa755, 0xa755,\r
-0xa757, 0xa757,\r
-0xa759, 0xa759,\r
-0xa75b, 0xa75b,\r
-0xa75d, 0xa75d,\r
-0xa75f, 0xa75f,\r
-0xa761, 0xa761,\r
-0xa763, 0xa763,\r
-0xa765, 0xa765,\r
-0xa767, 0xa767,\r
-0xa769, 0xa769,\r
-0xa76b, 0xa76b,\r
-0xa76d, 0xa76d,\r
-0xa76f, 0xa778,\r
-0xa77a, 0xa77a,\r
-0xa77c, 0xa77c,\r
-0xa77f, 0xa77f,\r
-0xa781, 0xa781,\r
-0xa783, 0xa783,\r
-0xa785, 0xa785,\r
-0xa787, 0xa787,\r
-0xa78c, 0xa78c,\r
-0xa78e, 0xa78e,\r
-0xa791, 0xa791,\r
-0xa793, 0xa795,\r
-0xa797, 0xa797,\r
-0xa799, 0xa799,\r
-0xa79b, 0xa79b,\r
-0xa79d, 0xa79d,\r
-0xa79f, 0xa79f,\r
-0xa7a1, 0xa7a1,\r
-0xa7a3, 0xa7a3,\r
-0xa7a5, 0xa7a5,\r
-0xa7a7, 0xa7a7,\r
-0xa7a9, 0xa7a9,\r
-0xa7af, 0xa7af,\r
-0xa7b5, 0xa7b5,\r
-0xa7b7, 0xa7b7,\r
-0xa7b9, 0xa7b9,\r
-0xa7bb, 0xa7bb,\r
-0xa7bd, 0xa7bd,\r
-0xa7bf, 0xa7bf,\r
-0xa7c3, 0xa7c3,\r
-0xa7f8, 0xa7fa,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabbf,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xff41, 0xff5a,\r
-0x10428, 0x1044f,\r
-0x104d8, 0x104fb,\r
-0x10cc0, 0x10cf2,\r
-0x118c0, 0x118df,\r
-0x16e60, 0x16e7f,\r
-0x1d41a, 0x1d433,\r
-0x1d44e, 0x1d454,\r
-0x1d456, 0x1d467,\r
-0x1d482, 0x1d49b,\r
-0x1d4b6, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d4cf,\r
-0x1d4ea, 0x1d503,\r
-0x1d51e, 0x1d537,\r
-0x1d552, 0x1d56b,\r
-0x1d586, 0x1d59f,\r
-0x1d5ba, 0x1d5d3,\r
-0x1d5ee, 0x1d607,\r
-0x1d622, 0x1d63b,\r
-0x1d656, 0x1d66f,\r
-0x1d68a, 0x1d6a5,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6e1,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d71b,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d755,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d78f,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7c9,\r
-0x1d7cb, 0x1d7cb,\r
-0x1e922, 0x1e943,\r
-}; /* END of CR_Lower */\r
-\r
-/* PROPERTY: 'Print': POSIX [[:Print:]] */\r
-static const OnigCodePoint\r
-CR_Print[] = { 668,\r
-0x0020, 0x007e,\r
-0x00a0, 0x0377,\r
-0x037a, 0x037f,\r
-0x0384, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x058a,\r
-0x058d, 0x058f,\r
-0x0591, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f4,\r
-0x0600, 0x061c,\r
-0x061e, 0x070d,\r
-0x070f, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07fa,\r
-0x07fd, 0x082d,\r
-0x0830, 0x083e,\r
-0x0840, 0x085b,\r
-0x085e, 0x085e,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a76,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0af1,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b77,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bfa,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c77, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4f,\r
-0x0d54, 0x0d63,\r
-0x0d66, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df4,\r
-0x0e01, 0x0e3a,\r
-0x0e3f, 0x0e5b,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fbe, 0x0fcc,\r
-0x0fce, 0x0fda,\r
-0x1000, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x137c,\r
-0x1380, 0x1399,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1400, 0x169c,\r
-0x16a0, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1736,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x17f0, 0x17f9,\r
-0x1800, 0x180e,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1940, 0x1940,\r
-0x1944, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19da,\r
-0x19de, 0x1a1b,\r
-0x1a1e, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa0, 0x1aad,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b7c,\r
-0x1b80, 0x1bf3,\r
-0x1bfc, 0x1c37,\r
-0x1c3b, 0x1c49,\r
-0x1c4d, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cc7,\r
-0x1cd0, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fc4,\r
-0x1fc6, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fdd, 0x1fef,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffe,\r
-0x2000, 0x2027,\r
-0x202a, 0x2064,\r
-0x2066, 0x2071,\r
-0x2074, 0x208e,\r
-0x2090, 0x209c,\r
-0x20a0, 0x20bf,\r
-0x20d0, 0x20f0,\r
-0x2100, 0x218b,\r
-0x2190, 0x2426,\r
-0x2440, 0x244a,\r
-0x2460, 0x2b73,\r
-0x2b76, 0x2b95,\r
-0x2b98, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2cf3,\r
-0x2cf9, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d70,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2e4f,\r
-0x2e80, 0x2e99,\r
-0x2e9b, 0x2ef3,\r
-0x2f00, 0x2fd5,\r
-0x2ff0, 0x2ffb,\r
-0x3000, 0x303f,\r
-0x3041, 0x3096,\r
-0x3099, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x3190, 0x31ba,\r
-0x31c0, 0x31e3,\r
-0x31f0, 0x321e,\r
-0x3220, 0x4db5,\r
-0x4dc0, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa490, 0xa4c6,\r
-0xa4d0, 0xa62b,\r
-0xa640, 0xa6f7,\r
-0xa700, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa82b,\r
-0xa830, 0xa839,\r
-0xa840, 0xa877,\r
-0xa880, 0xa8c5,\r
-0xa8ce, 0xa8d9,\r
-0xa8e0, 0xa953,\r
-0xa95f, 0xa97c,\r
-0xa980, 0xa9cd,\r
-0xa9cf, 0xa9d9,\r
-0xa9de, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa5c, 0xaac2,\r
-0xaadb, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab67,\r
-0xab70, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xe000, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbc1,\r
-0xfbd3, 0xfd3f,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfd,\r
-0xfe00, 0xfe19,\r
-0xfe20, 0xfe52,\r
-0xfe54, 0xfe66,\r
-0xfe68, 0xfe6b,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xfeff, 0xfeff,\r
-0xff01, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0xffe0, 0xffe6,\r
-0xffe8, 0xffee,\r
-0xfff9, 0xfffd,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10100, 0x10102,\r
-0x10107, 0x10133,\r
-0x10137, 0x1018e,\r
-0x10190, 0x1019b,\r
-0x101a0, 0x101a0,\r
-0x101d0, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102fb,\r
-0x10300, 0x10323,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x1039f, 0x103c3,\r
-0x103c8, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x1056f, 0x1056f,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10857, 0x1089e,\r
-0x108a7, 0x108af,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x108fb, 0x1091b,\r
-0x1091f, 0x10939,\r
-0x1093f, 0x1093f,\r
-0x10980, 0x109b7,\r
-0x109bc, 0x109cf,\r
-0x109d2, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a48,\r
-0x10a50, 0x10a58,\r
-0x10a60, 0x10a9f,\r
-0x10ac0, 0x10ae6,\r
-0x10aeb, 0x10af6,\r
-0x10b00, 0x10b35,\r
-0x10b39, 0x10b55,\r
-0x10b58, 0x10b72,\r
-0x10b78, 0x10b91,\r
-0x10b99, 0x10b9c,\r
-0x10ba9, 0x10baf,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10cfa, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10e60, 0x10e7e,\r
-0x10f00, 0x10f27,\r
-0x10f30, 0x10f59,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x1104d,\r
-0x11052, 0x1106f,\r
-0x1107f, 0x110c1,\r
-0x110cd, 0x110cd,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x11146,\r
-0x11150, 0x11176,\r
-0x11180, 0x111cd,\r
-0x111d0, 0x111df,\r
-0x111e1, 0x111f4,\r
-0x11200, 0x11211,\r
-0x11213, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a9,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x11459,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145f,\r
-0x11480, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115dd,\r
-0x11600, 0x11644,\r
-0x11650, 0x11659,\r
-0x11660, 0x1166c,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x1173f,\r
-0x11800, 0x1183b,\r
-0x118a0, 0x118f2,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e4,\r
-0x11a00, 0x11a47,\r
-0x11a50, 0x11aa2,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c45,\r
-0x11c50, 0x11c6c,\r
-0x11c70, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef8,\r
-0x11fc0, 0x11ff1,\r
-0x11fff, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12470, 0x12474,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x13430, 0x13438,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16a6e, 0x16a6f,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af5,\r
-0x16b00, 0x16b45,\r
-0x16b50, 0x16b59,\r
-0x16b5b, 0x16b61,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e9a,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9c, 0x1bca3,\r
-0x1d000, 0x1d0f5,\r
-0x1d100, 0x1d126,\r
-0x1d129, 0x1d1e8,\r
-0x1d200, 0x1d245,\r
-0x1d2e0, 0x1d2f3,\r
-0x1d300, 0x1d356,\r
-0x1d360, 0x1d378,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d7cb,\r
-0x1d7ce, 0x1da8b,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14f,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e2ff, 0x1e2ff,\r
-0x1e800, 0x1e8c4,\r
-0x1e8c7, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1e95e, 0x1e95f,\r
-0x1ec71, 0x1ecb4,\r
-0x1ed01, 0x1ed3d,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1eef0, 0x1eef1,\r
-0x1f000, 0x1f02b,\r
-0x1f030, 0x1f093,\r
-0x1f0a0, 0x1f0ae,\r
-0x1f0b1, 0x1f0bf,\r
-0x1f0c1, 0x1f0cf,\r
-0x1f0d1, 0x1f0f5,\r
-0x1f100, 0x1f10c,\r
-0x1f110, 0x1f16c,\r
-0x1f170, 0x1f1ac,\r
-0x1f1e6, 0x1f202,\r
-0x1f210, 0x1f23b,\r
-0x1f240, 0x1f248,\r
-0x1f250, 0x1f251,\r
-0x1f260, 0x1f265,\r
-0x1f300, 0x1f6d5,\r
-0x1f6e0, 0x1f6ec,\r
-0x1f6f0, 0x1f6fa,\r
-0x1f700, 0x1f773,\r
-0x1f780, 0x1f7d8,\r
-0x1f7e0, 0x1f7eb,\r
-0x1f800, 0x1f80b,\r
-0x1f810, 0x1f847,\r
-0x1f850, 0x1f859,\r
-0x1f860, 0x1f887,\r
-0x1f890, 0x1f8ad,\r
-0x1f900, 0x1f90b,\r
-0x1f90d, 0x1f971,\r
-0x1f973, 0x1f976,\r
-0x1f97a, 0x1f9a2,\r
-0x1f9a5, 0x1f9aa,\r
-0x1f9ae, 0x1f9ca,\r
-0x1f9cd, 0x1fa53,\r
-0x1fa60, 0x1fa6d,\r
-0x1fa70, 0x1fa73,\r
-0x1fa78, 0x1fa7a,\r
-0x1fa80, 0x1fa82,\r
-0x1fa90, 0x1fa95,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0001, 0xe0001,\r
-0xe0020, 0xe007f,\r
-0xe0100, 0xe01ef,\r
-0xf0000, 0xffffd,\r
-0x100000, 0x10fffd,\r
-}; /* END of CR_Print */\r
-\r
-/* PROPERTY: 'Punct': POSIX [[:Punct:]] */\r
-static const OnigCodePoint\r
-CR_Punct[] = { 182,\r
-0x0021, 0x0023,\r
-0x0025, 0x002a,\r
-0x002c, 0x002f,\r
-0x003a, 0x003b,\r
-0x003f, 0x0040,\r
-0x005b, 0x005d,\r
-0x005f, 0x005f,\r
-0x007b, 0x007b,\r
-0x007d, 0x007d,\r
-0x00a1, 0x00a1,\r
-0x00a7, 0x00a7,\r
-0x00ab, 0x00ab,\r
-0x00b6, 0x00b7,\r
-0x00bb, 0x00bb,\r
-0x00bf, 0x00bf,\r
-0x037e, 0x037e,\r
-0x0387, 0x0387,\r
-0x055a, 0x055f,\r
-0x0589, 0x058a,\r
-0x05be, 0x05be,\r
-0x05c0, 0x05c0,\r
-0x05c3, 0x05c3,\r
-0x05c6, 0x05c6,\r
-0x05f3, 0x05f4,\r
-0x0609, 0x060a,\r
-0x060c, 0x060d,\r
-0x061b, 0x061b,\r
-0x061e, 0x061f,\r
-0x066a, 0x066d,\r
-0x06d4, 0x06d4,\r
-0x0700, 0x070d,\r
-0x07f7, 0x07f9,\r
-0x0830, 0x083e,\r
-0x085e, 0x085e,\r
-0x0964, 0x0965,\r
-0x0970, 0x0970,\r
-0x09fd, 0x09fd,\r
-0x0a76, 0x0a76,\r
-0x0af0, 0x0af0,\r
-0x0c77, 0x0c77,\r
-0x0c84, 0x0c84,\r
-0x0df4, 0x0df4,\r
-0x0e4f, 0x0e4f,\r
-0x0e5a, 0x0e5b,\r
-0x0f04, 0x0f12,\r
-0x0f14, 0x0f14,\r
-0x0f3a, 0x0f3d,\r
-0x0f85, 0x0f85,\r
-0x0fd0, 0x0fd4,\r
-0x0fd9, 0x0fda,\r
-0x104a, 0x104f,\r
-0x10fb, 0x10fb,\r
-0x1360, 0x1368,\r
-0x1400, 0x1400,\r
-0x166e, 0x166e,\r
-0x169b, 0x169c,\r
-0x16eb, 0x16ed,\r
-0x1735, 0x1736,\r
-0x17d4, 0x17d6,\r
-0x17d8, 0x17da,\r
-0x1800, 0x180a,\r
-0x1944, 0x1945,\r
-0x1a1e, 0x1a1f,\r
-0x1aa0, 0x1aa6,\r
-0x1aa8, 0x1aad,\r
-0x1b5a, 0x1b60,\r
-0x1bfc, 0x1bff,\r
-0x1c3b, 0x1c3f,\r
-0x1c7e, 0x1c7f,\r
-0x1cc0, 0x1cc7,\r
-0x1cd3, 0x1cd3,\r
-0x2010, 0x2027,\r
-0x2030, 0x2043,\r
-0x2045, 0x2051,\r
-0x2053, 0x205e,\r
-0x207d, 0x207e,\r
-0x208d, 0x208e,\r
-0x2308, 0x230b,\r
-0x2329, 0x232a,\r
-0x2768, 0x2775,\r
-0x27c5, 0x27c6,\r
-0x27e6, 0x27ef,\r
-0x2983, 0x2998,\r
-0x29d8, 0x29db,\r
-0x29fc, 0x29fd,\r
-0x2cf9, 0x2cfc,\r
-0x2cfe, 0x2cff,\r
-0x2d70, 0x2d70,\r
-0x2e00, 0x2e2e,\r
-0x2e30, 0x2e4f,\r
-0x3001, 0x3003,\r
-0x3008, 0x3011,\r
-0x3014, 0x301f,\r
-0x3030, 0x3030,\r
-0x303d, 0x303d,\r
-0x30a0, 0x30a0,\r
-0x30fb, 0x30fb,\r
-0xa4fe, 0xa4ff,\r
-0xa60d, 0xa60f,\r
-0xa673, 0xa673,\r
-0xa67e, 0xa67e,\r
-0xa6f2, 0xa6f7,\r
-0xa874, 0xa877,\r
-0xa8ce, 0xa8cf,\r
-0xa8f8, 0xa8fa,\r
-0xa8fc, 0xa8fc,\r
-0xa92e, 0xa92f,\r
-0xa95f, 0xa95f,\r
-0xa9c1, 0xa9cd,\r
-0xa9de, 0xa9df,\r
-0xaa5c, 0xaa5f,\r
-0xaade, 0xaadf,\r
-0xaaf0, 0xaaf1,\r
-0xabeb, 0xabeb,\r
-0xfd3e, 0xfd3f,\r
-0xfe10, 0xfe19,\r
-0xfe30, 0xfe52,\r
-0xfe54, 0xfe61,\r
-0xfe63, 0xfe63,\r
-0xfe68, 0xfe68,\r
-0xfe6a, 0xfe6b,\r
-0xff01, 0xff03,\r
-0xff05, 0xff0a,\r
-0xff0c, 0xff0f,\r
-0xff1a, 0xff1b,\r
-0xff1f, 0xff20,\r
-0xff3b, 0xff3d,\r
-0xff3f, 0xff3f,\r
-0xff5b, 0xff5b,\r
-0xff5d, 0xff5d,\r
-0xff5f, 0xff65,\r
-0x10100, 0x10102,\r
-0x1039f, 0x1039f,\r
-0x103d0, 0x103d0,\r
-0x1056f, 0x1056f,\r
-0x10857, 0x10857,\r
-0x1091f, 0x1091f,\r
-0x1093f, 0x1093f,\r
-0x10a50, 0x10a58,\r
-0x10a7f, 0x10a7f,\r
-0x10af0, 0x10af6,\r
-0x10b39, 0x10b3f,\r
-0x10b99, 0x10b9c,\r
-0x10f55, 0x10f59,\r
-0x11047, 0x1104d,\r
-0x110bb, 0x110bc,\r
-0x110be, 0x110c1,\r
-0x11140, 0x11143,\r
-0x11174, 0x11175,\r
-0x111c5, 0x111c8,\r
-0x111cd, 0x111cd,\r
-0x111db, 0x111db,\r
-0x111dd, 0x111df,\r
-0x11238, 0x1123d,\r
-0x112a9, 0x112a9,\r
-0x1144b, 0x1144f,\r
-0x1145b, 0x1145b,\r
-0x1145d, 0x1145d,\r
-0x114c6, 0x114c6,\r
-0x115c1, 0x115d7,\r
-0x11641, 0x11643,\r
-0x11660, 0x1166c,\r
-0x1173c, 0x1173e,\r
-0x1183b, 0x1183b,\r
-0x119e2, 0x119e2,\r
-0x11a3f, 0x11a46,\r
-0x11a9a, 0x11a9c,\r
-0x11a9e, 0x11aa2,\r
-0x11c41, 0x11c45,\r
-0x11c70, 0x11c71,\r
-0x11ef7, 0x11ef8,\r
-0x11fff, 0x11fff,\r
-0x12470, 0x12474,\r
-0x16a6e, 0x16a6f,\r
-0x16af5, 0x16af5,\r
-0x16b37, 0x16b3b,\r
-0x16b44, 0x16b44,\r
-0x16e97, 0x16e9a,\r
-0x16fe2, 0x16fe2,\r
-0x1bc9f, 0x1bc9f,\r
-0x1da87, 0x1da8b,\r
-0x1e95e, 0x1e95f,\r
-}; /* END of CR_Punct */\r
-\r
-/* PROPERTY: 'Space': POSIX [[:Space:]] */\r
-static const OnigCodePoint\r
-CR_Space[] = { 10,\r
-0x0009, 0x000d,\r
-0x0020, 0x0020,\r
-0x0085, 0x0085,\r
-0x00a0, 0x00a0,\r
-0x1680, 0x1680,\r
-0x2000, 0x200a,\r
-0x2028, 0x2029,\r
-0x202f, 0x202f,\r
-0x205f, 0x205f,\r
-0x3000, 0x3000,\r
-}; /* END of CR_Space */\r
-\r
-/* PROPERTY: 'Upper': POSIX [[:Upper:]] */\r
-static const OnigCodePoint\r
-CR_Upper[] = { 641,\r
-0x0041, 0x005a,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00de,\r
-0x0100, 0x0100,\r
-0x0102, 0x0102,\r
-0x0104, 0x0104,\r
-0x0106, 0x0106,\r
-0x0108, 0x0108,\r
-0x010a, 0x010a,\r
-0x010c, 0x010c,\r
-0x010e, 0x010e,\r
-0x0110, 0x0110,\r
-0x0112, 0x0112,\r
-0x0114, 0x0114,\r
-0x0116, 0x0116,\r
-0x0118, 0x0118,\r
-0x011a, 0x011a,\r
-0x011c, 0x011c,\r
-0x011e, 0x011e,\r
-0x0120, 0x0120,\r
-0x0122, 0x0122,\r
-0x0124, 0x0124,\r
-0x0126, 0x0126,\r
-0x0128, 0x0128,\r
-0x012a, 0x012a,\r
-0x012c, 0x012c,\r
-0x012e, 0x012e,\r
-0x0130, 0x0130,\r
-0x0132, 0x0132,\r
-0x0134, 0x0134,\r
-0x0136, 0x0136,\r
-0x0139, 0x0139,\r
-0x013b, 0x013b,\r
-0x013d, 0x013d,\r
-0x013f, 0x013f,\r
-0x0141, 0x0141,\r
-0x0143, 0x0143,\r
-0x0145, 0x0145,\r
-0x0147, 0x0147,\r
-0x014a, 0x014a,\r
-0x014c, 0x014c,\r
-0x014e, 0x014e,\r
-0x0150, 0x0150,\r
-0x0152, 0x0152,\r
-0x0154, 0x0154,\r
-0x0156, 0x0156,\r
-0x0158, 0x0158,\r
-0x015a, 0x015a,\r
-0x015c, 0x015c,\r
-0x015e, 0x015e,\r
-0x0160, 0x0160,\r
-0x0162, 0x0162,\r
-0x0164, 0x0164,\r
-0x0166, 0x0166,\r
-0x0168, 0x0168,\r
-0x016a, 0x016a,\r
-0x016c, 0x016c,\r
-0x016e, 0x016e,\r
-0x0170, 0x0170,\r
-0x0172, 0x0172,\r
-0x0174, 0x0174,\r
-0x0176, 0x0176,\r
-0x0178, 0x0179,\r
-0x017b, 0x017b,\r
-0x017d, 0x017d,\r
-0x0181, 0x0182,\r
-0x0184, 0x0184,\r
-0x0186, 0x0187,\r
-0x0189, 0x018b,\r
-0x018e, 0x0191,\r
-0x0193, 0x0194,\r
-0x0196, 0x0198,\r
-0x019c, 0x019d,\r
-0x019f, 0x01a0,\r
-0x01a2, 0x01a2,\r
-0x01a4, 0x01a4,\r
-0x01a6, 0x01a7,\r
-0x01a9, 0x01a9,\r
-0x01ac, 0x01ac,\r
-0x01ae, 0x01af,\r
-0x01b1, 0x01b3,\r
-0x01b5, 0x01b5,\r
-0x01b7, 0x01b8,\r
-0x01bc, 0x01bc,\r
-0x01c4, 0x01c4,\r
-0x01c7, 0x01c7,\r
-0x01ca, 0x01ca,\r
-0x01cd, 0x01cd,\r
-0x01cf, 0x01cf,\r
-0x01d1, 0x01d1,\r
-0x01d3, 0x01d3,\r
-0x01d5, 0x01d5,\r
-0x01d7, 0x01d7,\r
-0x01d9, 0x01d9,\r
-0x01db, 0x01db,\r
-0x01de, 0x01de,\r
-0x01e0, 0x01e0,\r
-0x01e2, 0x01e2,\r
-0x01e4, 0x01e4,\r
-0x01e6, 0x01e6,\r
-0x01e8, 0x01e8,\r
-0x01ea, 0x01ea,\r
-0x01ec, 0x01ec,\r
-0x01ee, 0x01ee,\r
-0x01f1, 0x01f1,\r
-0x01f4, 0x01f4,\r
-0x01f6, 0x01f8,\r
-0x01fa, 0x01fa,\r
-0x01fc, 0x01fc,\r
-0x01fe, 0x01fe,\r
-0x0200, 0x0200,\r
-0x0202, 0x0202,\r
-0x0204, 0x0204,\r
-0x0206, 0x0206,\r
-0x0208, 0x0208,\r
-0x020a, 0x020a,\r
-0x020c, 0x020c,\r
-0x020e, 0x020e,\r
-0x0210, 0x0210,\r
-0x0212, 0x0212,\r
-0x0214, 0x0214,\r
-0x0216, 0x0216,\r
-0x0218, 0x0218,\r
-0x021a, 0x021a,\r
-0x021c, 0x021c,\r
-0x021e, 0x021e,\r
-0x0220, 0x0220,\r
-0x0222, 0x0222,\r
-0x0224, 0x0224,\r
-0x0226, 0x0226,\r
-0x0228, 0x0228,\r
-0x022a, 0x022a,\r
-0x022c, 0x022c,\r
-0x022e, 0x022e,\r
-0x0230, 0x0230,\r
-0x0232, 0x0232,\r
-0x023a, 0x023b,\r
-0x023d, 0x023e,\r
-0x0241, 0x0241,\r
-0x0243, 0x0246,\r
-0x0248, 0x0248,\r
-0x024a, 0x024a,\r
-0x024c, 0x024c,\r
-0x024e, 0x024e,\r
-0x0370, 0x0370,\r
-0x0372, 0x0372,\r
-0x0376, 0x0376,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x038f,\r
-0x0391, 0x03a1,\r
-0x03a3, 0x03ab,\r
-0x03cf, 0x03cf,\r
-0x03d2, 0x03d4,\r
-0x03d8, 0x03d8,\r
-0x03da, 0x03da,\r
-0x03dc, 0x03dc,\r
-0x03de, 0x03de,\r
-0x03e0, 0x03e0,\r
-0x03e2, 0x03e2,\r
-0x03e4, 0x03e4,\r
-0x03e6, 0x03e6,\r
-0x03e8, 0x03e8,\r
-0x03ea, 0x03ea,\r
-0x03ec, 0x03ec,\r
-0x03ee, 0x03ee,\r
-0x03f4, 0x03f4,\r
-0x03f7, 0x03f7,\r
-0x03f9, 0x03fa,\r
-0x03fd, 0x042f,\r
-0x0460, 0x0460,\r
-0x0462, 0x0462,\r
-0x0464, 0x0464,\r
-0x0466, 0x0466,\r
-0x0468, 0x0468,\r
-0x046a, 0x046a,\r
-0x046c, 0x046c,\r
-0x046e, 0x046e,\r
-0x0470, 0x0470,\r
-0x0472, 0x0472,\r
-0x0474, 0x0474,\r
-0x0476, 0x0476,\r
-0x0478, 0x0478,\r
-0x047a, 0x047a,\r
-0x047c, 0x047c,\r
-0x047e, 0x047e,\r
-0x0480, 0x0480,\r
-0x048a, 0x048a,\r
-0x048c, 0x048c,\r
-0x048e, 0x048e,\r
-0x0490, 0x0490,\r
-0x0492, 0x0492,\r
-0x0494, 0x0494,\r
-0x0496, 0x0496,\r
-0x0498, 0x0498,\r
-0x049a, 0x049a,\r
-0x049c, 0x049c,\r
-0x049e, 0x049e,\r
-0x04a0, 0x04a0,\r
-0x04a2, 0x04a2,\r
-0x04a4, 0x04a4,\r
-0x04a6, 0x04a6,\r
-0x04a8, 0x04a8,\r
-0x04aa, 0x04aa,\r
-0x04ac, 0x04ac,\r
-0x04ae, 0x04ae,\r
-0x04b0, 0x04b0,\r
-0x04b2, 0x04b2,\r
-0x04b4, 0x04b4,\r
-0x04b6, 0x04b6,\r
-0x04b8, 0x04b8,\r
-0x04ba, 0x04ba,\r
-0x04bc, 0x04bc,\r
-0x04be, 0x04be,\r
-0x04c0, 0x04c1,\r
-0x04c3, 0x04c3,\r
-0x04c5, 0x04c5,\r
-0x04c7, 0x04c7,\r
-0x04c9, 0x04c9,\r
-0x04cb, 0x04cb,\r
-0x04cd, 0x04cd,\r
-0x04d0, 0x04d0,\r
-0x04d2, 0x04d2,\r
-0x04d4, 0x04d4,\r
-0x04d6, 0x04d6,\r
-0x04d8, 0x04d8,\r
-0x04da, 0x04da,\r
-0x04dc, 0x04dc,\r
-0x04de, 0x04de,\r
-0x04e0, 0x04e0,\r
-0x04e2, 0x04e2,\r
-0x04e4, 0x04e4,\r
-0x04e6, 0x04e6,\r
-0x04e8, 0x04e8,\r
-0x04ea, 0x04ea,\r
-0x04ec, 0x04ec,\r
-0x04ee, 0x04ee,\r
-0x04f0, 0x04f0,\r
-0x04f2, 0x04f2,\r
-0x04f4, 0x04f4,\r
-0x04f6, 0x04f6,\r
-0x04f8, 0x04f8,\r
-0x04fa, 0x04fa,\r
-0x04fc, 0x04fc,\r
-0x04fe, 0x04fe,\r
-0x0500, 0x0500,\r
-0x0502, 0x0502,\r
-0x0504, 0x0504,\r
-0x0506, 0x0506,\r
-0x0508, 0x0508,\r
-0x050a, 0x050a,\r
-0x050c, 0x050c,\r
-0x050e, 0x050e,\r
-0x0510, 0x0510,\r
-0x0512, 0x0512,\r
-0x0514, 0x0514,\r
-0x0516, 0x0516,\r
-0x0518, 0x0518,\r
-0x051a, 0x051a,\r
-0x051c, 0x051c,\r
-0x051e, 0x051e,\r
-0x0520, 0x0520,\r
-0x0522, 0x0522,\r
-0x0524, 0x0524,\r
-0x0526, 0x0526,\r
-0x0528, 0x0528,\r
-0x052a, 0x052a,\r
-0x052c, 0x052c,\r
-0x052e, 0x052e,\r
-0x0531, 0x0556,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x13a0, 0x13f5,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1e00, 0x1e00,\r
-0x1e02, 0x1e02,\r
-0x1e04, 0x1e04,\r
-0x1e06, 0x1e06,\r
-0x1e08, 0x1e08,\r
-0x1e0a, 0x1e0a,\r
-0x1e0c, 0x1e0c,\r
-0x1e0e, 0x1e0e,\r
-0x1e10, 0x1e10,\r
-0x1e12, 0x1e12,\r
-0x1e14, 0x1e14,\r
-0x1e16, 0x1e16,\r
-0x1e18, 0x1e18,\r
-0x1e1a, 0x1e1a,\r
-0x1e1c, 0x1e1c,\r
-0x1e1e, 0x1e1e,\r
-0x1e20, 0x1e20,\r
-0x1e22, 0x1e22,\r
-0x1e24, 0x1e24,\r
-0x1e26, 0x1e26,\r
-0x1e28, 0x1e28,\r
-0x1e2a, 0x1e2a,\r
-0x1e2c, 0x1e2c,\r
-0x1e2e, 0x1e2e,\r
-0x1e30, 0x1e30,\r
-0x1e32, 0x1e32,\r
-0x1e34, 0x1e34,\r
-0x1e36, 0x1e36,\r
-0x1e38, 0x1e38,\r
-0x1e3a, 0x1e3a,\r
-0x1e3c, 0x1e3c,\r
-0x1e3e, 0x1e3e,\r
-0x1e40, 0x1e40,\r
-0x1e42, 0x1e42,\r
-0x1e44, 0x1e44,\r
-0x1e46, 0x1e46,\r
-0x1e48, 0x1e48,\r
-0x1e4a, 0x1e4a,\r
-0x1e4c, 0x1e4c,\r
-0x1e4e, 0x1e4e,\r
-0x1e50, 0x1e50,\r
-0x1e52, 0x1e52,\r
-0x1e54, 0x1e54,\r
-0x1e56, 0x1e56,\r
-0x1e58, 0x1e58,\r
-0x1e5a, 0x1e5a,\r
-0x1e5c, 0x1e5c,\r
-0x1e5e, 0x1e5e,\r
-0x1e60, 0x1e60,\r
-0x1e62, 0x1e62,\r
-0x1e64, 0x1e64,\r
-0x1e66, 0x1e66,\r
-0x1e68, 0x1e68,\r
-0x1e6a, 0x1e6a,\r
-0x1e6c, 0x1e6c,\r
-0x1e6e, 0x1e6e,\r
-0x1e70, 0x1e70,\r
-0x1e72, 0x1e72,\r
-0x1e74, 0x1e74,\r
-0x1e76, 0x1e76,\r
-0x1e78, 0x1e78,\r
-0x1e7a, 0x1e7a,\r
-0x1e7c, 0x1e7c,\r
-0x1e7e, 0x1e7e,\r
-0x1e80, 0x1e80,\r
-0x1e82, 0x1e82,\r
-0x1e84, 0x1e84,\r
-0x1e86, 0x1e86,\r
-0x1e88, 0x1e88,\r
-0x1e8a, 0x1e8a,\r
-0x1e8c, 0x1e8c,\r
-0x1e8e, 0x1e8e,\r
-0x1e90, 0x1e90,\r
-0x1e92, 0x1e92,\r
-0x1e94, 0x1e94,\r
-0x1e9e, 0x1e9e,\r
-0x1ea0, 0x1ea0,\r
-0x1ea2, 0x1ea2,\r
-0x1ea4, 0x1ea4,\r
-0x1ea6, 0x1ea6,\r
-0x1ea8, 0x1ea8,\r
-0x1eaa, 0x1eaa,\r
-0x1eac, 0x1eac,\r
-0x1eae, 0x1eae,\r
-0x1eb0, 0x1eb0,\r
-0x1eb2, 0x1eb2,\r
-0x1eb4, 0x1eb4,\r
-0x1eb6, 0x1eb6,\r
-0x1eb8, 0x1eb8,\r
-0x1eba, 0x1eba,\r
-0x1ebc, 0x1ebc,\r
-0x1ebe, 0x1ebe,\r
-0x1ec0, 0x1ec0,\r
-0x1ec2, 0x1ec2,\r
-0x1ec4, 0x1ec4,\r
-0x1ec6, 0x1ec6,\r
-0x1ec8, 0x1ec8,\r
-0x1eca, 0x1eca,\r
-0x1ecc, 0x1ecc,\r
-0x1ece, 0x1ece,\r
-0x1ed0, 0x1ed0,\r
-0x1ed2, 0x1ed2,\r
-0x1ed4, 0x1ed4,\r
-0x1ed6, 0x1ed6,\r
-0x1ed8, 0x1ed8,\r
-0x1eda, 0x1eda,\r
-0x1edc, 0x1edc,\r
-0x1ede, 0x1ede,\r
-0x1ee0, 0x1ee0,\r
-0x1ee2, 0x1ee2,\r
-0x1ee4, 0x1ee4,\r
-0x1ee6, 0x1ee6,\r
-0x1ee8, 0x1ee8,\r
-0x1eea, 0x1eea,\r
-0x1eec, 0x1eec,\r
-0x1eee, 0x1eee,\r
-0x1ef0, 0x1ef0,\r
-0x1ef2, 0x1ef2,\r
-0x1ef4, 0x1ef4,\r
-0x1ef6, 0x1ef6,\r
-0x1ef8, 0x1ef8,\r
-0x1efa, 0x1efa,\r
-0x1efc, 0x1efc,\r
-0x1efe, 0x1efe,\r
-0x1f08, 0x1f0f,\r
-0x1f18, 0x1f1d,\r
-0x1f28, 0x1f2f,\r
-0x1f38, 0x1f3f,\r
-0x1f48, 0x1f4d,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f5f,\r
-0x1f68, 0x1f6f,\r
-0x1fb8, 0x1fbb,\r
-0x1fc8, 0x1fcb,\r
-0x1fd8, 0x1fdb,\r
-0x1fe8, 0x1fec,\r
-0x1ff8, 0x1ffb,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210b, 0x210d,\r
-0x2110, 0x2112,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x2130, 0x2133,\r
-0x213e, 0x213f,\r
-0x2145, 0x2145,\r
-0x2160, 0x216f,\r
-0x2183, 0x2183,\r
-0x24b6, 0x24cf,\r
-0x2c00, 0x2c2e,\r
-0x2c60, 0x2c60,\r
-0x2c62, 0x2c64,\r
-0x2c67, 0x2c67,\r
-0x2c69, 0x2c69,\r
-0x2c6b, 0x2c6b,\r
-0x2c6d, 0x2c70,\r
-0x2c72, 0x2c72,\r
-0x2c75, 0x2c75,\r
-0x2c7e, 0x2c80,\r
-0x2c82, 0x2c82,\r
-0x2c84, 0x2c84,\r
-0x2c86, 0x2c86,\r
-0x2c88, 0x2c88,\r
-0x2c8a, 0x2c8a,\r
-0x2c8c, 0x2c8c,\r
-0x2c8e, 0x2c8e,\r
-0x2c90, 0x2c90,\r
-0x2c92, 0x2c92,\r
-0x2c94, 0x2c94,\r
-0x2c96, 0x2c96,\r
-0x2c98, 0x2c98,\r
-0x2c9a, 0x2c9a,\r
-0x2c9c, 0x2c9c,\r
-0x2c9e, 0x2c9e,\r
-0x2ca0, 0x2ca0,\r
-0x2ca2, 0x2ca2,\r
-0x2ca4, 0x2ca4,\r
-0x2ca6, 0x2ca6,\r
-0x2ca8, 0x2ca8,\r
-0x2caa, 0x2caa,\r
-0x2cac, 0x2cac,\r
-0x2cae, 0x2cae,\r
-0x2cb0, 0x2cb0,\r
-0x2cb2, 0x2cb2,\r
-0x2cb4, 0x2cb4,\r
-0x2cb6, 0x2cb6,\r
-0x2cb8, 0x2cb8,\r
-0x2cba, 0x2cba,\r
-0x2cbc, 0x2cbc,\r
-0x2cbe, 0x2cbe,\r
-0x2cc0, 0x2cc0,\r
-0x2cc2, 0x2cc2,\r
-0x2cc4, 0x2cc4,\r
-0x2cc6, 0x2cc6,\r
-0x2cc8, 0x2cc8,\r
-0x2cca, 0x2cca,\r
-0x2ccc, 0x2ccc,\r
-0x2cce, 0x2cce,\r
-0x2cd0, 0x2cd0,\r
-0x2cd2, 0x2cd2,\r
-0x2cd4, 0x2cd4,\r
-0x2cd6, 0x2cd6,\r
-0x2cd8, 0x2cd8,\r
-0x2cda, 0x2cda,\r
-0x2cdc, 0x2cdc,\r
-0x2cde, 0x2cde,\r
-0x2ce0, 0x2ce0,\r
-0x2ce2, 0x2ce2,\r
-0x2ceb, 0x2ceb,\r
-0x2ced, 0x2ced,\r
-0x2cf2, 0x2cf2,\r
-0xa640, 0xa640,\r
-0xa642, 0xa642,\r
-0xa644, 0xa644,\r
-0xa646, 0xa646,\r
-0xa648, 0xa648,\r
-0xa64a, 0xa64a,\r
-0xa64c, 0xa64c,\r
-0xa64e, 0xa64e,\r
-0xa650, 0xa650,\r
-0xa652, 0xa652,\r
-0xa654, 0xa654,\r
-0xa656, 0xa656,\r
-0xa658, 0xa658,\r
-0xa65a, 0xa65a,\r
-0xa65c, 0xa65c,\r
-0xa65e, 0xa65e,\r
-0xa660, 0xa660,\r
-0xa662, 0xa662,\r
-0xa664, 0xa664,\r
-0xa666, 0xa666,\r
-0xa668, 0xa668,\r
-0xa66a, 0xa66a,\r
-0xa66c, 0xa66c,\r
-0xa680, 0xa680,\r
-0xa682, 0xa682,\r
-0xa684, 0xa684,\r
-0xa686, 0xa686,\r
-0xa688, 0xa688,\r
-0xa68a, 0xa68a,\r
-0xa68c, 0xa68c,\r
-0xa68e, 0xa68e,\r
-0xa690, 0xa690,\r
-0xa692, 0xa692,\r
-0xa694, 0xa694,\r
-0xa696, 0xa696,\r
-0xa698, 0xa698,\r
-0xa69a, 0xa69a,\r
-0xa722, 0xa722,\r
-0xa724, 0xa724,\r
-0xa726, 0xa726,\r
-0xa728, 0xa728,\r
-0xa72a, 0xa72a,\r
-0xa72c, 0xa72c,\r
-0xa72e, 0xa72e,\r
-0xa732, 0xa732,\r
-0xa734, 0xa734,\r
-0xa736, 0xa736,\r
-0xa738, 0xa738,\r
-0xa73a, 0xa73a,\r
-0xa73c, 0xa73c,\r
-0xa73e, 0xa73e,\r
-0xa740, 0xa740,\r
-0xa742, 0xa742,\r
-0xa744, 0xa744,\r
-0xa746, 0xa746,\r
-0xa748, 0xa748,\r
-0xa74a, 0xa74a,\r
-0xa74c, 0xa74c,\r
-0xa74e, 0xa74e,\r
-0xa750, 0xa750,\r
-0xa752, 0xa752,\r
-0xa754, 0xa754,\r
-0xa756, 0xa756,\r
-0xa758, 0xa758,\r
-0xa75a, 0xa75a,\r
-0xa75c, 0xa75c,\r
-0xa75e, 0xa75e,\r
-0xa760, 0xa760,\r
-0xa762, 0xa762,\r
-0xa764, 0xa764,\r
-0xa766, 0xa766,\r
-0xa768, 0xa768,\r
-0xa76a, 0xa76a,\r
-0xa76c, 0xa76c,\r
-0xa76e, 0xa76e,\r
-0xa779, 0xa779,\r
-0xa77b, 0xa77b,\r
-0xa77d, 0xa77e,\r
-0xa780, 0xa780,\r
-0xa782, 0xa782,\r
-0xa784, 0xa784,\r
-0xa786, 0xa786,\r
-0xa78b, 0xa78b,\r
-0xa78d, 0xa78d,\r
-0xa790, 0xa790,\r
-0xa792, 0xa792,\r
-0xa796, 0xa796,\r
-0xa798, 0xa798,\r
-0xa79a, 0xa79a,\r
-0xa79c, 0xa79c,\r
-0xa79e, 0xa79e,\r
-0xa7a0, 0xa7a0,\r
-0xa7a2, 0xa7a2,\r
-0xa7a4, 0xa7a4,\r
-0xa7a6, 0xa7a6,\r
-0xa7a8, 0xa7a8,\r
-0xa7aa, 0xa7ae,\r
-0xa7b0, 0xa7b4,\r
-0xa7b6, 0xa7b6,\r
-0xa7b8, 0xa7b8,\r
-0xa7ba, 0xa7ba,\r
-0xa7bc, 0xa7bc,\r
-0xa7be, 0xa7be,\r
-0xa7c2, 0xa7c2,\r
-0xa7c4, 0xa7c6,\r
-0xff21, 0xff3a,\r
-0x10400, 0x10427,\r
-0x104b0, 0x104d3,\r
-0x10c80, 0x10cb2,\r
-0x118a0, 0x118bf,\r
-0x16e40, 0x16e5f,\r
-0x1d400, 0x1d419,\r
-0x1d434, 0x1d44d,\r
-0x1d468, 0x1d481,\r
-0x1d49c, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b5,\r
-0x1d4d0, 0x1d4e9,\r
-0x1d504, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d538, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d56c, 0x1d585,\r
-0x1d5a0, 0x1d5b9,\r
-0x1d5d4, 0x1d5ed,\r
-0x1d608, 0x1d621,\r
-0x1d63c, 0x1d655,\r
-0x1d670, 0x1d689,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6e2, 0x1d6fa,\r
-0x1d71c, 0x1d734,\r
-0x1d756, 0x1d76e,\r
-0x1d790, 0x1d7a8,\r
-0x1d7ca, 0x1d7ca,\r
-0x1e900, 0x1e921,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-}; /* END of CR_Upper */\r
-\r
-/* PROPERTY: 'XDigit': POSIX [[:XDigit:]] */\r
-static const OnigCodePoint\r
-CR_XDigit[] = { 3,\r
-0x0030, 0x0039,\r
-0x0041, 0x0046,\r
-0x0061, 0x0066,\r
-}; /* END of CR_XDigit */\r
-\r
-/* PROPERTY: 'Word': POSIX [[:Word:]] */\r
-static const OnigCodePoint\r
-CR_Word[] = { 716,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x005f, 0x005f,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0300, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x0483, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x0591, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06df, 0x06e8,\r
-0x06ea, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x074a,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x07fd, 0x07fd,\r
-0x0800, 0x082d,\r
-0x0840, 0x085b,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d3, 0x08e1,\r
-0x08e3, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bc, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x09fe, 0x09fe,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3c, 0x0a3c,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4d,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abc, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acd,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0aff,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3c, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4d,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcd,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4d,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbc, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccd,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dca, 0x0dca,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e4e,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ec8, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f18, 0x0f19,\r
-0x0f20, 0x0f29,\r
-0x0f35, 0x0f35,\r
-0x0f37, 0x0f37,\r
-0x0f39, 0x0f39,\r
-0x0f3e, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f84,\r
-0x0f86, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x0fc6, 0x0fc6,\r
-0x1000, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x135d, 0x135f,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1714,\r
-0x1720, 0x1734,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17d3,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dd,\r
-0x17e0, 0x17e9,\r
-0x180b, 0x180d,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x193b,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19d9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a60, 0x1a7c,\r
-0x1a7f, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1ab0, 0x1abe,\r
-0x1b00, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b6b, 0x1b73,\r
-0x1b80, 0x1bf3,\r
-0x1c00, 0x1c37,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1cd0, 0x1cd2,\r
-0x1cd4, 0x1cfa,\r
-0x1d00, 0x1df9,\r
-0x1dfb, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x203f, 0x2040,\r
-0x2054, 0x2054,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x20d0, 0x20f0,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d7f, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x302f,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x3099, 0x309a,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa672,\r
-0xa674, 0xa67d,\r
-0xa67f, 0xa6f1,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8e0, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92d,\r
-0xa930, 0xa953,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9c0,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf6,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabec, 0xabed,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe00, 0xfe0f,\r
-0xfe20, 0xfe2f,\r
-0xfe33, 0xfe34,\r
-0xfe4d, 0xfe4f,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff3f, 0xff3f,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x101fd, 0x101fd,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x102e0, 0x102e0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a38, 0x10a3a,\r
-0x10a3f, 0x10a3f,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae6,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f50,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11046,\r
-0x11066, 0x1106f,\r
-0x1107f, 0x110ba,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11134,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11173,\r
-0x11176, 0x11176,\r
-0x11180, 0x111c4,\r
-0x111c9, 0x111cc,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112ea,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133b, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134d,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11366, 0x1136c,\r
-0x11370, 0x11374,\r
-0x11400, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145e, 0x1145f,\r
-0x11480, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115c0,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172b,\r
-0x11730, 0x11739,\r
-0x11800, 0x1183a,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a3e,\r
-0x11a47, 0x11a47,\r
-0x11a50, 0x11a99,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16af0, 0x16af4,\r
-0x16b00, 0x16b36,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9d, 0x1bc9e,\r
-0x1d165, 0x1d169,\r
-0x1d16d, 0x1d172,\r
-0x1d17b, 0x1d182,\r
-0x1d185, 0x1d18b,\r
-0x1d1aa, 0x1d1ad,\r
-0x1d242, 0x1d244,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1da00, 0x1da36,\r
-0x1da3b, 0x1da6c,\r
-0x1da75, 0x1da75,\r
-0x1da84, 0x1da84,\r
-0x1da9b, 0x1da9f,\r
-0x1daa1, 0x1daaf,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e130, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e8d0, 0x1e8d6,\r
-0x1e900, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-0xe0100, 0xe01ef,\r
-}; /* END of CR_Word */\r
-\r
-/* PROPERTY: 'Alnum': POSIX [[:Alnum:]] */\r
-static const OnigCodePoint\r
-CR_Alnum[] = { 715,\r
-0x0030, 0x0039,\r
-0x0041, 0x005a,\r
-0x0061, 0x007a,\r
-0x00aa, 0x00aa,\r
-0x00b5, 0x00b5,\r
-0x00ba, 0x00ba,\r
-0x00c0, 0x00d6,\r
-0x00d8, 0x00f6,\r
-0x00f8, 0x02c1,\r
-0x02c6, 0x02d1,\r
-0x02e0, 0x02e4,\r
-0x02ec, 0x02ec,\r
-0x02ee, 0x02ee,\r
-0x0345, 0x0345,\r
-0x0370, 0x0374,\r
-0x0376, 0x0377,\r
-0x037a, 0x037d,\r
-0x037f, 0x037f,\r
-0x0386, 0x0386,\r
-0x0388, 0x038a,\r
-0x038c, 0x038c,\r
-0x038e, 0x03a1,\r
-0x03a3, 0x03f5,\r
-0x03f7, 0x0481,\r
-0x048a, 0x052f,\r
-0x0531, 0x0556,\r
-0x0559, 0x0559,\r
-0x0560, 0x0588,\r
-0x05b0, 0x05bd,\r
-0x05bf, 0x05bf,\r
-0x05c1, 0x05c2,\r
-0x05c4, 0x05c5,\r
-0x05c7, 0x05c7,\r
-0x05d0, 0x05ea,\r
-0x05ef, 0x05f2,\r
-0x0610, 0x061a,\r
-0x0620, 0x0657,\r
-0x0659, 0x0669,\r
-0x066e, 0x06d3,\r
-0x06d5, 0x06dc,\r
-0x06e1, 0x06e8,\r
-0x06ed, 0x06fc,\r
-0x06ff, 0x06ff,\r
-0x0710, 0x073f,\r
-0x074d, 0x07b1,\r
-0x07c0, 0x07ea,\r
-0x07f4, 0x07f5,\r
-0x07fa, 0x07fa,\r
-0x0800, 0x0817,\r
-0x081a, 0x082c,\r
-0x0840, 0x0858,\r
-0x0860, 0x086a,\r
-0x08a0, 0x08b4,\r
-0x08b6, 0x08bd,\r
-0x08d4, 0x08df,\r
-0x08e3, 0x08e9,\r
-0x08f0, 0x093b,\r
-0x093d, 0x094c,\r
-0x094e, 0x0950,\r
-0x0955, 0x0963,\r
-0x0966, 0x096f,\r
-0x0971, 0x0983,\r
-0x0985, 0x098c,\r
-0x098f, 0x0990,\r
-0x0993, 0x09a8,\r
-0x09aa, 0x09b0,\r
-0x09b2, 0x09b2,\r
-0x09b6, 0x09b9,\r
-0x09bd, 0x09c4,\r
-0x09c7, 0x09c8,\r
-0x09cb, 0x09cc,\r
-0x09ce, 0x09ce,\r
-0x09d7, 0x09d7,\r
-0x09dc, 0x09dd,\r
-0x09df, 0x09e3,\r
-0x09e6, 0x09f1,\r
-0x09fc, 0x09fc,\r
-0x0a01, 0x0a03,\r
-0x0a05, 0x0a0a,\r
-0x0a0f, 0x0a10,\r
-0x0a13, 0x0a28,\r
-0x0a2a, 0x0a30,\r
-0x0a32, 0x0a33,\r
-0x0a35, 0x0a36,\r
-0x0a38, 0x0a39,\r
-0x0a3e, 0x0a42,\r
-0x0a47, 0x0a48,\r
-0x0a4b, 0x0a4c,\r
-0x0a51, 0x0a51,\r
-0x0a59, 0x0a5c,\r
-0x0a5e, 0x0a5e,\r
-0x0a66, 0x0a75,\r
-0x0a81, 0x0a83,\r
-0x0a85, 0x0a8d,\r
-0x0a8f, 0x0a91,\r
-0x0a93, 0x0aa8,\r
-0x0aaa, 0x0ab0,\r
-0x0ab2, 0x0ab3,\r
-0x0ab5, 0x0ab9,\r
-0x0abd, 0x0ac5,\r
-0x0ac7, 0x0ac9,\r
-0x0acb, 0x0acc,\r
-0x0ad0, 0x0ad0,\r
-0x0ae0, 0x0ae3,\r
-0x0ae6, 0x0aef,\r
-0x0af9, 0x0afc,\r
-0x0b01, 0x0b03,\r
-0x0b05, 0x0b0c,\r
-0x0b0f, 0x0b10,\r
-0x0b13, 0x0b28,\r
-0x0b2a, 0x0b30,\r
-0x0b32, 0x0b33,\r
-0x0b35, 0x0b39,\r
-0x0b3d, 0x0b44,\r
-0x0b47, 0x0b48,\r
-0x0b4b, 0x0b4c,\r
-0x0b56, 0x0b57,\r
-0x0b5c, 0x0b5d,\r
-0x0b5f, 0x0b63,\r
-0x0b66, 0x0b6f,\r
-0x0b71, 0x0b71,\r
-0x0b82, 0x0b83,\r
-0x0b85, 0x0b8a,\r
-0x0b8e, 0x0b90,\r
-0x0b92, 0x0b95,\r
-0x0b99, 0x0b9a,\r
-0x0b9c, 0x0b9c,\r
-0x0b9e, 0x0b9f,\r
-0x0ba3, 0x0ba4,\r
-0x0ba8, 0x0baa,\r
-0x0bae, 0x0bb9,\r
-0x0bbe, 0x0bc2,\r
-0x0bc6, 0x0bc8,\r
-0x0bca, 0x0bcc,\r
-0x0bd0, 0x0bd0,\r
-0x0bd7, 0x0bd7,\r
-0x0be6, 0x0bef,\r
-0x0c00, 0x0c03,\r
-0x0c05, 0x0c0c,\r
-0x0c0e, 0x0c10,\r
-0x0c12, 0x0c28,\r
-0x0c2a, 0x0c39,\r
-0x0c3d, 0x0c44,\r
-0x0c46, 0x0c48,\r
-0x0c4a, 0x0c4c,\r
-0x0c55, 0x0c56,\r
-0x0c58, 0x0c5a,\r
-0x0c60, 0x0c63,\r
-0x0c66, 0x0c6f,\r
-0x0c80, 0x0c83,\r
-0x0c85, 0x0c8c,\r
-0x0c8e, 0x0c90,\r
-0x0c92, 0x0ca8,\r
-0x0caa, 0x0cb3,\r
-0x0cb5, 0x0cb9,\r
-0x0cbd, 0x0cc4,\r
-0x0cc6, 0x0cc8,\r
-0x0cca, 0x0ccc,\r
-0x0cd5, 0x0cd6,\r
-0x0cde, 0x0cde,\r
-0x0ce0, 0x0ce3,\r
-0x0ce6, 0x0cef,\r
-0x0cf1, 0x0cf2,\r
-0x0d00, 0x0d03,\r
-0x0d05, 0x0d0c,\r
-0x0d0e, 0x0d10,\r
-0x0d12, 0x0d3a,\r
-0x0d3d, 0x0d44,\r
-0x0d46, 0x0d48,\r
-0x0d4a, 0x0d4c,\r
-0x0d4e, 0x0d4e,\r
-0x0d54, 0x0d57,\r
-0x0d5f, 0x0d63,\r
-0x0d66, 0x0d6f,\r
-0x0d7a, 0x0d7f,\r
-0x0d82, 0x0d83,\r
-0x0d85, 0x0d96,\r
-0x0d9a, 0x0db1,\r
-0x0db3, 0x0dbb,\r
-0x0dbd, 0x0dbd,\r
-0x0dc0, 0x0dc6,\r
-0x0dcf, 0x0dd4,\r
-0x0dd6, 0x0dd6,\r
-0x0dd8, 0x0ddf,\r
-0x0de6, 0x0def,\r
-0x0df2, 0x0df3,\r
-0x0e01, 0x0e3a,\r
-0x0e40, 0x0e46,\r
-0x0e4d, 0x0e4d,\r
-0x0e50, 0x0e59,\r
-0x0e81, 0x0e82,\r
-0x0e84, 0x0e84,\r
-0x0e86, 0x0e8a,\r
-0x0e8c, 0x0ea3,\r
-0x0ea5, 0x0ea5,\r
-0x0ea7, 0x0eb9,\r
-0x0ebb, 0x0ebd,\r
-0x0ec0, 0x0ec4,\r
-0x0ec6, 0x0ec6,\r
-0x0ecd, 0x0ecd,\r
-0x0ed0, 0x0ed9,\r
-0x0edc, 0x0edf,\r
-0x0f00, 0x0f00,\r
-0x0f20, 0x0f29,\r
-0x0f40, 0x0f47,\r
-0x0f49, 0x0f6c,\r
-0x0f71, 0x0f81,\r
-0x0f88, 0x0f97,\r
-0x0f99, 0x0fbc,\r
-0x1000, 0x1036,\r
-0x1038, 0x1038,\r
-0x103b, 0x1049,\r
-0x1050, 0x109d,\r
-0x10a0, 0x10c5,\r
-0x10c7, 0x10c7,\r
-0x10cd, 0x10cd,\r
-0x10d0, 0x10fa,\r
-0x10fc, 0x1248,\r
-0x124a, 0x124d,\r
-0x1250, 0x1256,\r
-0x1258, 0x1258,\r
-0x125a, 0x125d,\r
-0x1260, 0x1288,\r
-0x128a, 0x128d,\r
-0x1290, 0x12b0,\r
-0x12b2, 0x12b5,\r
-0x12b8, 0x12be,\r
-0x12c0, 0x12c0,\r
-0x12c2, 0x12c5,\r
-0x12c8, 0x12d6,\r
-0x12d8, 0x1310,\r
-0x1312, 0x1315,\r
-0x1318, 0x135a,\r
-0x1380, 0x138f,\r
-0x13a0, 0x13f5,\r
-0x13f8, 0x13fd,\r
-0x1401, 0x166c,\r
-0x166f, 0x167f,\r
-0x1681, 0x169a,\r
-0x16a0, 0x16ea,\r
-0x16ee, 0x16f8,\r
-0x1700, 0x170c,\r
-0x170e, 0x1713,\r
-0x1720, 0x1733,\r
-0x1740, 0x1753,\r
-0x1760, 0x176c,\r
-0x176e, 0x1770,\r
-0x1772, 0x1773,\r
-0x1780, 0x17b3,\r
-0x17b6, 0x17c8,\r
-0x17d7, 0x17d7,\r
-0x17dc, 0x17dc,\r
-0x17e0, 0x17e9,\r
-0x1810, 0x1819,\r
-0x1820, 0x1878,\r
-0x1880, 0x18aa,\r
-0x18b0, 0x18f5,\r
-0x1900, 0x191e,\r
-0x1920, 0x192b,\r
-0x1930, 0x1938,\r
-0x1946, 0x196d,\r
-0x1970, 0x1974,\r
-0x1980, 0x19ab,\r
-0x19b0, 0x19c9,\r
-0x19d0, 0x19d9,\r
-0x1a00, 0x1a1b,\r
-0x1a20, 0x1a5e,\r
-0x1a61, 0x1a74,\r
-0x1a80, 0x1a89,\r
-0x1a90, 0x1a99,\r
-0x1aa7, 0x1aa7,\r
-0x1b00, 0x1b33,\r
-0x1b35, 0x1b43,\r
-0x1b45, 0x1b4b,\r
-0x1b50, 0x1b59,\r
-0x1b80, 0x1ba9,\r
-0x1bac, 0x1be5,\r
-0x1be7, 0x1bf1,\r
-0x1c00, 0x1c36,\r
-0x1c40, 0x1c49,\r
-0x1c4d, 0x1c7d,\r
-0x1c80, 0x1c88,\r
-0x1c90, 0x1cba,\r
-0x1cbd, 0x1cbf,\r
-0x1ce9, 0x1cec,\r
-0x1cee, 0x1cf3,\r
-0x1cf5, 0x1cf6,\r
-0x1cfa, 0x1cfa,\r
-0x1d00, 0x1dbf,\r
-0x1de7, 0x1df4,\r
-0x1e00, 0x1f15,\r
-0x1f18, 0x1f1d,\r
-0x1f20, 0x1f45,\r
-0x1f48, 0x1f4d,\r
-0x1f50, 0x1f57,\r
-0x1f59, 0x1f59,\r
-0x1f5b, 0x1f5b,\r
-0x1f5d, 0x1f5d,\r
-0x1f5f, 0x1f7d,\r
-0x1f80, 0x1fb4,\r
-0x1fb6, 0x1fbc,\r
-0x1fbe, 0x1fbe,\r
-0x1fc2, 0x1fc4,\r
-0x1fc6, 0x1fcc,\r
-0x1fd0, 0x1fd3,\r
-0x1fd6, 0x1fdb,\r
-0x1fe0, 0x1fec,\r
-0x1ff2, 0x1ff4,\r
-0x1ff6, 0x1ffc,\r
-0x2071, 0x2071,\r
-0x207f, 0x207f,\r
-0x2090, 0x209c,\r
-0x2102, 0x2102,\r
-0x2107, 0x2107,\r
-0x210a, 0x2113,\r
-0x2115, 0x2115,\r
-0x2119, 0x211d,\r
-0x2124, 0x2124,\r
-0x2126, 0x2126,\r
-0x2128, 0x2128,\r
-0x212a, 0x212d,\r
-0x212f, 0x2139,\r
-0x213c, 0x213f,\r
-0x2145, 0x2149,\r
-0x214e, 0x214e,\r
-0x2160, 0x2188,\r
-0x24b6, 0x24e9,\r
-0x2c00, 0x2c2e,\r
-0x2c30, 0x2c5e,\r
-0x2c60, 0x2ce4,\r
-0x2ceb, 0x2cee,\r
-0x2cf2, 0x2cf3,\r
-0x2d00, 0x2d25,\r
-0x2d27, 0x2d27,\r
-0x2d2d, 0x2d2d,\r
-0x2d30, 0x2d67,\r
-0x2d6f, 0x2d6f,\r
-0x2d80, 0x2d96,\r
-0x2da0, 0x2da6,\r
-0x2da8, 0x2dae,\r
-0x2db0, 0x2db6,\r
-0x2db8, 0x2dbe,\r
-0x2dc0, 0x2dc6,\r
-0x2dc8, 0x2dce,\r
-0x2dd0, 0x2dd6,\r
-0x2dd8, 0x2dde,\r
-0x2de0, 0x2dff,\r
-0x2e2f, 0x2e2f,\r
-0x3005, 0x3007,\r
-0x3021, 0x3029,\r
-0x3031, 0x3035,\r
-0x3038, 0x303c,\r
-0x3041, 0x3096,\r
-0x309d, 0x309f,\r
-0x30a1, 0x30fa,\r
-0x30fc, 0x30ff,\r
-0x3105, 0x312f,\r
-0x3131, 0x318e,\r
-0x31a0, 0x31ba,\r
-0x31f0, 0x31ff,\r
-0x3400, 0x4db5,\r
-0x4e00, 0x9fef,\r
-0xa000, 0xa48c,\r
-0xa4d0, 0xa4fd,\r
-0xa500, 0xa60c,\r
-0xa610, 0xa62b,\r
-0xa640, 0xa66e,\r
-0xa674, 0xa67b,\r
-0xa67f, 0xa6ef,\r
-0xa717, 0xa71f,\r
-0xa722, 0xa788,\r
-0xa78b, 0xa7bf,\r
-0xa7c2, 0xa7c6,\r
-0xa7f7, 0xa805,\r
-0xa807, 0xa827,\r
-0xa840, 0xa873,\r
-0xa880, 0xa8c3,\r
-0xa8c5, 0xa8c5,\r
-0xa8d0, 0xa8d9,\r
-0xa8f2, 0xa8f7,\r
-0xa8fb, 0xa8fb,\r
-0xa8fd, 0xa92a,\r
-0xa930, 0xa952,\r
-0xa960, 0xa97c,\r
-0xa980, 0xa9b2,\r
-0xa9b4, 0xa9bf,\r
-0xa9cf, 0xa9d9,\r
-0xa9e0, 0xa9fe,\r
-0xaa00, 0xaa36,\r
-0xaa40, 0xaa4d,\r
-0xaa50, 0xaa59,\r
-0xaa60, 0xaa76,\r
-0xaa7a, 0xaabe,\r
-0xaac0, 0xaac0,\r
-0xaac2, 0xaac2,\r
-0xaadb, 0xaadd,\r
-0xaae0, 0xaaef,\r
-0xaaf2, 0xaaf5,\r
-0xab01, 0xab06,\r
-0xab09, 0xab0e,\r
-0xab11, 0xab16,\r
-0xab20, 0xab26,\r
-0xab28, 0xab2e,\r
-0xab30, 0xab5a,\r
-0xab5c, 0xab67,\r
-0xab70, 0xabea,\r
-0xabf0, 0xabf9,\r
-0xac00, 0xd7a3,\r
-0xd7b0, 0xd7c6,\r
-0xd7cb, 0xd7fb,\r
-0xf900, 0xfa6d,\r
-0xfa70, 0xfad9,\r
-0xfb00, 0xfb06,\r
-0xfb13, 0xfb17,\r
-0xfb1d, 0xfb28,\r
-0xfb2a, 0xfb36,\r
-0xfb38, 0xfb3c,\r
-0xfb3e, 0xfb3e,\r
-0xfb40, 0xfb41,\r
-0xfb43, 0xfb44,\r
-0xfb46, 0xfbb1,\r
-0xfbd3, 0xfd3d,\r
-0xfd50, 0xfd8f,\r
-0xfd92, 0xfdc7,\r
-0xfdf0, 0xfdfb,\r
-0xfe70, 0xfe74,\r
-0xfe76, 0xfefc,\r
-0xff10, 0xff19,\r
-0xff21, 0xff3a,\r
-0xff41, 0xff5a,\r
-0xff66, 0xffbe,\r
-0xffc2, 0xffc7,\r
-0xffca, 0xffcf,\r
-0xffd2, 0xffd7,\r
-0xffda, 0xffdc,\r
-0x10000, 0x1000b,\r
-0x1000d, 0x10026,\r
-0x10028, 0x1003a,\r
-0x1003c, 0x1003d,\r
-0x1003f, 0x1004d,\r
-0x10050, 0x1005d,\r
-0x10080, 0x100fa,\r
-0x10140, 0x10174,\r
-0x10280, 0x1029c,\r
-0x102a0, 0x102d0,\r
-0x10300, 0x1031f,\r
-0x1032d, 0x1034a,\r
-0x10350, 0x1037a,\r
-0x10380, 0x1039d,\r
-0x103a0, 0x103c3,\r
-0x103c8, 0x103cf,\r
-0x103d1, 0x103d5,\r
-0x10400, 0x1049d,\r
-0x104a0, 0x104a9,\r
-0x104b0, 0x104d3,\r
-0x104d8, 0x104fb,\r
-0x10500, 0x10527,\r
-0x10530, 0x10563,\r
-0x10600, 0x10736,\r
-0x10740, 0x10755,\r
-0x10760, 0x10767,\r
-0x10800, 0x10805,\r
-0x10808, 0x10808,\r
-0x1080a, 0x10835,\r
-0x10837, 0x10838,\r
-0x1083c, 0x1083c,\r
-0x1083f, 0x10855,\r
-0x10860, 0x10876,\r
-0x10880, 0x1089e,\r
-0x108e0, 0x108f2,\r
-0x108f4, 0x108f5,\r
-0x10900, 0x10915,\r
-0x10920, 0x10939,\r
-0x10980, 0x109b7,\r
-0x109be, 0x109bf,\r
-0x10a00, 0x10a03,\r
-0x10a05, 0x10a06,\r
-0x10a0c, 0x10a13,\r
-0x10a15, 0x10a17,\r
-0x10a19, 0x10a35,\r
-0x10a60, 0x10a7c,\r
-0x10a80, 0x10a9c,\r
-0x10ac0, 0x10ac7,\r
-0x10ac9, 0x10ae4,\r
-0x10b00, 0x10b35,\r
-0x10b40, 0x10b55,\r
-0x10b60, 0x10b72,\r
-0x10b80, 0x10b91,\r
-0x10c00, 0x10c48,\r
-0x10c80, 0x10cb2,\r
-0x10cc0, 0x10cf2,\r
-0x10d00, 0x10d27,\r
-0x10d30, 0x10d39,\r
-0x10f00, 0x10f1c,\r
-0x10f27, 0x10f27,\r
-0x10f30, 0x10f45,\r
-0x10fe0, 0x10ff6,\r
-0x11000, 0x11045,\r
-0x11066, 0x1106f,\r
-0x11082, 0x110b8,\r
-0x110d0, 0x110e8,\r
-0x110f0, 0x110f9,\r
-0x11100, 0x11132,\r
-0x11136, 0x1113f,\r
-0x11144, 0x11146,\r
-0x11150, 0x11172,\r
-0x11176, 0x11176,\r
-0x11180, 0x111bf,\r
-0x111c1, 0x111c4,\r
-0x111d0, 0x111da,\r
-0x111dc, 0x111dc,\r
-0x11200, 0x11211,\r
-0x11213, 0x11234,\r
-0x11237, 0x11237,\r
-0x1123e, 0x1123e,\r
-0x11280, 0x11286,\r
-0x11288, 0x11288,\r
-0x1128a, 0x1128d,\r
-0x1128f, 0x1129d,\r
-0x1129f, 0x112a8,\r
-0x112b0, 0x112e8,\r
-0x112f0, 0x112f9,\r
-0x11300, 0x11303,\r
-0x11305, 0x1130c,\r
-0x1130f, 0x11310,\r
-0x11313, 0x11328,\r
-0x1132a, 0x11330,\r
-0x11332, 0x11333,\r
-0x11335, 0x11339,\r
-0x1133d, 0x11344,\r
-0x11347, 0x11348,\r
-0x1134b, 0x1134c,\r
-0x11350, 0x11350,\r
-0x11357, 0x11357,\r
-0x1135d, 0x11363,\r
-0x11400, 0x11441,\r
-0x11443, 0x11445,\r
-0x11447, 0x1144a,\r
-0x11450, 0x11459,\r
-0x1145f, 0x1145f,\r
-0x11480, 0x114c1,\r
-0x114c4, 0x114c5,\r
-0x114c7, 0x114c7,\r
-0x114d0, 0x114d9,\r
-0x11580, 0x115b5,\r
-0x115b8, 0x115be,\r
-0x115d8, 0x115dd,\r
-0x11600, 0x1163e,\r
-0x11640, 0x11640,\r
-0x11644, 0x11644,\r
-0x11650, 0x11659,\r
-0x11680, 0x116b5,\r
-0x116b8, 0x116b8,\r
-0x116c0, 0x116c9,\r
-0x11700, 0x1171a,\r
-0x1171d, 0x1172a,\r
-0x11730, 0x11739,\r
-0x11800, 0x11838,\r
-0x118a0, 0x118e9,\r
-0x118ff, 0x118ff,\r
-0x119a0, 0x119a7,\r
-0x119aa, 0x119d7,\r
-0x119da, 0x119df,\r
-0x119e1, 0x119e1,\r
-0x119e3, 0x119e4,\r
-0x11a00, 0x11a32,\r
-0x11a35, 0x11a3e,\r
-0x11a50, 0x11a97,\r
-0x11a9d, 0x11a9d,\r
-0x11ac0, 0x11af8,\r
-0x11c00, 0x11c08,\r
-0x11c0a, 0x11c36,\r
-0x11c38, 0x11c3e,\r
-0x11c40, 0x11c40,\r
-0x11c50, 0x11c59,\r
-0x11c72, 0x11c8f,\r
-0x11c92, 0x11ca7,\r
-0x11ca9, 0x11cb6,\r
-0x11d00, 0x11d06,\r
-0x11d08, 0x11d09,\r
-0x11d0b, 0x11d36,\r
-0x11d3a, 0x11d3a,\r
-0x11d3c, 0x11d3d,\r
-0x11d3f, 0x11d41,\r
-0x11d43, 0x11d43,\r
-0x11d46, 0x11d47,\r
-0x11d50, 0x11d59,\r
-0x11d60, 0x11d65,\r
-0x11d67, 0x11d68,\r
-0x11d6a, 0x11d8e,\r
-0x11d90, 0x11d91,\r
-0x11d93, 0x11d96,\r
-0x11d98, 0x11d98,\r
-0x11da0, 0x11da9,\r
-0x11ee0, 0x11ef6,\r
-0x12000, 0x12399,\r
-0x12400, 0x1246e,\r
-0x12480, 0x12543,\r
-0x13000, 0x1342e,\r
-0x14400, 0x14646,\r
-0x16800, 0x16a38,\r
-0x16a40, 0x16a5e,\r
-0x16a60, 0x16a69,\r
-0x16ad0, 0x16aed,\r
-0x16b00, 0x16b2f,\r
-0x16b40, 0x16b43,\r
-0x16b50, 0x16b59,\r
-0x16b63, 0x16b77,\r
-0x16b7d, 0x16b8f,\r
-0x16e40, 0x16e7f,\r
-0x16f00, 0x16f4a,\r
-0x16f4f, 0x16f87,\r
-0x16f8f, 0x16f9f,\r
-0x16fe0, 0x16fe1,\r
-0x16fe3, 0x16fe3,\r
-0x17000, 0x187f7,\r
-0x18800, 0x18af2,\r
-0x1b000, 0x1b11e,\r
-0x1b150, 0x1b152,\r
-0x1b164, 0x1b167,\r
-0x1b170, 0x1b2fb,\r
-0x1bc00, 0x1bc6a,\r
-0x1bc70, 0x1bc7c,\r
-0x1bc80, 0x1bc88,\r
-0x1bc90, 0x1bc99,\r
-0x1bc9e, 0x1bc9e,\r
-0x1d400, 0x1d454,\r
-0x1d456, 0x1d49c,\r
-0x1d49e, 0x1d49f,\r
-0x1d4a2, 0x1d4a2,\r
-0x1d4a5, 0x1d4a6,\r
-0x1d4a9, 0x1d4ac,\r
-0x1d4ae, 0x1d4b9,\r
-0x1d4bb, 0x1d4bb,\r
-0x1d4bd, 0x1d4c3,\r
-0x1d4c5, 0x1d505,\r
-0x1d507, 0x1d50a,\r
-0x1d50d, 0x1d514,\r
-0x1d516, 0x1d51c,\r
-0x1d51e, 0x1d539,\r
-0x1d53b, 0x1d53e,\r
-0x1d540, 0x1d544,\r
-0x1d546, 0x1d546,\r
-0x1d54a, 0x1d550,\r
-0x1d552, 0x1d6a5,\r
-0x1d6a8, 0x1d6c0,\r
-0x1d6c2, 0x1d6da,\r
-0x1d6dc, 0x1d6fa,\r
-0x1d6fc, 0x1d714,\r
-0x1d716, 0x1d734,\r
-0x1d736, 0x1d74e,\r
-0x1d750, 0x1d76e,\r
-0x1d770, 0x1d788,\r
-0x1d78a, 0x1d7a8,\r
-0x1d7aa, 0x1d7c2,\r
-0x1d7c4, 0x1d7cb,\r
-0x1d7ce, 0x1d7ff,\r
-0x1e000, 0x1e006,\r
-0x1e008, 0x1e018,\r
-0x1e01b, 0x1e021,\r
-0x1e023, 0x1e024,\r
-0x1e026, 0x1e02a,\r
-0x1e100, 0x1e12c,\r
-0x1e137, 0x1e13d,\r
-0x1e140, 0x1e149,\r
-0x1e14e, 0x1e14e,\r
-0x1e2c0, 0x1e2eb,\r
-0x1e2f0, 0x1e2f9,\r
-0x1e800, 0x1e8c4,\r
-0x1e900, 0x1e943,\r
-0x1e947, 0x1e947,\r
-0x1e94b, 0x1e94b,\r
-0x1e950, 0x1e959,\r
-0x1ee00, 0x1ee03,\r
-0x1ee05, 0x1ee1f,\r
-0x1ee21, 0x1ee22,\r
-0x1ee24, 0x1ee24,\r
-0x1ee27, 0x1ee27,\r
-0x1ee29, 0x1ee32,\r
-0x1ee34, 0x1ee37,\r
-0x1ee39, 0x1ee39,\r
-0x1ee3b, 0x1ee3b,\r
-0x1ee42, 0x1ee42,\r
-0x1ee47, 0x1ee47,\r
-0x1ee49, 0x1ee49,\r
-0x1ee4b, 0x1ee4b,\r
-0x1ee4d, 0x1ee4f,\r
-0x1ee51, 0x1ee52,\r
-0x1ee54, 0x1ee54,\r
-0x1ee57, 0x1ee57,\r
-0x1ee59, 0x1ee59,\r
-0x1ee5b, 0x1ee5b,\r
-0x1ee5d, 0x1ee5d,\r
-0x1ee5f, 0x1ee5f,\r
-0x1ee61, 0x1ee62,\r
-0x1ee64, 0x1ee64,\r
-0x1ee67, 0x1ee6a,\r
-0x1ee6c, 0x1ee72,\r
-0x1ee74, 0x1ee77,\r
-0x1ee79, 0x1ee7c,\r
-0x1ee7e, 0x1ee7e,\r
-0x1ee80, 0x1ee89,\r
-0x1ee8b, 0x1ee9b,\r
-0x1eea1, 0x1eea3,\r
-0x1eea5, 0x1eea9,\r
-0x1eeab, 0x1eebb,\r
-0x1f130, 0x1f149,\r
-0x1f150, 0x1f169,\r
-0x1f170, 0x1f189,\r
-0x20000, 0x2a6d6,\r
-0x2a700, 0x2b734,\r
-0x2b740, 0x2b81d,\r
-0x2b820, 0x2cea1,\r
-0x2ceb0, 0x2ebe0,\r
-0x2f800, 0x2fa1d,\r
-}; /* END of CR_Alnum */\r
-\r
-/* PROPERTY: 'ASCII': POSIX [[:ASCII:]] */\r
-static const OnigCodePoint\r
-CR_ASCII[] = { 1,\r
-0x0000, 0x007f,\r
-}; /* END of CR_ASCII */\r
-\r
-\r
-static const OnigCodePoint*\r
-const CodeRanges[] = {\r
- CR_NEWLINE,\r
- CR_Alpha,\r
- CR_Blank,\r
- CR_Cntrl,\r
- CR_Digit,\r
- CR_Graph,\r
- CR_Lower,\r
- CR_Print,\r
- CR_Punct,\r
- CR_Space,\r
- CR_Upper,\r
- CR_XDigit,\r
- CR_Word,\r
- CR_Alnum,\r
- CR_ASCII,\r
-};\r
-\r
-#define pool_offset(s) offsetof(struct unicode_prop_name_pool_t, unicode_prop_name_pool_str##s)\r
-\r
-\r
-#define TOTAL_KEYWORDS 15\r
-#define MIN_WORD_LENGTH 4\r
-#define MAX_WORD_LENGTH 7\r
-#define MIN_HASH_VALUE 5\r
-#define MAX_HASH_VALUE 19\r
-/* maximum key range = 15, duplicates = 0 */\r
-\r
-#ifndef GPERF_DOWNCASE\r
-#define GPERF_DOWNCASE 1\r
-static unsigned char gperf_downcase[256] =\r
- {\r
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,\r
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,\r
- 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,\r
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,\r
- 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,\r
- 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,\r
- 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,\r
- 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,\r
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,\r
- 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,\r
- 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,\r
- 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,\r
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,\r
- 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,\r
- 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,\r
- 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,\r
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,\r
- 255\r
- };\r
-#endif\r
-\r
-#ifndef GPERF_CASE_STRNCMP\r
-#define GPERF_CASE_STRNCMP 1\r
-static int\r
-gperf_case_strncmp (register const char *s1, register const char *s2, register size_t n)\r
-{\r
- for (; n > 0;)\r
- {\r
- unsigned char c1 = gperf_downcase[(unsigned char)*s1++];\r
- unsigned char c2 = gperf_downcase[(unsigned char)*s2++];\r
- if (c1 != 0 && c1 == c2)\r
- {\r
- n--;\r
- continue;\r
- }\r
- return (int)c1 - (int)c2;\r
- }\r
- return 0;\r
-}\r
-#endif\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-static unsigned int\r
-hash (register const char *str, register size_t len)\r
-{\r
- static const unsigned char asso_values[] =\r
- {\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 2, 12, 5, 3, 20,\r
- 20, 10, 20, 0, 20, 20, 9, 20, 1, 20,\r
- 0, 20, 9, 7, 3, 6, 20, 2, 3, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 2, 12, 5,\r
- 3, 20, 20, 10, 20, 0, 20, 20, 9, 20,\r
- 1, 20, 0, 20, 9, 7, 3, 6, 20, 2,\r
- 3, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,\r
- 20, 20, 20, 20, 20, 20\r
- };\r
- return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];\r
-}\r
-\r
-struct unicode_prop_name_pool_t\r
- {\r
- char unicode_prop_name_pool_str5[sizeof("print")];\r
- char unicode_prop_name_pool_str6[sizeof("punct")];\r
- char unicode_prop_name_pool_str7[sizeof("alpha")];\r
- char unicode_prop_name_pool_str8[sizeof("alnum")];\r
- char unicode_prop_name_pool_str9[sizeof("xdigit")];\r
- char unicode_prop_name_pool_str10[sizeof("newline")];\r
- char unicode_prop_name_pool_str11[sizeof("upper")];\r
- char unicode_prop_name_pool_str12[sizeof("ascii")];\r
- char unicode_prop_name_pool_str13[sizeof("cntrl")];\r
- char unicode_prop_name_pool_str14[sizeof("space")];\r
- char unicode_prop_name_pool_str15[sizeof("word")];\r
- char unicode_prop_name_pool_str16[sizeof("lower")];\r
- char unicode_prop_name_pool_str17[sizeof("graph")];\r
- char unicode_prop_name_pool_str18[sizeof("digit")];\r
- char unicode_prop_name_pool_str19[sizeof("blank")];\r
- };\r
-static const struct unicode_prop_name_pool_t unicode_prop_name_pool_contents =\r
- {\r
- "print",\r
- "punct",\r
- "alpha",\r
- "alnum",\r
- "xdigit",\r
- "newline",\r
- "upper",\r
- "ascii",\r
- "cntrl",\r
- "space",\r
- "word",\r
- "lower",\r
- "graph",\r
- "digit",\r
- "blank"\r
- };\r
-#define unicode_prop_name_pool ((const char *) &unicode_prop_name_pool_contents)\r
-static const struct PoolPropertyNameCtype *\r
-unicode_lookup_property_name (register const char *str, register size_t len)\r
-{\r
- static const struct PoolPropertyNameCtype wordlist[] =\r
- {\r
- {-1}, {-1}, {-1}, {-1}, {-1},\r
-\r
- {pool_offset(5), 7},\r
-\r
- {pool_offset(6), 8},\r
-\r
- {pool_offset(7), 1},\r
-\r
- {pool_offset(8), 13},\r
-\r
- {pool_offset(9), 11},\r
-\r
- {pool_offset(10), 0},\r
-\r
- {pool_offset(11), 10},\r
-\r
- {pool_offset(12), 14},\r
-\r
- {pool_offset(13), 3},\r
-\r
- {pool_offset(14), 9},\r
-\r
- {pool_offset(15), 12},\r
-\r
- {pool_offset(16), 6},\r
-\r
- {pool_offset(17), 5},\r
-\r
- {pool_offset(18), 4},\r
-\r
- {pool_offset(19), 2}\r
- };\r
-\r
- if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)\r
- {\r
- register unsigned int key = hash (str, len);\r
-\r
- if (key <= MAX_HASH_VALUE)\r
- {\r
- register int o = wordlist[key].name;\r
- if (o >= 0)\r
- {\r
- register const char *s = o + unicode_prop_name_pool;\r
-\r
- if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strncmp (str, s, len) && s[len] == '\0')\r
- return &wordlist[key];\r
- }\r
- }\r
- }\r
- return 0;\r
-}\r
-\r
-\r
-\r
-#define PROPERTY_NAME_MAX_SIZE 17\r
-#define CODE_RANGES_NUM 15\r
-\r
-#define PROP_INDEX_NEWLINE 0\r
-#define PROP_INDEX_ALPHA 1\r
-#define PROP_INDEX_BLANK 2\r
-#define PROP_INDEX_CNTRL 3\r
-#define PROP_INDEX_DIGIT 4\r
-#define PROP_INDEX_GRAPH 5\r
-#define PROP_INDEX_LOWER 6\r
-#define PROP_INDEX_PRINT 7\r
-#define PROP_INDEX_PUNCT 8\r
-#define PROP_INDEX_SPACE 9\r
-#define PROP_INDEX_UPPER 10\r
-#define PROP_INDEX_XDIGIT 11\r
-#define PROP_INDEX_WORD 12\r
-#define PROP_INDEX_ALNUM 13\r
-#define PROP_INDEX_ASCII 14\r
+++ /dev/null
-/* This file was converted by gperf_unfold_key_conv.py\r
- from gperf output file. */\r
-/* ANSI-C code produced by gperf version 3.1 */\r
-/* Command-line: /usr/local/bin/gperf -n -C -T -c -t -j1 -L ANSI-C -F,-1,0 -N onigenc_unicode_unfold_key unicode_unfold_key.gperf */\r
-/* Computed positions: -k'1-3' */\r
-\r
-\r
-\r
-/* This gperf source file was generated by make_unicode_fold_data.py */\r
-\r
-/*-\r
- * Copyright (c) 2017-2018 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-//#include <string.h>\r
-#include "regenc.h"\r
-\r
-#define TOTAL_KEYWORDS 1487\r
-#define MIN_WORD_LENGTH 3\r
-#define MAX_WORD_LENGTH 3\r
-#define MIN_HASH_VALUE 10\r
-#define MAX_HASH_VALUE 1958\r
-/* maximum key range = 1949, duplicates = 0 */\r
-\r
-#ifdef __GNUC__\r
-__inline\r
-#else\r
-#ifdef __cplusplus\r
-inline\r
-#endif\r
-#endif\r
-/*ARGSUSED*/\r
-static unsigned int\r
-hash(OnigCodePoint codes[])\r
-{\r
- static const unsigned short asso_values[] =\r
- {\r
- 9, 5, 2, 111, 176, 1, 110, 1959, 1959, 1959,\r
- 1959, 1959, 1959, 13, 1959, 1959, 1959, 77, 1959, 1959,\r
- 63, 1959, 1959, 1959, 1959, 86, 1959, 1959, 1959, 7,\r
- 1959, 0, 3, 1959, 191, 624, 1536, 132, 1519, 613,\r
- 1513, 607, 1602, 586, 1505, 4, 1497, 570, 1492, 554,\r
- 1482, 907, 1601, 898, 1469, 595, 1468, 405, 1463, 546,\r
- 1458, 538, 1453, 474, 1444, 890, 1596, 877, 1419, 725,\r
- 1590, 698, 1588, 635, 1160, 682, 1021, 338, 1122, 671,\r
- 812, 559, 819, 1580, 756, 1082, 744, 1438, 637, 1428,\r
- 266, 1429, 1502, 1285, 1440, 1578, 467, 1419, 873, 490,\r
- 1380, 779, 731, 1057, 1261, 1034, 1567, 762, 1389, 495,\r
- 1510, 156, 648, 805, 1537, 862, 1523, 853, 1469, 845,\r
- 1252, 796, 342, 1297, 801, 1287, 542, 1408, 477, 1400,\r
- 237, 1109, 20, 1099, 548, 1067, 1, 1280, 326, 1043,\r
- 767, 1030, 756, 938, 598, 254, 26, 1275, 165, 1270,\r
- 149, 1575, 15, 1368, 133, 1202, 625, 403, 408, 373,\r
- 296, 1397, 283, 519, 1381, 503, 1372, 18, 6, 415,\r
- 1253, 769, 8, 484, 1358, 658, 1565, 464, 427, 244,\r
- 1241, 360, 1233, 390, 1350, 219, 377, 206, 1223, 328,\r
- 1211, 145, 1198, 454, 135, 73, 1020, 103, 1012, 63,\r
- 995, 53, 748, 196, 573, 116, 684, 93, 983, 83,\r
- 1004, 182, 735, 31, 713, 319, 977, 306, 706, 44,\r
- 836, 293, 1187, 280, 1135, 268, 671, 976, 1350, 447,\r
- 1182, 437, 964, 946, 351, 932, 1349, 923, 1090, 1194,\r
- 1175, 827, 1299, 1165, 1410, 1155, 1522, 1557, 313, 1146,\r
- 424, 1136, 233, 1130, 161, 1316, 93, 167, 134, 618,\r
- 1959, 1118, 128, 1342, 1959, 1335, 124, 1331, 75, 1327,\r
- 191, 1308, 45, 1545, 1959, 1534, 1, 230, 9, 643,\r
- 5, 1564, 40, 1553, 65, 531, 55, 993, 25, 1476,\r
- 2\r
- };\r
- return asso_values[(unsigned char)onig_codes_byte_at(codes, 2)+35] + asso_values[(unsigned char)onig_codes_byte_at(codes, 1)+1] + asso_values[(unsigned char)onig_codes_byte_at(codes, 0)];\r
-}\r
-\r
-const struct ByUnfoldKey *\r
-onigenc_unicode_unfold_key(OnigCodePoint code)\r
-{\r
- static const struct ByUnfoldKey wordlist[] =\r
- {\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1040a, 3441, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x01f1, 483, 1},\r
-\r
- {0x1e0a, 1882, 1},\r
-\r
- {0x040a, 1029, 1},\r
-\r
- {0x010a, 186, 1},\r
-\r
- {0x1f0a, 2243, 1},\r
-\r
- {0x2c0a, 2606, 1},\r
-\r
- {0x1f85, 154, 2},\r
-\r
- {0x0189, 619, 1},\r
-\r
- {0x1f89, 134, 2},\r
-\r
- {0x1ff3, 96, 2},\r
-\r
- {0x1c85, 954, 1},\r
-\r
- {0xab85, 1663, 1},\r
-\r
- {0x10c85, 3654, 1},\r
-\r
- {0xab89, 1675, 1},\r
-\r
- {0x10c89, 3666, 1},\r
-\r
- {0x1e84, 2066, 1},\r
-\r
- {0x2c75, 2738, 1},\r
-\r
- {0x0184, 360, 1},\r
-\r
- {0x1f84, 149, 2},\r
-\r
- {0x2c84, 2747, 1},\r
-\r
- {0xab75, 1615, 1},\r
-\r
- {0xa784, 3261, 1},\r
-\r
- {0x1c84, 954, 1},\r
-\r
- {0xab84, 1660, 1},\r
-\r
- {0x10c84, 3651, 1},\r
-\r
- {0x104b2, 3537, 1},\r
-\r
- {0x1f6f, 2378, 1},\r
-\r
- {0x2c6f, 604, 1},\r
-\r
- {0x1eb2, 2120, 1},\r
-\r
- {0x04b2, 1159, 1},\r
-\r
- {0x01b2, 700, 1},\r
-\r
- {0x1fb2, 249, 2},\r
-\r
- {0x2cb2, 2816, 1},\r
-\r
- {0xa684, 3096, 1},\r
-\r
- {0xa7b2, 709, 1},\r
-\r
- {0x1cb2, 1564, 1},\r
-\r
- {0xabb2, 1798, 1},\r
-\r
- {0x10cb2, 3789, 1},\r
-\r
- {0x104b8, 3555, 1},\r
-\r
- {0x01f7, 414, 1},\r
-\r
- {0x1ff7, 67, 3},\r
-\r
- {0x1eb8, 2129, 1},\r
-\r
- {0x04b8, 1168, 1},\r
-\r
- {0x01b8, 408, 1},\r
-\r
- {0x1fb8, 2423, 1},\r
-\r
- {0x2cb8, 2825, 1},\r
-\r
- {0x2ced, 2894, 1},\r
-\r
- {0xa7b8, 3315, 1},\r
-\r
- {0x1cb8, 1582, 1},\r
-\r
- {0xabb8, 1816, 1},\r
-\r
- {0x1ea6, 2102, 1},\r
-\r
- {0x04a6, 1141, 1},\r
-\r
- {0x01a6, 679, 1},\r
-\r
- {0x1fa6, 239, 2},\r
-\r
- {0x2ca6, 2798, 1},\r
-\r
- {0x1ffb, 2420, 1},\r
-\r
- {0xa7a6, 3303, 1},\r
-\r
- {0x1ca6, 1528, 1},\r
-\r
- {0xaba6, 1762, 1},\r
-\r
- {0x10ca6, 3753, 1},\r
-\r
- {0x1ea4, 2099, 1},\r
-\r
- {0x04a4, 1138, 1},\r
-\r
- {0x01a4, 390, 1},\r
-\r
- {0x1fa4, 229, 2},\r
-\r
- {0x2ca4, 2795, 1},\r
-\r
- {0x1ff9, 2408, 1},\r
-\r
- {0xa7a4, 3300, 1},\r
-\r
- {0x1ca4, 1522, 1},\r
-\r
- {0xaba4, 1756, 1},\r
-\r
- {0x10ca4, 3747, 1},\r
-\r
- {0x1ea0, 2093, 1},\r
-\r
- {0x04a0, 1132, 1},\r
-\r
- {0x01a0, 384, 1},\r
-\r
- {0x1fa0, 209, 2},\r
-\r
- {0x2ca0, 2789, 1},\r
-\r
- {0x1fe9, 2438, 1},\r
-\r
- {0xa7a0, 3294, 1},\r
-\r
- {0x1ca0, 1510, 1},\r
-\r
- {0xaba0, 1744, 1},\r
-\r
- {0x10ca0, 3735, 1},\r
-\r
- {0x1eae, 2114, 1},\r
-\r
- {0x04ae, 1153, 1},\r
-\r
- {0x01ae, 691, 1},\r
-\r
- {0x1fae, 239, 2},\r
-\r
- {0x2cae, 2810, 1},\r
-\r
- {0x13fd, 1855, 1},\r
-\r
- {0xa7ae, 655, 1},\r
-\r
- {0x1cae, 1552, 1},\r
-\r
- {0xabae, 1786, 1},\r
-\r
- {0x10cae, 3777, 1},\r
-\r
- {0x1eac, 2111, 1},\r
-\r
- {0x04ac, 1150, 1},\r
-\r
- {0x01ac, 396, 1},\r
-\r
- {0x1fac, 229, 2},\r
-\r
- {0x2cac, 2807, 1},\r
-\r
- {0x00dd, 162, 1},\r
-\r
- {0xa7ac, 637, 1},\r
-\r
- {0x1cac, 1546, 1},\r
-\r
- {0xabac, 1780, 1},\r
-\r
- {0x10cac, 3771, 1},\r
-\r
- {0x1ea2, 2096, 1},\r
-\r
- {0x04a2, 1135, 1},\r
-\r
- {0x01a2, 387, 1},\r
-\r
- {0x1fa2, 219, 2},\r
-\r
- {0x2ca2, 2792, 1},\r
-\r
- {0x10b2, 2954, 1},\r
-\r
- {0xa7a2, 3297, 1},\r
-\r
- {0x1ca2, 1516, 1},\r
-\r
- {0xaba2, 1750, 1},\r
-\r
- {0x10ca2, 3741, 1},\r
-\r
- {0x118b2, 3846, 1},\r
-\r
- {0x050a, 1291, 1},\r
-\r
- {0x020a, 517, 1},\r
-\r
- {0x1eaa, 2108, 1},\r
-\r
- {0x04aa, 1147, 1},\r
-\r
- {0x13fb, 1849, 1},\r
-\r
- {0x1faa, 219, 2},\r
-\r
- {0x2caa, 2804, 1},\r
-\r
- {0x10b8, 2972, 1},\r
-\r
- {0xa7aa, 646, 1},\r
-\r
- {0x1caa, 1540, 1},\r
-\r
- {0xabaa, 1774, 1},\r
-\r
- {0x10caa, 3765, 1},\r
-\r
- {0x118b8, 3864, 1},\r
-\r
- {0x1fe7, 47, 3},\r
-\r
- {0x13f9, 1843, 1},\r
-\r
- {0x10402, 3417, 1},\r
-\r
- {0x10a6, 2918, 1},\r
-\r
- {0x1fe3, 41, 3},\r
-\r
- {0x1e02, 1870, 1},\r
-\r
- {0x0402, 1005, 1},\r
-\r
- {0x0102, 174, 1},\r
-\r
- {0x118a6, 3810, 1},\r
-\r
- {0x2c02, 2582, 1},\r
-\r
- {0x019f, 673, 1},\r
-\r
- {0x1f9f, 204, 2},\r
-\r
- {0x00df, 24, 2},\r
-\r
- {0x10a4, 2912, 1},\r
-\r
- {0xab77, 1621, 1},\r
-\r
- {0x1c9f, 1507, 1},\r
-\r
- {0xab9f, 1741, 1},\r
-\r
- {0x10c9f, 3732, 1},\r
-\r
- {0x118a4, 3804, 1},\r
-\r
- {0x049c, 1126, 1},\r
-\r
- {0x019c, 664, 1},\r
-\r
- {0x1f9c, 189, 2},\r
-\r
- {0x2c9c, 2783, 1},\r
-\r
- {0x10a0, 2900, 1},\r
-\r
- {0xa79c, 3288, 1},\r
-\r
- {0x1c9c, 1498, 1},\r
-\r
- {0xab9c, 1732, 1},\r
-\r
- {0x10c9c, 3723, 1},\r
-\r
- {0x118a0, 3792, 1},\r
-\r
- {0x1e4c, 1981, 1},\r
-\r
- {0xab73, 1609, 1},\r
-\r
- {0x014c, 279, 1},\r
-\r
- {0x1f4c, 2339, 1},\r
-\r
- {0x10ae, 2942, 1},\r
-\r
- {0x004c, 31, 1},\r
-\r
- {0xa74c, 3192, 1},\r
-\r
- {0x01db, 450, 1},\r
-\r
- {0x1fdb, 2402, 1},\r
-\r
- {0x118ae, 3834, 1},\r
-\r
- {0x00db, 156, 1},\r
-\r
- {0x1ede, 2186, 1},\r
-\r
- {0x04de, 1225, 1},\r
-\r
- {0x01de, 456, 1},\r
-\r
- {0x10ac, 2936, 1},\r
-\r
- {0x2cde, 2882, 1},\r
-\r
- {0x00de, 165, 1},\r
-\r
- {0xab71, 1603, 1},\r
-\r
- {0xa64c, 3039, 1},\r
-\r
- {0x118ac, 3828, 1},\r
-\r
- {0x24b8, 2504, 1},\r
-\r
- {0x03f1, 802, 1},\r
-\r
- {0x03ff, 730, 1},\r
-\r
- {0x104b0, 3531, 1},\r
-\r
- {0x10a2, 2906, 1},\r
-\r
- {0x03f5, 758, 1},\r
-\r
- {0x1eb0, 2117, 1},\r
-\r
- {0x04b0, 1156, 1},\r
-\r
- {0x0389, 739, 1},\r
-\r
- {0x118a2, 3798, 1},\r
-\r
- {0x2cb0, 2813, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa7b0, 712, 1},\r
-\r
- {0x1cb0, 1558, 1},\r
-\r
- {0xabb0, 1792, 1},\r
-\r
- {0x10cb0, 3783, 1},\r
-\r
- {0x2165, 2462, 1},\r
-\r
- {0x10aa, 2930, 1},\r
-\r
- {0x1feb, 2414, 1},\r
-\r
- {0x2ceb, 2891, 1},\r
-\r
- {0x1ea8, 2105, 1},\r
-\r
- {0x04a8, 1144, 1},\r
-\r
- {0x118aa, 3822, 1},\r
-\r
- {0x1fa8, 209, 2},\r
-\r
- {0x2ca8, 2801, 1},\r
-\r
- {0x03fd, 724, 1},\r
-\r
- {0xa7a8, 3306, 1},\r
-\r
- {0x1ca8, 1534, 1},\r
-\r
- {0xaba8, 1768, 1},\r
-\r
- {0x10ca8, 3759, 1},\r
-\r
- {0x1e98, 38, 2},\r
-\r
- {0x0498, 1120, 1},\r
-\r
- {0x0198, 375, 1},\r
-\r
- {0x1f98, 169, 2},\r
-\r
- {0x2c98, 2777, 1},\r
-\r
- {0x2161, 2450, 1},\r
-\r
- {0xa798, 3282, 1},\r
-\r
- {0x1c98, 1486, 1},\r
-\r
- {0xab98, 1720, 1},\r
-\r
- {0x10c98, 3711, 1},\r
-\r
- {0x03f7, 890, 1},\r
-\r
- {0x216f, 2492, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e96, 16, 2},\r
-\r
- {0x0496, 1117, 1},\r
-\r
- {0x0196, 652, 1},\r
-\r
- {0x1f96, 199, 2},\r
-\r
- {0x2c96, 2774, 1},\r
-\r
- {0xa698, 3126, 1},\r
-\r
- {0xa796, 3279, 1},\r
-\r
- {0x1c96, 1480, 1},\r
-\r
- {0xab96, 1714, 1},\r
-\r
- {0x10c96, 3705, 1},\r
-\r
- {0x03a6, 816, 1},\r
-\r
- {0x1ef2, 2216, 1},\r
-\r
- {0x04f2, 1255, 1},\r
-\r
- {0x01f2, 483, 1},\r
-\r
- {0x1ff2, 257, 2},\r
-\r
- {0x2cf2, 2897, 1},\r
-\r
- {0x01d9, 447, 1},\r
-\r
- {0x1fd9, 2432, 1},\r
-\r
- {0xa696, 3123, 1},\r
-\r
- {0x00d9, 150, 1},\r
-\r
- {0x03a4, 810, 1},\r
-\r
- {0x1f5f, 2354, 1},\r
-\r
- {0x03f9, 884, 1},\r
-\r
- {0x0502, 1279, 1},\r
-\r
- {0x0202, 505, 1},\r
-\r
- {0x1e90, 2084, 1},\r
-\r
- {0x0490, 1108, 1},\r
-\r
- {0x0190, 628, 1},\r
-\r
- {0x1f90, 169, 2},\r
-\r
- {0x2c90, 2765, 1},\r
-\r
- {0x03a0, 798, 1},\r
-\r
- {0xa790, 3270, 1},\r
-\r
- {0x1c90, 1462, 1},\r
-\r
- {0xab90, 1696, 1},\r
-\r
- {0x10c90, 3687, 1},\r
-\r
- {0x1e6e, 2033, 1},\r
-\r
- {0x046e, 1069, 1},\r
-\r
- {0x016e, 330, 1},\r
-\r
- {0x1f6e, 2375, 1},\r
-\r
- {0x2c6e, 667, 1},\r
-\r
- {0x10b0, 2948, 1},\r
-\r
- {0xa76e, 3243, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa690, 3114, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118b0, 3840, 1},\r
-\r
- {0x104be, 3573, 1},\r
-\r
- {0x054c, 1429, 1},\r
-\r
- {0x024c, 598, 1},\r
-\r
- {0x1ebe, 2138, 1},\r
-\r
- {0x04be, 1177, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1fbe, 773, 1},\r
-\r
- {0x2cbe, 2834, 1},\r
-\r
- {0x10a8, 2924, 1},\r
-\r
- {0xa7be, 3324, 1},\r
-\r
- {0x1cbe, 1594, 1},\r
-\r
- {0xabbe, 1834, 1},\r
-\r
- {0x104bc, 3567, 1},\r
-\r
- {0x118a8, 3816, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1ebc, 2135, 1},\r
-\r
- {0x04bc, 1174, 1},\r
-\r
- {0x01bc, 411, 1},\r
-\r
- {0x1fbc, 62, 2},\r
-\r
- {0x2cbc, 2831, 1},\r
-\r
- {0x017f, 52, 1},\r
-\r
- {0xa7bc, 3321, 1},\r
-\r
- {0x2c7f, 583, 1},\r
-\r
- {0xabbc, 1828, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x104ba, 3561, 1},\r
-\r
- {0xab7f, 1645, 1},\r
-\r
- {0x03aa, 830, 1},\r
-\r
- {0x1eba, 2132, 1},\r
-\r
- {0x04ba, 1171, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1fba, 2381, 1},\r
-\r
- {0x2cba, 2828, 1},\r
-\r
- {0x017d, 351, 1},\r
-\r
- {0xa7ba, 3318, 1},\r
-\r
- {0x1cba, 1588, 1},\r
-\r
- {0xabba, 1822, 1},\r
-\r
- {0xa77d, 1858, 1},\r
-\r
- {0x104b6, 3549, 1},\r
-\r
- {0xab7d, 1639, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1eb6, 2126, 1},\r
-\r
- {0x04b6, 1165, 1},\r
-\r
- {0x16e4c, 3924, 1},\r
-\r
- {0x1fb6, 58, 2},\r
-\r
- {0x2cb6, 2822, 1},\r
-\r
- {0x039f, 795, 1},\r
-\r
- {0xa7b6, 3312, 1},\r
-\r
- {0x1cb6, 1576, 1},\r
-\r
- {0xabb6, 1810, 1},\r
-\r
- {0x01d5, 441, 1},\r
-\r
- {0x104b4, 3543, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x00d5, 141, 1},\r
-\r
- {0x1eb4, 2123, 1},\r
-\r
- {0x04b4, 1162, 1},\r
-\r
- {0x039c, 785, 1},\r
-\r
- {0x1fb4, 50, 2},\r
-\r
- {0x2cb4, 2819, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa7b4, 3309, 1},\r
-\r
- {0x1cb4, 1570, 1},\r
-\r
- {0xabb4, 1804, 1},\r
-\r
- {0x1e9a, 0, 2},\r
-\r
- {0x049a, 1123, 1},\r
-\r
- {0x2c67, 2726, 1},\r
-\r
- {0x1f9a, 179, 2},\r
-\r
- {0x2c9a, 2780, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa79a, 3285, 1},\r
-\r
- {0x1c9a, 1492, 1},\r
-\r
- {0xab9a, 1726, 1},\r
-\r
- {0x10c9a, 3717, 1},\r
-\r
- {0x1e2a, 1930, 1},\r
-\r
- {0x042a, 980, 1},\r
-\r
- {0x012a, 234, 1},\r
-\r
- {0x1f2a, 2285, 1},\r
-\r
- {0x2c2a, 2702, 1},\r
-\r
- {0x03de, 857, 1},\r
-\r
- {0xa72a, 3144, 1},\r
-\r
- {0x10be, 2990, 1},\r
-\r
- {0xa69a, 3129, 1},\r
-\r
- {0x0057, 65, 1},\r
-\r
- {0x104c7, 3600, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118be, 3882, 1},\r
-\r
- {0x1e90a, 4014, 1},\r
-\r
- {0x04c7, 1189, 1},\r
-\r
- {0x01c7, 421, 1},\r
-\r
- {0x1fc7, 15, 3},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x00c7, 99, 1},\r
-\r
- {0x10bc, 2984, 1},\r
-\r
- {0x03b0, 41, 3},\r
-\r
- {0xff37, 3399, 1},\r
-\r
- {0x1e92, 2087, 1},\r
-\r
- {0x0492, 1111, 1},\r
-\r
- {0x118bc, 3876, 1},\r
-\r
- {0x1f92, 179, 2},\r
-\r
- {0x2c92, 2768, 1},\r
-\r
- {0xfb02, 12, 2},\r
-\r
- {0xa792, 3273, 1},\r
-\r
- {0x1c92, 1468, 1},\r
-\r
- {0xab92, 1702, 1},\r
-\r
- {0x10c92, 3693, 1},\r
-\r
- {0x10ba, 2978, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x03a8, 823, 1},\r
-\r
- {0x1e7c, 2054, 1},\r
-\r
- {0x047c, 1090, 1},\r
-\r
- {0x118ba, 3870, 1},\r
-\r
- {0x0537, 1366, 1},\r
-\r
- {0x1e97, 34, 2},\r
-\r
- {0xa692, 3117, 1},\r
-\r
- {0x0197, 649, 1},\r
-\r
- {0x1f97, 204, 2},\r
-\r
- {0xab7c, 1636, 1},\r
-\r
- {0x0398, 768, 1},\r
-\r
- {0x10b6, 2966, 1},\r
-\r
- {0x1c97, 1483, 1},\r
-\r
- {0xab97, 1717, 1},\r
-\r
- {0x10c97, 3708, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118b6, 3858, 1},\r
-\r
- {0x16e5f, 3981, 1},\r
-\r
- {0x1e94, 2090, 1},\r
-\r
- {0x0494, 1114, 1},\r
-\r
- {0x0194, 640, 1},\r
-\r
- {0x1f94, 189, 2},\r
-\r
- {0x2c94, 2771, 1},\r
-\r
- {0x0396, 762, 1},\r
-\r
- {0x10b4, 2960, 1},\r
-\r
- {0x1c94, 1474, 1},\r
-\r
- {0xab94, 1708, 1},\r
-\r
- {0x10c94, 3699, 1},\r
-\r
- {0x24be, 2522, 1},\r
-\r
- {0x118b4, 3852, 1},\r
-\r
- {0x10416, 3477, 1},\r
-\r
- {0x1e7a, 2051, 1},\r
-\r
- {0x047a, 1087, 1},\r
-\r
- {0x1e16, 1900, 1},\r
-\r
- {0x0416, 916, 1},\r
-\r
- {0x0116, 204, 1},\r
-\r
- {0xa694, 3120, 1},\r
-\r
- {0x2c16, 2642, 1},\r
-\r
- {0x017b, 348, 1},\r
-\r
- {0xab7a, 1630, 1},\r
-\r
- {0x24bc, 2516, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa77b, 3249, 1},\r
-\r
- {0x1e86, 2069, 1},\r
-\r
- {0xab7b, 1633, 1},\r
-\r
- {0x0186, 616, 1},\r
-\r
- {0x1f86, 159, 2},\r
-\r
- {0x2c86, 2750, 1},\r
-\r
- {0x0390, 25, 3},\r
-\r
- {0xa786, 3264, 1},\r
-\r
- {0x1c86, 980, 1},\r
-\r
- {0xab86, 1666, 1},\r
-\r
- {0x10c86, 3657, 1},\r
-\r
- {0x24ba, 2510, 1},\r
-\r
- {0x01d7, 444, 1},\r
-\r
- {0x1fd7, 31, 3},\r
-\r
- {0x10c7, 3014, 1},\r
-\r
- {0x018f, 625, 1},\r
-\r
- {0x1f8f, 164, 2},\r
-\r
- {0xff2a, 3360, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa686, 3099, 1},\r
-\r
- {0x104c4, 3591, 1},\r
-\r
- {0xab8f, 1693, 1},\r
-\r
- {0x10c8f, 3684, 1},\r
-\r
- {0x1ec4, 2147, 1},\r
-\r
- {0x24b6, 2498, 1},\r
-\r
- {0x01c4, 417, 1},\r
-\r
- {0x1fc4, 54, 2},\r
-\r
- {0x2cc4, 2843, 1},\r
-\r
- {0x00c4, 89, 1},\r
-\r
- {0xa7c4, 3276, 1},\r
-\r
- {0x104c2, 3585, 1},\r
-\r
- {0x216e, 2489, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1ec2, 2144, 1},\r
-\r
- {0x052a, 1339, 1},\r
-\r
- {0x022a, 562, 1},\r
-\r
- {0x1fc2, 253, 2},\r
-\r
- {0x2cc2, 2840, 1},\r
-\r
- {0x00c2, 83, 1},\r
-\r
- {0xa7c2, 3327, 1},\r
-\r
- {0x1e9e, 24, 2},\r
-\r
- {0x049e, 1129, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f9e, 199, 2},\r
-\r
- {0x2c9e, 2786, 1},\r
-\r
- {0x037f, 887, 1},\r
-\r
- {0xa79e, 3291, 1},\r
-\r
- {0x1c9e, 1504, 1},\r
-\r
- {0xab9e, 1738, 1},\r
-\r
- {0x10c9e, 3729, 1},\r
-\r
- {0x1e8e, 2081, 1},\r
-\r
- {0x048e, 1105, 1},\r
-\r
- {0x018e, 453, 1},\r
-\r
- {0x1f8e, 159, 2},\r
-\r
- {0x2c8e, 2762, 1},\r
-\r
- {0x013d, 258, 1},\r
-\r
- {0x1f3d, 2318, 1},\r
-\r
- {0x1041c, 3495, 1},\r
-\r
- {0xab8e, 1690, 1},\r
-\r
- {0x10c8e, 3681, 1},\r
-\r
- {0x1e1c, 1909, 1},\r
-\r
- {0x041c, 934, 1},\r
-\r
- {0x011c, 213, 1},\r
-\r
- {0x1f1c, 2273, 1},\r
-\r
- {0x2c1c, 2660, 1},\r
-\r
- {0x1e902, 3990, 1},\r
-\r
- {0x1f5d, 2351, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa68e, 3111, 1},\r
-\r
- {0x24c7, 2549, 1},\r
-\r
- {0x1e8a, 2075, 1},\r
-\r
- {0x048a, 1099, 1},\r
-\r
- {0x018a, 622, 1},\r
-\r
- {0x1f8a, 139, 2},\r
-\r
- {0x2c8a, 2756, 1},\r
-\r
- {0x03d5, 816, 1},\r
-\r
- {0x1e40, 1963, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xab8a, 1678, 1},\r
-\r
- {0x10c8a, 3669, 1},\r
-\r
- {0x16e57, 3957, 1},\r
-\r
- {0x1e4a, 1978, 1},\r
-\r
- {0xa740, 3174, 1},\r
-\r
- {0x014a, 276, 1},\r
-\r
- {0x1f4a, 2333, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x004a, 24, 1},\r
-\r
- {0xa74a, 3189, 1},\r
-\r
- {0xa68a, 3105, 1},\r
-\r
- {0x1e82, 2063, 1},\r
-\r
- {0x039a, 778, 1},\r
-\r
- {0x0182, 357, 1},\r
-\r
- {0x1f82, 139, 2},\r
-\r
- {0x2c82, 2744, 1},\r
-\r
- {0xa640, 3020, 1},\r
-\r
- {0xa782, 3258, 1},\r
-\r
- {0x1c82, 940, 1},\r
-\r
- {0xab82, 1654, 1},\r
-\r
- {0x10c82, 3645, 1},\r
-\r
- {0xa64a, 3035, 1},\r
-\r
- {0x10c4, 3008, 1},\r
-\r
- {0x0516, 1309, 1},\r
-\r
- {0x0216, 535, 1},\r
-\r
- {0x2167, 2468, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e80, 2060, 1},\r
-\r
- {0x0480, 1096, 1},\r
-\r
- {0xa682, 3093, 1},\r
-\r
- {0x1f80, 129, 2},\r
-\r
- {0x2c80, 2741, 1},\r
-\r
- {0x10c2, 3002, 1},\r
-\r
- {0xa780, 3255, 1},\r
-\r
- {0x1c80, 902, 1},\r
-\r
- {0xab80, 1648, 1},\r
-\r
- {0x10c80, 3639, 1},\r
-\r
- {0x212a, 27, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1efa, 2228, 1},\r
-\r
- {0x04fa, 1267, 1},\r
-\r
- {0x01fa, 493, 1},\r
-\r
- {0x1ffa, 2417, 1},\r
-\r
- {0x1041a, 3489, 1},\r
-\r
- {0x0392, 748, 1},\r
-\r
- {0xa680, 3090, 1},\r
-\r
- {0x1e1a, 1906, 1},\r
-\r
- {0x041a, 928, 1},\r
-\r
- {0x011a, 210, 1},\r
-\r
- {0x1f1a, 2267, 1},\r
-\r
- {0x2c1a, 2654, 1},\r
-\r
- {0x10418, 3483, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f5b, 2348, 1},\r
-\r
- {0x1e18, 1903, 1},\r
-\r
- {0x0418, 922, 1},\r
-\r
- {0x0118, 207, 1},\r
-\r
- {0x1f18, 2261, 1},\r
-\r
- {0x2c18, 2648, 1},\r
-\r
- {0x1040e, 3453, 1},\r
-\r
- {0x2c63, 1861, 1},\r
-\r
- {0x0397, 765, 1},\r
-\r
- {0x1e0e, 1888, 1},\r
-\r
- {0x040e, 1041, 1},\r
-\r
- {0x010e, 192, 1},\r
-\r
- {0x1f0e, 2255, 1},\r
-\r
- {0x2c0e, 2618, 1},\r
-\r
- {0x1e2e, 1936, 1},\r
-\r
- {0x042e, 993, 1},\r
-\r
- {0x012e, 240, 1},\r
-\r
- {0x1f2e, 2297, 1},\r
-\r
- {0x2c2e, 2714, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa72e, 3150, 1},\r
-\r
- {0x0394, 755, 1},\r
-\r
- {0x1040c, 3447, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x24c4, 2540, 1},\r
-\r
- {0x1e0c, 1885, 1},\r
-\r
- {0x040c, 1035, 1},\r
-\r
- {0x010c, 189, 1},\r
-\r
- {0x1f0c, 2249, 1},\r
-\r
- {0x2c0c, 2612, 1},\r
-\r
- {0x01a9, 685, 1},\r
-\r
- {0x1fa9, 214, 2},\r
-\r
- {0x053d, 1384, 1},\r
-\r
- {0x023d, 378, 1},\r
-\r
- {0x24c2, 2534, 1},\r
-\r
- {0x1ca9, 1537, 1},\r
-\r
- {0xaba9, 1771, 1},\r
-\r
- {0x10ca9, 3762, 1},\r
-\r
- {0x10408, 3435, 1},\r
-\r
- {0x051c, 1318, 1},\r
-\r
- {0x021c, 544, 1},\r
-\r
- {0x1e08, 1879, 1},\r
-\r
- {0x0408, 1023, 1},\r
-\r
- {0x0108, 183, 1},\r
-\r
- {0x1f08, 2237, 1},\r
-\r
- {0x2c08, 2600, 1},\r
-\r
- {0x0386, 733, 1},\r
-\r
- {0x10414, 3471, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x13fa, 1846, 1},\r
-\r
- {0x1e14, 1897, 1},\r
-\r
- {0x0414, 909, 1},\r
-\r
- {0x0114, 201, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c14, 2636, 1},\r
-\r
- {0x0540, 1393, 1},\r
-\r
- {0x1f6d, 2372, 1},\r
-\r
- {0x2c6d, 607, 1},\r
-\r
- {0x038f, 842, 1},\r
-\r
- {0x10406, 3429, 1},\r
-\r
- {0x054a, 1423, 1},\r
-\r
- {0x024a, 595, 1},\r
-\r
- {0x1e06, 1876, 1},\r
-\r
- {0x0406, 1017, 1},\r
-\r
- {0x0106, 180, 1},\r
-\r
- {0x10404, 3423, 1},\r
-\r
- {0x2c06, 2594, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e04, 1873, 1},\r
-\r
- {0x0404, 1011, 1},\r
-\r
- {0x0104, 177, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c04, 2588, 1},\r
-\r
- {0x1ee0, 2189, 1},\r
-\r
- {0x04e0, 1228, 1},\r
-\r
- {0x01e0, 459, 1},\r
-\r
- {0x10400, 3411, 1},\r
-\r
- {0x2ce0, 2885, 1},\r
-\r
- {0x03c2, 806, 1},\r
-\r
- {0x1e00, 1867, 1},\r
-\r
- {0x0400, 999, 1},\r
-\r
- {0x0100, 171, 1},\r
-\r
- {0x0179, 345, 1},\r
-\r
- {0x2c00, 2576, 1},\r
-\r
- {0x16e5d, 3975, 1},\r
-\r
- {0x039e, 792, 1},\r
-\r
- {0xa779, 3246, 1},\r
-\r
- {0x10426, 3525, 1},\r
-\r
- {0xab79, 1627, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e26, 1924, 1},\r
-\r
- {0x0426, 968, 1},\r
-\r
- {0x0126, 228, 1},\r
-\r
- {0xfb16, 125, 2},\r
-\r
- {0x2c26, 2690, 1},\r
-\r
- {0x038e, 839, 1},\r
-\r
- {0xa726, 3138, 1},\r
-\r
- {0x16e40, 3888, 1},\r
-\r
- {0x1ef4, 2219, 1},\r
-\r
- {0x04f4, 1258, 1},\r
-\r
- {0x01f4, 487, 1},\r
-\r
- {0x1ff4, 101, 2},\r
-\r
- {0x16e4a, 3918, 1},\r
-\r
- {0x051a, 1315, 1},\r
-\r
- {0x021a, 541, 1},\r
-\r
- {0x10a9, 2927, 1},\r
-\r
- {0x1f4d, 2342, 1},\r
-\r
- {0xff2e, 3372, 1},\r
-\r
- {0x004d, 34, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118a9, 3819, 1},\r
-\r
- {0x0518, 1312, 1},\r
-\r
- {0x0218, 538, 1},\r
-\r
- {0x1e8c, 2078, 1},\r
-\r
- {0x048c, 1102, 1},\r
-\r
- {0x038a, 742, 1},\r
-\r
- {0x1f8c, 149, 2},\r
-\r
- {0x2c8c, 2759, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x050e, 1297, 1},\r
-\r
- {0x020e, 523, 1},\r
-\r
- {0xab8c, 1684, 1},\r
-\r
- {0x10c8c, 3675, 1},\r
-\r
- {0x104bf, 3576, 1},\r
-\r
- {0x052e, 1345, 1},\r
-\r
- {0x022e, 568, 1},\r
-\r
- {0x1e2c, 1933, 1},\r
-\r
- {0x042c, 987, 1},\r
-\r
- {0x012c, 237, 1},\r
-\r
- {0x1f2c, 2291, 1},\r
-\r
- {0x2c2c, 2708, 1},\r
-\r
- {0xa68c, 3108, 1},\r
-\r
- {0xa72c, 3147, 1},\r
-\r
- {0x1cbf, 1597, 1},\r
-\r
- {0xabbf, 1837, 1},\r
-\r
- {0x050c, 1294, 1},\r
-\r
- {0x020c, 520, 1},\r
-\r
- {0x1e28, 1927, 1},\r
-\r
- {0x0428, 974, 1},\r
-\r
- {0x0128, 231, 1},\r
-\r
- {0x1f28, 2279, 1},\r
-\r
- {0x2c28, 2696, 1},\r
-\r
- {0x1fab, 224, 2},\r
-\r
- {0xa728, 3141, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa7ab, 631, 1},\r
-\r
- {0x1cab, 1543, 1},\r
-\r
- {0xabab, 1777, 1},\r
-\r
- {0x10cab, 3768, 1},\r
-\r
- {0x16e5b, 3969, 1},\r
-\r
- {0x10424, 3519, 1},\r
-\r
- {0x0508, 1288, 1},\r
-\r
- {0x0208, 514, 1},\r
-\r
- {0x1e24, 1921, 1},\r
-\r
- {0x0424, 962, 1},\r
-\r
- {0x0124, 225, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c24, 2684, 1},\r
-\r
- {0x104b7, 3552, 1},\r
-\r
- {0xa724, 3135, 1},\r
-\r
- {0x0514, 1306, 1},\r
-\r
- {0x0214, 532, 1},\r
-\r
- {0x03fa, 893, 1},\r
-\r
- {0x01b7, 706, 1},\r
-\r
- {0x1fb7, 10, 3},\r
-\r
- {0x104b3, 3540, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1cb7, 1579, 1},\r
-\r
- {0xabb7, 1813, 1},\r
-\r
- {0x01b3, 402, 1},\r
-\r
- {0x1fb3, 62, 2},\r
-\r
- {0x0506, 1285, 1},\r
-\r
- {0x0206, 511, 1},\r
-\r
- {0xa7b3, 3330, 1},\r
-\r
- {0x1cb3, 1567, 1},\r
-\r
- {0xabb3, 1801, 1},\r
-\r
- {0x10422, 3513, 1},\r
-\r
- {0x0504, 1282, 1},\r
-\r
- {0x0204, 508, 1},\r
-\r
- {0x1e22, 1918, 1},\r
-\r
- {0x0422, 954, 1},\r
-\r
- {0x0122, 222, 1},\r
-\r
- {0xff26, 3348, 1},\r
-\r
- {0x2c22, 2678, 1},\r
-\r
- {0xff35, 3393, 1},\r
-\r
- {0xa722, 3132, 1},\r
-\r
- {0x104b1, 3534, 1},\r
-\r
- {0x0143, 267, 1},\r
-\r
- {0x0500, 1276, 1},\r
-\r
- {0x0200, 502, 1},\r
-\r
- {0x0043, 6, 1},\r
-\r
- {0x01b1, 697, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2163, 2456, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa7b1, 688, 1},\r
-\r
- {0x1cb1, 1561, 1},\r
-\r
- {0xabb1, 1795, 1},\r
-\r
- {0x10cb1, 3786, 1},\r
-\r
- {0x0526, 1333, 1},\r
-\r
- {0x0226, 556, 1},\r
-\r
- {0x0535, 1360, 1},\r
-\r
- {0x10bf, 2993, 1},\r
-\r
- {0x03a9, 826, 1},\r
-\r
- {0x01a7, 393, 1},\r
-\r
- {0x1fa7, 244, 2},\r
-\r
- {0x1e916, 4050, 1},\r
-\r
- {0x118bf, 3885, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1ca7, 1531, 1},\r
-\r
- {0xaba7, 1765, 1},\r
-\r
- {0x10ca7, 3756, 1},\r
-\r
- {0x054d, 1432, 1},\r
-\r
- {0x1f6b, 2366, 1},\r
-\r
- {0x2c6b, 2732, 1},\r
-\r
- {0x10ab, 2933, 1},\r
-\r
- {0x1e48, 1975, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xff2c, 3366, 1},\r
-\r
- {0x1f48, 2327, 1},\r
-\r
- {0x118ab, 3825, 1},\r
-\r
- {0x0048, 21, 1},\r
-\r
- {0xa748, 3186, 1},\r
-\r
- {0x1e88, 2072, 1},\r
-\r
- {0x1f69, 2360, 1},\r
-\r
- {0x2c69, 2729, 1},\r
-\r
- {0x1f88, 129, 2},\r
-\r
- {0x2c88, 2753, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xff28, 3354, 1},\r
-\r
- {0x1c88, 3035, 1},\r
-\r
- {0xab88, 1672, 1},\r
-\r
- {0x10c88, 3663, 1},\r
-\r
- {0x1e42, 1966, 1},\r
-\r
- {0xa648, 3032, 1},\r
-\r
- {0x052c, 1342, 1},\r
-\r
- {0x022c, 565, 1},\r
-\r
- {0x10b7, 2969, 1},\r
-\r
- {0x0042, 3, 1},\r
-\r
- {0xa742, 3177, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa688, 3102, 1},\r
-\r
- {0x118b7, 3861, 1},\r
-\r
- {0x216d, 2486, 1},\r
-\r
- {0x10b3, 2957, 1},\r
-\r
- {0xff24, 3342, 1},\r
-\r
- {0x0528, 1336, 1},\r
-\r
- {0x0228, 559, 1},\r
-\r
- {0x03e0, 860, 1},\r
-\r
- {0x118b3, 3849, 1},\r
-\r
- {0x1e56, 1996, 1},\r
-\r
- {0xa642, 3023, 1},\r
-\r
- {0x0156, 294, 1},\r
-\r
- {0x1f56, 62, 3},\r
-\r
- {0x16e4d, 3927, 1},\r
-\r
- {0x0056, 62, 1},\r
-\r
- {0xa756, 3207, 1},\r
-\r
- {0x24bf, 2525, 1},\r
-\r
- {0x1f59, 2345, 1},\r
-\r
- {0x1e4e, 1984, 1},\r
-\r
- {0x0059, 71, 1},\r
-\r
- {0x014e, 282, 1},\r
-\r
- {0x0524, 1330, 1},\r
-\r
- {0x0224, 553, 1},\r
-\r
- {0x004e, 37, 1},\r
-\r
- {0xa74e, 3195, 1},\r
-\r
- {0x10b1, 2951, 1},\r
-\r
- {0x042d, 990, 1},\r
-\r
- {0xa656, 3054, 1},\r
-\r
- {0x1f2d, 2294, 1},\r
-\r
- {0x2c2d, 2711, 1},\r
-\r
- {0x118b1, 3843, 1},\r
-\r
- {0xff22, 3336, 1},\r
-\r
- {0x03f4, 768, 1},\r
-\r
- {0x042f, 996, 1},\r
-\r
- {0x1e91c, 4068, 1},\r
-\r
- {0x1f2f, 2300, 1},\r
-\r
- {0xa64e, 3042, 1},\r
-\r
- {0x104ce, 3621, 1},\r
-\r
- {0x10a7, 2921, 1},\r
-\r
- {0x2126, 826, 1},\r
-\r
- {0x1ece, 2162, 1},\r
-\r
- {0xfb14, 109, 2},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118a7, 3813, 1},\r
-\r
- {0x2cce, 2858, 1},\r
-\r
- {0x00ce, 120, 1},\r
-\r
- {0x104b9, 3558, 1},\r
-\r
- {0x038c, 836, 1},\r
-\r
- {0x0522, 1327, 1},\r
-\r
- {0x0222, 550, 1},\r
-\r
- {0xff33, 3387, 1},\r
-\r
- {0x24b7, 2501, 1},\r
-\r
- {0x1fb9, 2426, 1},\r
-\r
- {0xfb06, 29, 2},\r
-\r
- {0x0543, 1402, 1},\r
-\r
- {0x0243, 354, 1},\r
-\r
- {0x1cb9, 1585, 1},\r
-\r
- {0xabb9, 1819, 1},\r
-\r
- {0x1e54, 1993, 1},\r
-\r
- {0xfb04, 5, 3},\r
-\r
- {0x0154, 291, 1},\r
-\r
- {0x1f54, 57, 3},\r
-\r
- {0xff31, 3381, 1},\r
-\r
- {0x0054, 56, 1},\r
-\r
- {0xa754, 3204, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e52, 1990, 1},\r
-\r
- {0x0533, 1354, 1},\r
-\r
- {0x0152, 288, 1},\r
-\r
- {0x1f52, 52, 3},\r
-\r
- {0xfb00, 4, 2},\r
-\r
- {0x0052, 49, 1},\r
-\r
- {0xa752, 3201, 1},\r
-\r
- {0x03ab, 833, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e50, 1987, 1},\r
-\r
- {0xa654, 3051, 1},\r
-\r
- {0x0150, 285, 1},\r
-\r
- {0x1f50, 84, 2},\r
-\r
- {0x0531, 1348, 1},\r
-\r
- {0x0050, 43, 1},\r
-\r
- {0xa750, 3198, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xa652, 3048, 1},\r
-\r
- {0x0548, 1417, 1},\r
-\r
- {0x0248, 592, 1},\r
-\r
- {0x10420, 3507, 1},\r
-\r
- {0x013f, 261, 1},\r
-\r
- {0x1f3f, 2324, 1},\r
-\r
- {0x1e20, 1915, 1},\r
-\r
- {0x0420, 947, 1},\r
-\r
- {0x0120, 219, 1},\r
-\r
- {0xa650, 3045, 1},\r
-\r
- {0x2c20, 2672, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x16e43, 3897, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e91a, 4062, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1041e, 3501, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0542, 1399, 1},\r
-\r
- {0x1e1e, 1912, 1},\r
-\r
- {0x041e, 940, 1},\r
-\r
- {0x011e, 216, 1},\r
-\r
- {0x1e918, 4056, 1},\r
-\r
- {0x2c1e, 2666, 1},\r
-\r
- {0x10412, 3465, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e12, 1894, 1},\r
-\r
- {0x0412, 902, 1},\r
-\r
- {0x0112, 198, 1},\r
-\r
- {0x1e90e, 4026, 1},\r
-\r
- {0x2c12, 2630, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x10410, 3459, 1},\r
-\r
- {0xff2d, 3369, 1},\r
-\r
- {0x0556, 1459, 1},\r
-\r
- {0x1e10, 1891, 1},\r
-\r
- {0x0410, 896, 1},\r
-\r
- {0x0110, 195, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c10, 2624, 1},\r
-\r
- {0xff2f, 3375, 1},\r
-\r
- {0x10b9, 2975, 1},\r
-\r
- {0x16e48, 3912, 1},\r
-\r
- {0x054e, 1435, 1},\r
-\r
- {0x024e, 601, 1},\r
-\r
- {0x1e90c, 4020, 1},\r
-\r
- {0x118b9, 3867, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x104ca, 3609, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1eca, 2156, 1},\r
-\r
- {0x03a7, 820, 1},\r
-\r
- {0x01ca, 425, 1},\r
-\r
- {0x1fca, 2393, 1},\r
-\r
- {0x2cca, 2852, 1},\r
-\r
- {0x00ca, 108, 1},\r
-\r
- {0x104c8, 3603, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x16e42, 3894, 1},\r
-\r
- {0x1ec8, 2153, 1},\r
-\r
- {0x1e908, 4008, 1},\r
-\r
- {0x01c8, 421, 1},\r
-\r
- {0x1fc8, 2387, 1},\r
-\r
- {0x2cc8, 2849, 1},\r
-\r
- {0x00c8, 102, 1},\r
-\r
- {0x1e6c, 2030, 1},\r
-\r
- {0x046c, 1066, 1},\r
-\r
- {0x016c, 327, 1},\r
-\r
- {0x1f6c, 2369, 1},\r
-\r
- {0x1e914, 4044, 1},\r
-\r
- {0x104c6, 3597, 1},\r
-\r
- {0xa76c, 3240, 1},\r
-\r
- {0x0388, 736, 1},\r
-\r
- {0x1ec6, 2150, 1},\r
-\r
- {0x216b, 2480, 1},\r
-\r
- {0x16e56, 3954, 1},\r
-\r
- {0x1fc6, 67, 2},\r
-\r
- {0x2cc6, 2846, 1},\r
-\r
- {0x00c6, 96, 1},\r
-\r
- {0xa7c6, 1864, 1},\r
-\r
- {0x16e59, 3963, 1},\r
-\r
- {0x1e906, 4002, 1},\r
-\r
- {0x0554, 1453, 1},\r
-\r
- {0xa66c, 3087, 1},\r
-\r
- {0x16e4e, 3930, 1},\r
-\r
- {0x2169, 2474, 1},\r
-\r
- {0x24ce, 2570, 1},\r
-\r
- {0x1e904, 3996, 1},\r
-\r
- {0x104c5, 3594, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0552, 1447, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x04c5, 1186, 1},\r
-\r
- {0x01c5, 417, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x24b9, 2507, 1},\r
-\r
- {0x00c5, 92, 1},\r
-\r
- {0xa7c5, 682, 1},\r
-\r
- {0x1e900, 3984, 1},\r
-\r
- {0x0550, 1441, 1},\r
-\r
- {0x104c0, 3579, 1},\r
-\r
- {0x104b5, 3546, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1ec0, 2141, 1},\r
-\r
- {0x04c0, 1201, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x01b5, 405, 1},\r
-\r
- {0x2cc0, 2837, 1},\r
-\r
- {0x00c0, 77, 1},\r
-\r
- {0x00b5, 785, 1},\r
-\r
- {0x053f, 1390, 1},\r
-\r
- {0x1cb5, 1573, 1},\r
-\r
- {0xabb5, 1807, 1},\r
-\r
- {0x1fad, 234, 2},\r
-\r
- {0x0520, 1324, 1},\r
-\r
- {0x0220, 381, 1},\r
-\r
- {0xa7ad, 661, 1},\r
-\r
- {0x1cad, 1549, 1},\r
-\r
- {0xabad, 1783, 1},\r
-\r
- {0x10cad, 3774, 1},\r
-\r
- {0x1efc, 2231, 1},\r
-\r
- {0x04fc, 1270, 1},\r
-\r
- {0x01fc, 496, 1},\r
-\r
- {0x1ffc, 96, 2},\r
-\r
- {0x16e54, 3948, 1},\r
-\r
- {0x1fa5, 234, 2},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x051e, 1321, 1},\r
-\r
- {0x021e, 547, 1},\r
-\r
- {0x1ca5, 1525, 1},\r
-\r
- {0xaba5, 1759, 1},\r
-\r
- {0x10ca5, 3750, 1},\r
-\r
- {0x16e52, 3942, 1},\r
-\r
- {0x01af, 399, 1},\r
-\r
- {0x1faf, 244, 2},\r
-\r
- {0x0512, 1303, 1},\r
-\r
- {0x0212, 529, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1caf, 1555, 1},\r
-\r
- {0xabaf, 1789, 1},\r
-\r
- {0x10caf, 3780, 1},\r
-\r
- {0x16e50, 3936, 1},\r
-\r
- {0x1fa3, 224, 2},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0510, 1300, 1},\r
-\r
- {0x0210, 526, 1},\r
-\r
- {0x1ca3, 1519, 1},\r
-\r
- {0xaba3, 1753, 1},\r
-\r
- {0x10ca3, 3744, 1},\r
-\r
- {0x0429, 977, 1},\r
-\r
- {0x1fa1, 214, 2},\r
-\r
- {0x1f29, 2282, 1},\r
-\r
- {0x2c29, 2699, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1ca1, 1513, 1},\r
-\r
- {0xaba1, 1747, 1},\r
-\r
- {0x10ca1, 3738, 1},\r
-\r
- {0x1e6a, 2027, 1},\r
-\r
- {0x046a, 1063, 1},\r
-\r
- {0x016a, 324, 1},\r
-\r
- {0x1f6a, 2363, 1},\r
-\r
- {0x1e46, 1972, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa76a, 3237, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x0046, 15, 1},\r
-\r
- {0xa746, 3183, 1},\r
-\r
- {0x10c5, 3011, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e68, 2024, 1},\r
-\r
- {0x0468, 1060, 1},\r
-\r
- {0x0168, 321, 1},\r
-\r
- {0x1f68, 2357, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa66a, 3084, 1},\r
-\r
- {0xa768, 3234, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xa646, 3029, 1},\r
-\r
- {0x10c0, 2996, 1},\r
-\r
- {0x10b5, 2963, 1},\r
-\r
- {0x24ca, 2558, 1},\r
-\r
- {0x13fc, 1852, 1},\r
-\r
- {0x1e44, 1969, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118b5, 3855, 1},\r
-\r
- {0x10ad, 2939, 1},\r
-\r
- {0xa668, 3081, 1},\r
-\r
- {0x0044, 9, 1},\r
-\r
- {0xa744, 3180, 1},\r
-\r
- {0x24c8, 2552, 1},\r
-\r
- {0x118ad, 3831, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e64, 2018, 1},\r
-\r
- {0x0464, 1054, 1},\r
-\r
- {0x0164, 315, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c64, 676, 1},\r
-\r
- {0x10a5, 2915, 1},\r
-\r
- {0xa764, 3228, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa644, 3026, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118a5, 3807, 1},\r
-\r
- {0x24c6, 2546, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x10af, 2945, 1},\r
-\r
- {0x1e32, 1942, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0132, 243, 1},\r
-\r
- {0xa664, 3075, 1},\r
-\r
- {0x118af, 3837, 1},\r
-\r
- {0x104cb, 3612, 1},\r
-\r
- {0xa732, 3153, 1},\r
-\r
- {0x10a3, 2909, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x04cb, 1195, 1},\r
-\r
- {0x01cb, 425, 1},\r
-\r
- {0x1fcb, 2396, 1},\r
-\r
- {0x118a3, 3801, 1},\r
-\r
- {0x00cb, 111, 1},\r
-\r
- {0x24c5, 2543, 1},\r
-\r
- {0x10a1, 2903, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e62, 2015, 1},\r
-\r
- {0x0462, 1050, 1},\r
-\r
- {0x0162, 312, 1},\r
-\r
- {0x118a1, 3795, 1},\r
-\r
- {0x2c62, 658, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa762, 3225, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x24c0, 2528, 1},\r
-\r
- {0x1e60, 2011, 1},\r
-\r
- {0x0460, 1047, 1},\r
-\r
- {0x0160, 309, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c60, 2717, 1},\r
-\r
- {0xff29, 3357, 1},\r
-\r
- {0xa760, 3222, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa662, 3072, 1},\r
-\r
- {0x1ee2, 2192, 1},\r
-\r
- {0x04e2, 1231, 1},\r
-\r
- {0x01e2, 462, 1},\r
-\r
- {0x1fe2, 36, 3},\r
-\r
- {0x2ce2, 2888, 1},\r
-\r
- {0x042b, 984, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f2b, 2288, 1},\r
-\r
- {0x2c2b, 2705, 1},\r
-\r
- {0xa660, 3069, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x216c, 2483, 1},\r
-\r
- {0x1eda, 2180, 1},\r
-\r
- {0x04da, 1219, 1},\r
-\r
- {0x104bd, 3570, 1},\r
-\r
- {0x1fda, 2399, 1},\r
-\r
- {0x2cda, 2876, 1},\r
-\r
- {0x00da, 153, 1},\r
-\r
- {0x1ed8, 2177, 1},\r
-\r
- {0x04d8, 1216, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1fd8, 2429, 1},\r
-\r
- {0x2cd8, 2873, 1},\r
-\r
- {0x00d8, 147, 1},\r
-\r
- {0x1cbd, 1591, 1},\r
-\r
- {0xabbd, 1831, 1},\r
-\r
- {0x0546, 1411, 1},\r
-\r
- {0x0246, 589, 1},\r
-\r
- {0x1ed6, 2174, 1},\r
-\r
- {0x04d6, 1213, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1fd6, 76, 2},\r
-\r
- {0x2cd6, 2870, 1},\r
-\r
- {0x00d6, 144, 1},\r
-\r
- {0x104d2, 3633, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1ed2, 2168, 1},\r
-\r
- {0x04d2, 1207, 1},\r
-\r
- {0x10427, 3528, 1},\r
-\r
- {0x1fd2, 20, 3},\r
-\r
- {0x2cd2, 2864, 1},\r
-\r
- {0x00d2, 132, 1},\r
-\r
- {0x0427, 971, 1},\r
-\r
- {0x104d0, 3627, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c27, 2693, 1},\r
-\r
- {0x1ed0, 2165, 1},\r
-\r
- {0x04d0, 1204, 1},\r
-\r
- {0x0544, 1405, 1},\r
-\r
- {0x0244, 694, 1},\r
-\r
- {0x2cd0, 2861, 1},\r
-\r
- {0x00d0, 126, 1},\r
-\r
- {0x03a5, 813, 1},\r
-\r
- {0x104cd, 3618, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xff32, 3384, 1},\r
-\r
- {0x04cd, 1198, 1},\r
-\r
- {0x01cd, 429, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x104c3, 3588, 1},\r
-\r
- {0x00cd, 117, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x04c3, 1183, 1},\r
-\r
- {0x104bb, 3564, 1},\r
-\r
- {0x1fc3, 71, 2},\r
-\r
- {0x16e46, 3906, 1},\r
-\r
- {0x00c3, 86, 1},\r
-\r
- {0x03a3, 806, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1fbb, 2384, 1},\r
-\r
- {0x104cc, 3615, 1},\r
-\r
- {0x0532, 1351, 1},\r
-\r
- {0x0232, 574, 1},\r
-\r
- {0x1ecc, 2159, 1},\r
-\r
- {0xabbb, 1825, 1},\r
-\r
- {0x03a1, 802, 1},\r
-\r
- {0x1fcc, 71, 2},\r
-\r
- {0x2ccc, 2855, 1},\r
-\r
- {0x00cc, 114, 1},\r
-\r
- {0x019d, 670, 1},\r
-\r
- {0x1f9d, 194, 2},\r
-\r
- {0x1e78, 2048, 1},\r
-\r
- {0x0478, 1084, 1},\r
-\r
- {0x0178, 168, 1},\r
-\r
- {0x1c9d, 1501, 1},\r
-\r
- {0xab9d, 1735, 1},\r
-\r
- {0x10c9d, 3726, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x16e44, 3900, 1},\r
-\r
- {0xab78, 1624, 1},\r
-\r
- {0x1e9b, 2011, 1},\r
-\r
- {0x10bd, 2987, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f9b, 184, 2},\r
-\r
- {0xff2b, 3363, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118bd, 3879, 1},\r
-\r
- {0x1c9b, 1495, 1},\r
-\r
- {0xab9b, 1729, 1},\r
-\r
- {0x10c9b, 3720, 1},\r
-\r
- {0x216a, 2477, 1},\r
-\r
- {0x24cb, 2561, 1},\r
-\r
- {0x1e99, 42, 2},\r
-\r
- {0x1e920, 4080, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f99, 174, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1c99, 1489, 1},\r
-\r
- {0xab99, 1723, 1},\r
-\r
- {0x10c99, 3714, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2168, 2471, 1},\r
-\r
- {0x0193, 634, 1},\r
-\r
- {0x1f93, 184, 2},\r
-\r
- {0x1e91e, 4074, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1c93, 1471, 1},\r
-\r
- {0xab93, 1705, 1},\r
-\r
- {0x10c93, 3696, 1},\r
-\r
- {0x0191, 369, 1},\r
-\r
- {0x1f91, 174, 2},\r
-\r
- {0x1e912, 4038, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1c91, 1465, 1},\r
-\r
- {0xab91, 1699, 1},\r
-\r
- {0x10c91, 3690, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x10cd, 3017, 1},\r
-\r
- {0xff27, 3351, 1},\r
-\r
- {0x1e910, 4032, 1},\r
-\r
- {0x0187, 363, 1},\r
-\r
- {0x1f87, 164, 2},\r
-\r
- {0x0055, 59, 1},\r
-\r
- {0x2164, 2459, 1},\r
-\r
- {0x10c3, 3005, 1},\r
-\r
- {0x1c87, 1050, 1},\r
-\r
- {0xab87, 1669, 1},\r
-\r
- {0x10c87, 3660, 1},\r
-\r
- {0x0145, 270, 1},\r
-\r
- {0x10bb, 2981, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0045, 12, 1},\r
-\r
- {0x24bd, 2519, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x118bb, 3873, 1},\r
-\r
- {0x1e72, 2039, 1},\r
-\r
- {0x0472, 1075, 1},\r
-\r
- {0x0172, 336, 1},\r
-\r
- {0x2132, 2444, 1},\r
-\r
- {0x2c72, 2735, 1},\r
-\r
- {0x1e70, 2036, 1},\r
-\r
- {0x0470, 1072, 1},\r
-\r
- {0x0170, 333, 1},\r
-\r
- {0xab72, 1606, 1},\r
-\r
- {0x2c70, 610, 1},\r
-\r
- {0x1e66, 2021, 1},\r
-\r
- {0x0466, 1057, 1},\r
-\r
- {0x0166, 318, 1},\r
-\r
- {0xab70, 1600, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e3a, 1954, 1},\r
-\r
- {0xa766, 3231, 1},\r
-\r
- {0x1e5a, 2002, 1},\r
-\r
- {0x1f3a, 2309, 1},\r
-\r
- {0x015a, 300, 1},\r
-\r
- {0x2162, 2453, 1},\r
-\r
- {0xa73a, 3165, 1},\r
-\r
- {0x005a, 74, 1},\r
-\r
- {0xa75a, 3213, 1},\r
-\r
- {0x03e2, 863, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x104cf, 3624, 1},\r
-\r
- {0x1e58, 1999, 1},\r
-\r
- {0xa666, 3078, 1},\r
-\r
- {0x0158, 297, 1},\r
-\r
- {0x2160, 2447, 1},\r
-\r
- {0x01cf, 432, 1},\r
-\r
- {0x0058, 68, 1},\r
-\r
- {0xa758, 3210, 1},\r
-\r
- {0x00cf, 123, 1},\r
-\r
- {0xa65a, 3060, 1},\r
-\r
- {0x03da, 851, 1},\r
-\r
- {0x24cd, 2567, 1},\r
-\r
- {0x1eec, 2207, 1},\r
-\r
- {0x04ec, 1246, 1},\r
-\r
- {0x01ec, 477, 1},\r
-\r
- {0x1fec, 2441, 1},\r
-\r
- {0x03d8, 848, 1},\r
-\r
- {0x212b, 92, 1},\r
-\r
- {0x24c3, 2537, 1},\r
-\r
- {0xa658, 3057, 1},\r
-\r
- {0x1edc, 2183, 1},\r
-\r
- {0x04dc, 1222, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x24bb, 2513, 1},\r
-\r
- {0x2cdc, 2879, 1},\r
-\r
- {0x00dc, 159, 1},\r
-\r
- {0x03d6, 798, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x24cc, 2564, 1},\r
-\r
- {0x1eea, 2204, 1},\r
-\r
- {0x04ea, 1243, 1},\r
-\r
- {0x01ea, 474, 1},\r
-\r
- {0x1fea, 2411, 1},\r
-\r
- {0x1ee8, 2201, 1},\r
-\r
- {0x04e8, 1240, 1},\r
-\r
- {0x01e8, 471, 1},\r
-\r
- {0x1fe8, 2435, 1},\r
-\r
- {0x1ee6, 2198, 1},\r
-\r
- {0x04e6, 1237, 1},\r
-\r
- {0x01e6, 468, 1},\r
-\r
- {0x1fe6, 88, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x03d0, 748, 1},\r
-\r
- {0x1ee4, 2195, 1},\r
-\r
- {0x04e4, 1234, 1},\r
-\r
- {0x01e4, 465, 1},\r
-\r
- {0x1fe4, 80, 2},\r
-\r
- {0x104c9, 3606, 1},\r
-\r
- {0x104c1, 3582, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x04c9, 1192, 1},\r
-\r
- {0x04c1, 1180, 1},\r
-\r
- {0x1fc9, 2390, 1},\r
-\r
- {0x1f95, 194, 2},\r
-\r
- {0x00c9, 105, 1},\r
-\r
- {0x00c1, 80, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1c95, 1477, 1},\r
-\r
- {0xab95, 1711, 1},\r
-\r
- {0x10c95, 3702, 1},\r
-\r
- {0x018b, 366, 1},\r
-\r
- {0x1f8b, 144, 2},\r
-\r
- {0x0555, 1456, 1},\r
-\r
- {0x0587, 105, 2},\r
-\r
- {0xa78b, 3267, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xab8b, 1681, 1},\r
-\r
- {0x10c8b, 3672, 1},\r
-\r
- {0x1e76, 2045, 1},\r
-\r
- {0x0476, 1081, 1},\r
-\r
- {0x0176, 342, 1},\r
-\r
- {0x0545, 1408, 1},\r
-\r
- {0x0245, 703, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x039d, 789, 1},\r
-\r
- {0x1f83, 144, 2},\r
-\r
- {0xab76, 1618, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xff3a, 3408, 1},\r
-\r
- {0x1c83, 950, 1},\r
-\r
- {0xab83, 1657, 1},\r
-\r
- {0x10c83, 3648, 1},\r
-\r
- {0x0141, 264, 1},\r
-\r
- {0x0181, 613, 1},\r
-\r
- {0x1f81, 134, 2},\r
-\r
- {0x0041, 0, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x039b, 782, 1},\r
-\r
- {0x1c81, 909, 1},\r
-\r
- {0xab81, 1651, 1},\r
-\r
- {0x10c81, 3642, 1},\r
-\r
- {0x0149, 46, 2},\r
-\r
- {0x1f49, 2330, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0049, 4086, 1},\r
-\r
- {0x053a, 1375, 1},\r
-\r
- {0x023a, 2720, 1},\r
-\r
- {0x1e7e, 2057, 1},\r
-\r
- {0x047e, 1093, 1},\r
-\r
- {0x0399, 773, 1},\r
-\r
- {0x1e5e, 2008, 1},\r
-\r
- {0x2c7e, 580, 1},\r
-\r
- {0x015e, 306, 1},\r
-\r
- {0xa77e, 3252, 1},\r
-\r
- {0x16e55, 3951, 1},\r
-\r
- {0xab7e, 1642, 1},\r
-\r
- {0xa75e, 3219, 1},\r
-\r
- {0x104d1, 3630, 1},\r
-\r
- {0x1e5c, 2005, 1},\r
-\r
- {0x0393, 752, 1},\r
-\r
- {0x015c, 303, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x01d1, 435, 1},\r
-\r
- {0x16e45, 3903, 1},\r
-\r
- {0xa75c, 3216, 1},\r
-\r
- {0x00d1, 129, 1},\r
-\r
- {0x10421, 3510, 1},\r
-\r
- {0x0391, 745, 1},\r
-\r
- {0xa65e, 3066, 1},\r
-\r
- {0x1e3e, 1960, 1},\r
-\r
- {0x0421, 950, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1f3e, 2321, 1},\r
-\r
- {0x2c21, 2675, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa73e, 3171, 1},\r
-\r
- {0xa65c, 3063, 1},\r
-\r
- {0x10c1, 2999, 1},\r
-\r
- {0x1e36, 1948, 1},\r
-\r
- {0x1e38, 1951, 1},\r
-\r
- {0x0136, 249, 1},\r
-\r
- {0x24cf, 2573, 1},\r
-\r
- {0x1f38, 2303, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa736, 3159, 1},\r
-\r
- {0xa738, 3162, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0345, 773, 1},\r
-\r
- {0x1e34, 1945, 1},\r
-\r
- {0x16e5a, 3966, 1},\r
-\r
- {0x0134, 246, 1},\r
-\r
- {0x1041d, 3498, 1},\r
-\r
- {0x013b, 255, 1},\r
-\r
- {0x1f3b, 2312, 1},\r
-\r
- {0xa734, 3156, 1},\r
-\r
- {0x041d, 937, 1},\r
-\r
- {0x0372, 718, 1},\r
-\r
- {0x1f1d, 2276, 1},\r
-\r
- {0x2c1d, 2663, 1},\r
-\r
- {0x16e58, 3960, 1},\r
-\r
- {0x1041b, 3492, 1},\r
-\r
- {0x0370, 715, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x041b, 931, 1},\r
-\r
- {0x10419, 3486, 1},\r
-\r
- {0x1f1b, 2270, 1},\r
-\r
- {0x2c1b, 2657, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0419, 925, 1},\r
-\r
- {0x10417, 3480, 1},\r
-\r
- {0x1f19, 2264, 1},\r
-\r
- {0x2c19, 2651, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0417, 919, 1},\r
-\r
- {0x10415, 3474, 1},\r
-\r
- {0x10413, 3468, 1},\r
-\r
- {0x2c17, 2645, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0415, 913, 1},\r
-\r
- {0x0413, 906, 1},\r
-\r
- {0x2166, 2465, 1},\r
-\r
- {0x2c15, 2639, 1},\r
-\r
- {0x2c13, 2633, 1},\r
-\r
- {0x0053, 52, 1},\r
-\r
- {0x03cf, 845, 1},\r
-\r
- {0x1efe, 2234, 1},\r
-\r
- {0x04fe, 1273, 1},\r
-\r
- {0x01fe, 499, 1},\r
-\r
- {0x1040f, 3456, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x24c9, 2555, 1},\r
-\r
- {0x24c1, 2531, 1},\r
-\r
- {0x040f, 1044, 1},\r
-\r
- {0x03ec, 878, 1},\r
-\r
- {0x1f0f, 2258, 1},\r
-\r
- {0x2c0f, 2621, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1040d, 3450, 1},\r
-\r
- {0x0541, 1396, 1},\r
-\r
- {0x0241, 586, 1},\r
-\r
- {0x03dc, 854, 1},\r
-\r
- {0x040d, 1038, 1},\r
-\r
- {0x1040b, 3444, 1},\r
-\r
- {0x1f0d, 2252, 1},\r
-\r
- {0x2c0d, 2615, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x040b, 1032, 1},\r
-\r
- {0x0549, 1420, 1},\r
-\r
- {0x1f0b, 2246, 1},\r
-\r
- {0x2c0b, 2609, 1},\r
-\r
- {0x10409, 3438, 1},\r
-\r
- {0x03ea, 875, 1},\r
-\r
- {0x0139, 252, 1},\r
-\r
- {0x1f39, 2306, 1},\r
-\r
- {0x0409, 1026, 1},\r
-\r
- {0x03e8, 872, 1},\r
-\r
- {0x1f09, 2240, 1},\r
-\r
- {0x2c09, 2603, 1},\r
-\r
- {0x10405, 3426, 1},\r
-\r
- {0x03e6, 869, 1},\r
-\r
- {0xff21, 3333, 1},\r
-\r
- {0x1f4b, 2336, 1},\r
-\r
- {0x0405, 1014, 1},\r
-\r
- {0x004b, 27, 1},\r
-\r
- {0x10403, 3420, 1},\r
-\r
- {0x2c05, 2591, 1},\r
-\r
- {0x03e4, 866, 1},\r
-\r
- {0x104d3, 3636, 1},\r
-\r
- {0x0403, 1008, 1},\r
-\r
- {0xff36, 3396, 1},\r
-\r
- {0xff38, 3402, 1},\r
-\r
- {0x2c03, 2585, 1},\r
-\r
- {0x01d3, 438, 1},\r
-\r
- {0x1fd3, 25, 3},\r
-\r
- {0x0395, 758, 1},\r
-\r
- {0x00d3, 135, 1},\r
-\r
- {0x0051, 46, 1},\r
-\r
- {0x053e, 1387, 1},\r
-\r
- {0x023e, 2723, 1},\r
-\r
- {0xff34, 3390, 1},\r
-\r
- {0x16e41, 3891, 1},\r
-\r
- {0x10401, 3414, 1},\r
-\r
- {0x1ef0, 2213, 1},\r
-\r
- {0x04f0, 1252, 1},\r
-\r
- {0x01f0, 20, 2},\r
-\r
- {0x0401, 1002, 1},\r
-\r
- {0x0536, 1363, 1},\r
-\r
- {0x0538, 1369, 1},\r
-\r
- {0x2c01, 2579, 1},\r
-\r
- {0x16e49, 3915, 1},\r
-\r
- {0x004f, 40, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0376, 721, 1},\r
-\r
- {0x1eee, 2210, 1},\r
-\r
- {0x04ee, 1249, 1},\r
-\r
- {0x01ee, 480, 1},\r
-\r
- {0x0534, 1357, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x053b, 1378, 1},\r
-\r
- {0x023b, 577, 1},\r
-\r
- {0x16e5e, 3978, 1},\r
-\r
- {0x1ef8, 2225, 1},\r
-\r
- {0x04f8, 1264, 1},\r
-\r
- {0x01f8, 490, 1},\r
-\r
- {0x1ff8, 2405, 1},\r
-\r
- {0x1ed4, 2171, 1},\r
-\r
- {0x04d4, 1210, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x16e5c, 3972, 1},\r
-\r
- {0x2cd4, 2867, 1},\r
-\r
- {0x00d4, 138, 1},\r
-\r
- {0x2183, 2495, 1},\r
-\r
- {0x1ef6, 2222, 1},\r
-\r
- {0x04f6, 1261, 1},\r
-\r
- {0x01f6, 372, 1},\r
-\r
- {0x1ff6, 92, 2},\r
-\r
- {0x1f8d, 154, 2},\r
-\r
- {0x0147, 273, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xa78d, 643, 1},\r
-\r
- {0x0047, 18, 1},\r
-\r
- {0xab8d, 1687, 1},\r
-\r
- {0x10c8d, 3678, 1},\r
-\r
- {0x1e74, 2042, 1},\r
-\r
- {0x0474, 1078, 1},\r
-\r
- {0x0174, 339, 1},\r
-\r
- {0x1e3c, 1957, 1},\r
-\r
- {0x0553, 1450, 1},\r
-\r
- {0x1e30, 1939, 1},\r
-\r
- {0x1f3c, 2315, 1},\r
-\r
- {0x0130, 261, 2},\r
-\r
- {0xab74, 1612, 1},\r
-\r
- {0xa73c, 3168, 1},\r
-\r
- {0x10425, 3522, 1},\r
-\r
- {0x03d1, 768, 1},\r
-\r
- {0x10423, 3516, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0425, 965, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0423, 959, 1},\r
-\r
- {0x2c25, 2687, 1},\r
-\r
- {0x1041f, 3504, 1},\r
-\r
- {0x2c23, 2681, 1},\r
-\r
- {0xff39, 3405, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x041f, 944, 1},\r
-\r
- {0x10411, 3462, 1},\r
-\r
- {0x10407, 3432, 1},\r
-\r
- {0x2c1f, 2669, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0411, 899, 1},\r
-\r
- {0x0407, 1020, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x2c11, 2627, 1},\r
-\r
- {0x2c07, 2597, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x0539, 1372, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x13f8, 1840, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x054b, 1426, 1},\r
-\r
- {0x16e53, 3945, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0551, 1444, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x054f, 1438, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x03fe, 727, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x16e4b, 3921, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xff30, 3378, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x16e51, 3939, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0547, 1414, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xff25, 3345, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0xff23, 3339, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x053c, 1381, 1},\r
-\r
- {0x16e4f, 3933, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x0230, 571, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xfb17, 117, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xfb15, 113, 2},\r
-\r
- {0xfb13, 121, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x03f0, 778, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x16e47, 3909, 1},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x03ee, 881, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xfb05, 29, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xfb03, 0, 3},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e921, 4083, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0xfb01, 8, 2},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e91d, 4071, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e91b, 4065, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e919, 4059, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e917, 4053, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e915, 4047, 1},\r
-\r
- {0x1e913, 4041, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e90f, 4029, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e90d, 4023, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e90b, 4017, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e909, 4011, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e905, 3999, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e903, 3993, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0},\r
-\r
- {0x1e901, 3987, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e91f, 4077, 1},\r
- {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0}, {0xffffffff, -1, 0},\r
-\r
- {0x1e911, 4035, 1},\r
-\r
- {0x1e907, 4005, 1}\r
- };\r
-\r
- int key = hash(&code);\r
- if (key <= MAX_HASH_VALUE) {\r
- OnigCodePoint gcode = wordlist[key].code;\r
- if (code == gcode && wordlist[key].index >= 0) {\r
- return &wordlist[key];\r
- }\r
- }\r
- return 0;\r
-}\r
+++ /dev/null
-/* unicode_wb_data.c: Generated by make_unicode_wb_data.py. */\r
-/*-\r
- * Copyright (c) 2019 K.Kosako <kkosako0 AT gmail DOT com>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-\r
-#define WORD_BREAK_PROPERTY_VERSION 12_1_0\r
-\r
-/*\r
-ALetter\r
-CR\r
-Double_Quote\r
-Extend\r
-ExtendNumLet\r
-Format\r
-Hebrew_Letter\r
-Katakana\r
-LF\r
-MidLetter\r
-MidNum\r
-MidNumLet\r
-Newline\r
-Numeric\r
-Regional_Indicator\r
-Single_Quote\r
-WSegSpace\r
-ZWJ\r
-*/\r
-\r
-static int WB_RANGE_NUM = 970;\r
-static WB_RANGE_TYPE WB_RANGES[] = {\r
- {0x00000a, 0x00000a, WB_LF },\r
- {0x00000b, 0x00000c, WB_Newline },\r
- {0x00000d, 0x00000d, WB_CR },\r
- {0x000020, 0x000020, WB_WSegSpace },\r
- {0x000022, 0x000022, WB_Double_Quote },\r
- {0x000027, 0x000027, WB_Single_Quote },\r
- {0x00002c, 0x00002c, WB_MidNum },\r
- {0x00002e, 0x00002e, WB_MidNumLet },\r
- {0x000030, 0x000039, WB_Numeric },\r
- {0x00003a, 0x00003a, WB_MidLetter },\r
- {0x00003b, 0x00003b, WB_MidNum },\r
- {0x000041, 0x00005a, WB_ALetter },\r
- {0x00005f, 0x00005f, WB_ExtendNumLet },\r
- {0x000061, 0x00007a, WB_ALetter },\r
- {0x000085, 0x000085, WB_Newline },\r
- {0x0000aa, 0x0000aa, WB_ALetter },\r
- {0x0000ad, 0x0000ad, WB_Format },\r
- {0x0000b5, 0x0000b5, WB_ALetter },\r
- {0x0000b7, 0x0000b7, WB_MidLetter },\r
- {0x0000ba, 0x0000ba, WB_ALetter },\r
- {0x0000c0, 0x0000d6, WB_ALetter },\r
- {0x0000d8, 0x0000f6, WB_ALetter },\r
- {0x0000f8, 0x0002d7, WB_ALetter },\r
- {0x0002de, 0x0002e4, WB_ALetter },\r
- {0x0002ec, 0x0002ff, WB_ALetter },\r
- {0x000300, 0x00036f, WB_Extend },\r
- {0x000370, 0x000374, WB_ALetter },\r
- {0x000376, 0x000377, WB_ALetter },\r
- {0x00037a, 0x00037d, WB_ALetter },\r
- {0x00037e, 0x00037e, WB_MidNum },\r
- {0x00037f, 0x00037f, WB_ALetter },\r
- {0x000386, 0x000386, WB_ALetter },\r
- {0x000387, 0x000387, WB_MidLetter },\r
- {0x000388, 0x00038a, WB_ALetter },\r
- {0x00038c, 0x00038c, WB_ALetter },\r
- {0x00038e, 0x0003a1, WB_ALetter },\r
- {0x0003a3, 0x0003f5, WB_ALetter },\r
- {0x0003f7, 0x000481, WB_ALetter },\r
- {0x000483, 0x000489, WB_Extend },\r
- {0x00048a, 0x00052f, WB_ALetter },\r
- {0x000531, 0x000556, WB_ALetter },\r
- {0x000559, 0x000559, WB_ALetter },\r
- {0x00055b, 0x00055c, WB_ALetter },\r
- {0x00055e, 0x00055e, WB_ALetter },\r
- {0x000560, 0x000588, WB_ALetter },\r
- {0x000589, 0x000589, WB_MidNum },\r
- {0x000591, 0x0005bd, WB_Extend },\r
- {0x0005bf, 0x0005bf, WB_Extend },\r
- {0x0005c1, 0x0005c2, WB_Extend },\r
- {0x0005c4, 0x0005c5, WB_Extend },\r
- {0x0005c7, 0x0005c7, WB_Extend },\r
- {0x0005d0, 0x0005ea, WB_Hebrew_Letter },\r
- {0x0005ef, 0x0005f2, WB_Hebrew_Letter },\r
- {0x0005f3, 0x0005f3, WB_ALetter },\r
- {0x0005f4, 0x0005f4, WB_MidLetter },\r
- {0x000600, 0x000605, WB_Format },\r
- {0x00060c, 0x00060d, WB_MidNum },\r
- {0x000610, 0x00061a, WB_Extend },\r
- {0x00061c, 0x00061c, WB_Format },\r
- {0x000620, 0x00064a, WB_ALetter },\r
- {0x00064b, 0x00065f, WB_Extend },\r
- {0x000660, 0x000669, WB_Numeric },\r
- {0x00066b, 0x00066b, WB_Numeric },\r
- {0x00066c, 0x00066c, WB_MidNum },\r
- {0x00066e, 0x00066f, WB_ALetter },\r
- {0x000670, 0x000670, WB_Extend },\r
- {0x000671, 0x0006d3, WB_ALetter },\r
- {0x0006d5, 0x0006d5, WB_ALetter },\r
- {0x0006d6, 0x0006dc, WB_Extend },\r
- {0x0006dd, 0x0006dd, WB_Format },\r
- {0x0006df, 0x0006e4, WB_Extend },\r
- {0x0006e5, 0x0006e6, WB_ALetter },\r
- {0x0006e7, 0x0006e8, WB_Extend },\r
- {0x0006ea, 0x0006ed, WB_Extend },\r
- {0x0006ee, 0x0006ef, WB_ALetter },\r
- {0x0006f0, 0x0006f9, WB_Numeric },\r
- {0x0006fa, 0x0006fc, WB_ALetter },\r
- {0x0006ff, 0x0006ff, WB_ALetter },\r
- {0x00070f, 0x00070f, WB_Format },\r
- {0x000710, 0x000710, WB_ALetter },\r
- {0x000711, 0x000711, WB_Extend },\r
- {0x000712, 0x00072f, WB_ALetter },\r
- {0x000730, 0x00074a, WB_Extend },\r
- {0x00074d, 0x0007a5, WB_ALetter },\r
- {0x0007a6, 0x0007b0, WB_Extend },\r
- {0x0007b1, 0x0007b1, WB_ALetter },\r
- {0x0007c0, 0x0007c9, WB_Numeric },\r
- {0x0007ca, 0x0007ea, WB_ALetter },\r
- {0x0007eb, 0x0007f3, WB_Extend },\r
- {0x0007f4, 0x0007f5, WB_ALetter },\r
- {0x0007f8, 0x0007f8, WB_MidNum },\r
- {0x0007fa, 0x0007fa, WB_ALetter },\r
- {0x0007fd, 0x0007fd, WB_Extend },\r
- {0x000800, 0x000815, WB_ALetter },\r
- {0x000816, 0x000819, WB_Extend },\r
- {0x00081a, 0x00081a, WB_ALetter },\r
- {0x00081b, 0x000823, WB_Extend },\r
- {0x000824, 0x000824, WB_ALetter },\r
- {0x000825, 0x000827, WB_Extend },\r
- {0x000828, 0x000828, WB_ALetter },\r
- {0x000829, 0x00082d, WB_Extend },\r
- {0x000840, 0x000858, WB_ALetter },\r
- {0x000859, 0x00085b, WB_Extend },\r
- {0x000860, 0x00086a, WB_ALetter },\r
- {0x0008a0, 0x0008b4, WB_ALetter },\r
- {0x0008b6, 0x0008bd, WB_ALetter },\r
- {0x0008d3, 0x0008e1, WB_Extend },\r
- {0x0008e2, 0x0008e2, WB_Format },\r
- {0x0008e3, 0x000903, WB_Extend },\r
- {0x000904, 0x000939, WB_ALetter },\r
- {0x00093a, 0x00093c, WB_Extend },\r
- {0x00093d, 0x00093d, WB_ALetter },\r
- {0x00093e, 0x00094f, WB_Extend },\r
- {0x000950, 0x000950, WB_ALetter },\r
- {0x000951, 0x000957, WB_Extend },\r
- {0x000958, 0x000961, WB_ALetter },\r
- {0x000962, 0x000963, WB_Extend },\r
- {0x000966, 0x00096f, WB_Numeric },\r
- {0x000971, 0x000980, WB_ALetter },\r
- {0x000981, 0x000983, WB_Extend },\r
- {0x000985, 0x00098c, WB_ALetter },\r
- {0x00098f, 0x000990, WB_ALetter },\r
- {0x000993, 0x0009a8, WB_ALetter },\r
- {0x0009aa, 0x0009b0, WB_ALetter },\r
- {0x0009b2, 0x0009b2, WB_ALetter },\r
- {0x0009b6, 0x0009b9, WB_ALetter },\r
- {0x0009bc, 0x0009bc, WB_Extend },\r
- {0x0009bd, 0x0009bd, WB_ALetter },\r
- {0x0009be, 0x0009c4, WB_Extend },\r
- {0x0009c7, 0x0009c8, WB_Extend },\r
- {0x0009cb, 0x0009cd, WB_Extend },\r
- {0x0009ce, 0x0009ce, WB_ALetter },\r
- {0x0009d7, 0x0009d7, WB_Extend },\r
- {0x0009dc, 0x0009dd, WB_ALetter },\r
- {0x0009df, 0x0009e1, WB_ALetter },\r
- {0x0009e2, 0x0009e3, WB_Extend },\r
- {0x0009e6, 0x0009ef, WB_Numeric },\r
- {0x0009f0, 0x0009f1, WB_ALetter },\r
- {0x0009fc, 0x0009fc, WB_ALetter },\r
- {0x0009fe, 0x0009fe, WB_Extend },\r
- {0x000a01, 0x000a03, WB_Extend },\r
- {0x000a05, 0x000a0a, WB_ALetter },\r
- {0x000a0f, 0x000a10, WB_ALetter },\r
- {0x000a13, 0x000a28, WB_ALetter },\r
- {0x000a2a, 0x000a30, WB_ALetter },\r
- {0x000a32, 0x000a33, WB_ALetter },\r
- {0x000a35, 0x000a36, WB_ALetter },\r
- {0x000a38, 0x000a39, WB_ALetter },\r
- {0x000a3c, 0x000a3c, WB_Extend },\r
- {0x000a3e, 0x000a42, WB_Extend },\r
- {0x000a47, 0x000a48, WB_Extend },\r
- {0x000a4b, 0x000a4d, WB_Extend },\r
- {0x000a51, 0x000a51, WB_Extend },\r
- {0x000a59, 0x000a5c, WB_ALetter },\r
- {0x000a5e, 0x000a5e, WB_ALetter },\r
- {0x000a66, 0x000a6f, WB_Numeric },\r
- {0x000a70, 0x000a71, WB_Extend },\r
- {0x000a72, 0x000a74, WB_ALetter },\r
- {0x000a75, 0x000a75, WB_Extend },\r
- {0x000a81, 0x000a83, WB_Extend },\r
- {0x000a85, 0x000a8d, WB_ALetter },\r
- {0x000a8f, 0x000a91, WB_ALetter },\r
- {0x000a93, 0x000aa8, WB_ALetter },\r
- {0x000aaa, 0x000ab0, WB_ALetter },\r
- {0x000ab2, 0x000ab3, WB_ALetter },\r
- {0x000ab5, 0x000ab9, WB_ALetter },\r
- {0x000abc, 0x000abc, WB_Extend },\r
- {0x000abd, 0x000abd, WB_ALetter },\r
- {0x000abe, 0x000ac5, WB_Extend },\r
- {0x000ac7, 0x000ac9, WB_Extend },\r
- {0x000acb, 0x000acd, WB_Extend },\r
- {0x000ad0, 0x000ad0, WB_ALetter },\r
- {0x000ae0, 0x000ae1, WB_ALetter },\r
- {0x000ae2, 0x000ae3, WB_Extend },\r
- {0x000ae6, 0x000aef, WB_Numeric },\r
- {0x000af9, 0x000af9, WB_ALetter },\r
- {0x000afa, 0x000aff, WB_Extend },\r
- {0x000b01, 0x000b03, WB_Extend },\r
- {0x000b05, 0x000b0c, WB_ALetter },\r
- {0x000b0f, 0x000b10, WB_ALetter },\r
- {0x000b13, 0x000b28, WB_ALetter },\r
- {0x000b2a, 0x000b30, WB_ALetter },\r
- {0x000b32, 0x000b33, WB_ALetter },\r
- {0x000b35, 0x000b39, WB_ALetter },\r
- {0x000b3c, 0x000b3c, WB_Extend },\r
- {0x000b3d, 0x000b3d, WB_ALetter },\r
- {0x000b3e, 0x000b44, WB_Extend },\r
- {0x000b47, 0x000b48, WB_Extend },\r
- {0x000b4b, 0x000b4d, WB_Extend },\r
- {0x000b56, 0x000b57, WB_Extend },\r
- {0x000b5c, 0x000b5d, WB_ALetter },\r
- {0x000b5f, 0x000b61, WB_ALetter },\r
- {0x000b62, 0x000b63, WB_Extend },\r
- {0x000b66, 0x000b6f, WB_Numeric },\r
- {0x000b71, 0x000b71, WB_ALetter },\r
- {0x000b82, 0x000b82, WB_Extend },\r
- {0x000b83, 0x000b83, WB_ALetter },\r
- {0x000b85, 0x000b8a, WB_ALetter },\r
- {0x000b8e, 0x000b90, WB_ALetter },\r
- {0x000b92, 0x000b95, WB_ALetter },\r
- {0x000b99, 0x000b9a, WB_ALetter },\r
- {0x000b9c, 0x000b9c, WB_ALetter },\r
- {0x000b9e, 0x000b9f, WB_ALetter },\r
- {0x000ba3, 0x000ba4, WB_ALetter },\r
- {0x000ba8, 0x000baa, WB_ALetter },\r
- {0x000bae, 0x000bb9, WB_ALetter },\r
- {0x000bbe, 0x000bc2, WB_Extend },\r
- {0x000bc6, 0x000bc8, WB_Extend },\r
- {0x000bca, 0x000bcd, WB_Extend },\r
- {0x000bd0, 0x000bd0, WB_ALetter },\r
- {0x000bd7, 0x000bd7, WB_Extend },\r
- {0x000be6, 0x000bef, WB_Numeric },\r
- {0x000c00, 0x000c04, WB_Extend },\r
- {0x000c05, 0x000c0c, WB_ALetter },\r
- {0x000c0e, 0x000c10, WB_ALetter },\r
- {0x000c12, 0x000c28, WB_ALetter },\r
- {0x000c2a, 0x000c39, WB_ALetter },\r
- {0x000c3d, 0x000c3d, WB_ALetter },\r
- {0x000c3e, 0x000c44, WB_Extend },\r
- {0x000c46, 0x000c48, WB_Extend },\r
- {0x000c4a, 0x000c4d, WB_Extend },\r
- {0x000c55, 0x000c56, WB_Extend },\r
- {0x000c58, 0x000c5a, WB_ALetter },\r
- {0x000c60, 0x000c61, WB_ALetter },\r
- {0x000c62, 0x000c63, WB_Extend },\r
- {0x000c66, 0x000c6f, WB_Numeric },\r
- {0x000c80, 0x000c80, WB_ALetter },\r
- {0x000c81, 0x000c83, WB_Extend },\r
- {0x000c85, 0x000c8c, WB_ALetter },\r
- {0x000c8e, 0x000c90, WB_ALetter },\r
- {0x000c92, 0x000ca8, WB_ALetter },\r
- {0x000caa, 0x000cb3, WB_ALetter },\r
- {0x000cb5, 0x000cb9, WB_ALetter },\r
- {0x000cbc, 0x000cbc, WB_Extend },\r
- {0x000cbd, 0x000cbd, WB_ALetter },\r
- {0x000cbe, 0x000cc4, WB_Extend },\r
- {0x000cc6, 0x000cc8, WB_Extend },\r
- {0x000cca, 0x000ccd, WB_Extend },\r
- {0x000cd5, 0x000cd6, WB_Extend },\r
- {0x000cde, 0x000cde, WB_ALetter },\r
- {0x000ce0, 0x000ce1, WB_ALetter },\r
- {0x000ce2, 0x000ce3, WB_Extend },\r
- {0x000ce6, 0x000cef, WB_Numeric },\r
- {0x000cf1, 0x000cf2, WB_ALetter },\r
- {0x000d00, 0x000d03, WB_Extend },\r
- {0x000d05, 0x000d0c, WB_ALetter },\r
- {0x000d0e, 0x000d10, WB_ALetter },\r
- {0x000d12, 0x000d3a, WB_ALetter },\r
- {0x000d3b, 0x000d3c, WB_Extend },\r
- {0x000d3d, 0x000d3d, WB_ALetter },\r
- {0x000d3e, 0x000d44, WB_Extend },\r
- {0x000d46, 0x000d48, WB_Extend },\r
- {0x000d4a, 0x000d4d, WB_Extend },\r
- {0x000d4e, 0x000d4e, WB_ALetter },\r
- {0x000d54, 0x000d56, WB_ALetter },\r
- {0x000d57, 0x000d57, WB_Extend },\r
- {0x000d5f, 0x000d61, WB_ALetter },\r
- {0x000d62, 0x000d63, WB_Extend },\r
- {0x000d66, 0x000d6f, WB_Numeric },\r
- {0x000d7a, 0x000d7f, WB_ALetter },\r
- {0x000d82, 0x000d83, WB_Extend },\r
- {0x000d85, 0x000d96, WB_ALetter },\r
- {0x000d9a, 0x000db1, WB_ALetter },\r
- {0x000db3, 0x000dbb, WB_ALetter },\r
- {0x000dbd, 0x000dbd, WB_ALetter },\r
- {0x000dc0, 0x000dc6, WB_ALetter },\r
- {0x000dca, 0x000dca, WB_Extend },\r
- {0x000dcf, 0x000dd4, WB_Extend },\r
- {0x000dd6, 0x000dd6, WB_Extend },\r
- {0x000dd8, 0x000ddf, WB_Extend },\r
- {0x000de6, 0x000def, WB_Numeric },\r
- {0x000df2, 0x000df3, WB_Extend },\r
- {0x000e31, 0x000e31, WB_Extend },\r
- {0x000e34, 0x000e3a, WB_Extend },\r
- {0x000e47, 0x000e4e, WB_Extend },\r
- {0x000e50, 0x000e59, WB_Numeric },\r
- {0x000eb1, 0x000eb1, WB_Extend },\r
- {0x000eb4, 0x000ebc, WB_Extend },\r
- {0x000ec8, 0x000ecd, WB_Extend },\r
- {0x000ed0, 0x000ed9, WB_Numeric },\r
- {0x000f00, 0x000f00, WB_ALetter },\r
- {0x000f18, 0x000f19, WB_Extend },\r
- {0x000f20, 0x000f29, WB_Numeric },\r
- {0x000f35, 0x000f35, WB_Extend },\r
- {0x000f37, 0x000f37, WB_Extend },\r
- {0x000f39, 0x000f39, WB_Extend },\r
- {0x000f3e, 0x000f3f, WB_Extend },\r
- {0x000f40, 0x000f47, WB_ALetter },\r
- {0x000f49, 0x000f6c, WB_ALetter },\r
- {0x000f71, 0x000f84, WB_Extend },\r
- {0x000f86, 0x000f87, WB_Extend },\r
- {0x000f88, 0x000f8c, WB_ALetter },\r
- {0x000f8d, 0x000f97, WB_Extend },\r
- {0x000f99, 0x000fbc, WB_Extend },\r
- {0x000fc6, 0x000fc6, WB_Extend },\r
- {0x00102b, 0x00103e, WB_Extend },\r
- {0x001040, 0x001049, WB_Numeric },\r
- {0x001056, 0x001059, WB_Extend },\r
- {0x00105e, 0x001060, WB_Extend },\r
- {0x001062, 0x001064, WB_Extend },\r
- {0x001067, 0x00106d, WB_Extend },\r
- {0x001071, 0x001074, WB_Extend },\r
- {0x001082, 0x00108d, WB_Extend },\r
- {0x00108f, 0x00108f, WB_Extend },\r
- {0x001090, 0x001099, WB_Numeric },\r
- {0x00109a, 0x00109d, WB_Extend },\r
- {0x0010a0, 0x0010c5, WB_ALetter },\r
- {0x0010c7, 0x0010c7, WB_ALetter },\r
- {0x0010cd, 0x0010cd, WB_ALetter },\r
- {0x0010d0, 0x0010fa, WB_ALetter },\r
- {0x0010fc, 0x001248, WB_ALetter },\r
- {0x00124a, 0x00124d, WB_ALetter },\r
- {0x001250, 0x001256, WB_ALetter },\r
- {0x001258, 0x001258, WB_ALetter },\r
- {0x00125a, 0x00125d, WB_ALetter },\r
- {0x001260, 0x001288, WB_ALetter },\r
- {0x00128a, 0x00128d, WB_ALetter },\r
- {0x001290, 0x0012b0, WB_ALetter },\r
- {0x0012b2, 0x0012b5, WB_ALetter },\r
- {0x0012b8, 0x0012be, WB_ALetter },\r
- {0x0012c0, 0x0012c0, WB_ALetter },\r
- {0x0012c2, 0x0012c5, WB_ALetter },\r
- {0x0012c8, 0x0012d6, WB_ALetter },\r
- {0x0012d8, 0x001310, WB_ALetter },\r
- {0x001312, 0x001315, WB_ALetter },\r
- {0x001318, 0x00135a, WB_ALetter },\r
- {0x00135d, 0x00135f, WB_Extend },\r
- {0x001380, 0x00138f, WB_ALetter },\r
- {0x0013a0, 0x0013f5, WB_ALetter },\r
- {0x0013f8, 0x0013fd, WB_ALetter },\r
- {0x001401, 0x00166c, WB_ALetter },\r
- {0x00166f, 0x00167f, WB_ALetter },\r
- {0x001680, 0x001680, WB_WSegSpace },\r
- {0x001681, 0x00169a, WB_ALetter },\r
- {0x0016a0, 0x0016ea, WB_ALetter },\r
- {0x0016ee, 0x0016f8, WB_ALetter },\r
- {0x001700, 0x00170c, WB_ALetter },\r
- {0x00170e, 0x001711, WB_ALetter },\r
- {0x001712, 0x001714, WB_Extend },\r
- {0x001720, 0x001731, WB_ALetter },\r
- {0x001732, 0x001734, WB_Extend },\r
- {0x001740, 0x001751, WB_ALetter },\r
- {0x001752, 0x001753, WB_Extend },\r
- {0x001760, 0x00176c, WB_ALetter },\r
- {0x00176e, 0x001770, WB_ALetter },\r
- {0x001772, 0x001773, WB_Extend },\r
- {0x0017b4, 0x0017d3, WB_Extend },\r
- {0x0017dd, 0x0017dd, WB_Extend },\r
- {0x0017e0, 0x0017e9, WB_Numeric },\r
- {0x00180b, 0x00180d, WB_Extend },\r
- {0x00180e, 0x00180e, WB_Format },\r
- {0x001810, 0x001819, WB_Numeric },\r
- {0x001820, 0x001878, WB_ALetter },\r
- {0x001880, 0x001884, WB_ALetter },\r
- {0x001885, 0x001886, WB_Extend },\r
- {0x001887, 0x0018a8, WB_ALetter },\r
- {0x0018a9, 0x0018a9, WB_Extend },\r
- {0x0018aa, 0x0018aa, WB_ALetter },\r
- {0x0018b0, 0x0018f5, WB_ALetter },\r
- {0x001900, 0x00191e, WB_ALetter },\r
- {0x001920, 0x00192b, WB_Extend },\r
- {0x001930, 0x00193b, WB_Extend },\r
- {0x001946, 0x00194f, WB_Numeric },\r
- {0x0019d0, 0x0019d9, WB_Numeric },\r
- {0x001a00, 0x001a16, WB_ALetter },\r
- {0x001a17, 0x001a1b, WB_Extend },\r
- {0x001a55, 0x001a5e, WB_Extend },\r
- {0x001a60, 0x001a7c, WB_Extend },\r
- {0x001a7f, 0x001a7f, WB_Extend },\r
- {0x001a80, 0x001a89, WB_Numeric },\r
- {0x001a90, 0x001a99, WB_Numeric },\r
- {0x001ab0, 0x001abe, WB_Extend },\r
- {0x001b00, 0x001b04, WB_Extend },\r
- {0x001b05, 0x001b33, WB_ALetter },\r
- {0x001b34, 0x001b44, WB_Extend },\r
- {0x001b45, 0x001b4b, WB_ALetter },\r
- {0x001b50, 0x001b59, WB_Numeric },\r
- {0x001b6b, 0x001b73, WB_Extend },\r
- {0x001b80, 0x001b82, WB_Extend },\r
- {0x001b83, 0x001ba0, WB_ALetter },\r
- {0x001ba1, 0x001bad, WB_Extend },\r
- {0x001bae, 0x001baf, WB_ALetter },\r
- {0x001bb0, 0x001bb9, WB_Numeric },\r
- {0x001bba, 0x001be5, WB_ALetter },\r
- {0x001be6, 0x001bf3, WB_Extend },\r
- {0x001c00, 0x001c23, WB_ALetter },\r
- {0x001c24, 0x001c37, WB_Extend },\r
- {0x001c40, 0x001c49, WB_Numeric },\r
- {0x001c4d, 0x001c4f, WB_ALetter },\r
- {0x001c50, 0x001c59, WB_Numeric },\r
- {0x001c5a, 0x001c7d, WB_ALetter },\r
- {0x001c80, 0x001c88, WB_ALetter },\r
- {0x001c90, 0x001cba, WB_ALetter },\r
- {0x001cbd, 0x001cbf, WB_ALetter },\r
- {0x001cd0, 0x001cd2, WB_Extend },\r
- {0x001cd4, 0x001ce8, WB_Extend },\r
- {0x001ce9, 0x001cec, WB_ALetter },\r
- {0x001ced, 0x001ced, WB_Extend },\r
- {0x001cee, 0x001cf3, WB_ALetter },\r
- {0x001cf4, 0x001cf4, WB_Extend },\r
- {0x001cf5, 0x001cf6, WB_ALetter },\r
- {0x001cf7, 0x001cf9, WB_Extend },\r
- {0x001cfa, 0x001cfa, WB_ALetter },\r
- {0x001d00, 0x001dbf, WB_ALetter },\r
- {0x001dc0, 0x001df9, WB_Extend },\r
- {0x001dfb, 0x001dff, WB_Extend },\r
- {0x001e00, 0x001f15, WB_ALetter },\r
- {0x001f18, 0x001f1d, WB_ALetter },\r
- {0x001f20, 0x001f45, WB_ALetter },\r
- {0x001f48, 0x001f4d, WB_ALetter },\r
- {0x001f50, 0x001f57, WB_ALetter },\r
- {0x001f59, 0x001f59, WB_ALetter },\r
- {0x001f5b, 0x001f5b, WB_ALetter },\r
- {0x001f5d, 0x001f5d, WB_ALetter },\r
- {0x001f5f, 0x001f7d, WB_ALetter },\r
- {0x001f80, 0x001fb4, WB_ALetter },\r
- {0x001fb6, 0x001fbc, WB_ALetter },\r
- {0x001fbe, 0x001fbe, WB_ALetter },\r
- {0x001fc2, 0x001fc4, WB_ALetter },\r
- {0x001fc6, 0x001fcc, WB_ALetter },\r
- {0x001fd0, 0x001fd3, WB_ALetter },\r
- {0x001fd6, 0x001fdb, WB_ALetter },\r
- {0x001fe0, 0x001fec, WB_ALetter },\r
- {0x001ff2, 0x001ff4, WB_ALetter },\r
- {0x001ff6, 0x001ffc, WB_ALetter },\r
- {0x002000, 0x002006, WB_WSegSpace },\r
- {0x002008, 0x00200a, WB_WSegSpace },\r
- {0x00200c, 0x00200c, WB_Extend },\r
- {0x00200d, 0x00200d, WB_ZWJ },\r
- {0x00200e, 0x00200f, WB_Format },\r
- {0x002018, 0x002019, WB_MidNumLet },\r
- {0x002024, 0x002024, WB_MidNumLet },\r
- {0x002027, 0x002027, WB_MidLetter },\r
- {0x002028, 0x002029, WB_Newline },\r
- {0x00202a, 0x00202e, WB_Format },\r
- {0x00202f, 0x00202f, WB_ExtendNumLet },\r
- {0x00203f, 0x002040, WB_ExtendNumLet },\r
- {0x002044, 0x002044, WB_MidNum },\r
- {0x002054, 0x002054, WB_ExtendNumLet },\r
- {0x00205f, 0x00205f, WB_WSegSpace },\r
- {0x002060, 0x002064, WB_Format },\r
- {0x002066, 0x00206f, WB_Format },\r
- {0x002071, 0x002071, WB_ALetter },\r
- {0x00207f, 0x00207f, WB_ALetter },\r
- {0x002090, 0x00209c, WB_ALetter },\r
- {0x0020d0, 0x0020f0, WB_Extend },\r
- {0x002102, 0x002102, WB_ALetter },\r
- {0x002107, 0x002107, WB_ALetter },\r
- {0x00210a, 0x002113, WB_ALetter },\r
- {0x002115, 0x002115, WB_ALetter },\r
- {0x002119, 0x00211d, WB_ALetter },\r
- {0x002124, 0x002124, WB_ALetter },\r
- {0x002126, 0x002126, WB_ALetter },\r
- {0x002128, 0x002128, WB_ALetter },\r
- {0x00212a, 0x00212d, WB_ALetter },\r
- {0x00212f, 0x002139, WB_ALetter },\r
- {0x00213c, 0x00213f, WB_ALetter },\r
- {0x002145, 0x002149, WB_ALetter },\r
- {0x00214e, 0x00214e, WB_ALetter },\r
- {0x002160, 0x002188, WB_ALetter },\r
- {0x0024b6, 0x0024e9, WB_ALetter },\r
- {0x002c00, 0x002c2e, WB_ALetter },\r
- {0x002c30, 0x002c5e, WB_ALetter },\r
- {0x002c60, 0x002ce4, WB_ALetter },\r
- {0x002ceb, 0x002cee, WB_ALetter },\r
- {0x002cef, 0x002cf1, WB_Extend },\r
- {0x002cf2, 0x002cf3, WB_ALetter },\r
- {0x002d00, 0x002d25, WB_ALetter },\r
- {0x002d27, 0x002d27, WB_ALetter },\r
- {0x002d2d, 0x002d2d, WB_ALetter },\r
- {0x002d30, 0x002d67, WB_ALetter },\r
- {0x002d6f, 0x002d6f, WB_ALetter },\r
- {0x002d7f, 0x002d7f, WB_Extend },\r
- {0x002d80, 0x002d96, WB_ALetter },\r
- {0x002da0, 0x002da6, WB_ALetter },\r
- {0x002da8, 0x002dae, WB_ALetter },\r
- {0x002db0, 0x002db6, WB_ALetter },\r
- {0x002db8, 0x002dbe, WB_ALetter },\r
- {0x002dc0, 0x002dc6, WB_ALetter },\r
- {0x002dc8, 0x002dce, WB_ALetter },\r
- {0x002dd0, 0x002dd6, WB_ALetter },\r
- {0x002dd8, 0x002dde, WB_ALetter },\r
- {0x002de0, 0x002dff, WB_Extend },\r
- {0x002e2f, 0x002e2f, WB_ALetter },\r
- {0x003000, 0x003000, WB_WSegSpace },\r
- {0x003005, 0x003005, WB_ALetter },\r
- {0x00302a, 0x00302f, WB_Extend },\r
- {0x003031, 0x003035, WB_Katakana },\r
- {0x00303b, 0x00303c, WB_ALetter },\r
- {0x003099, 0x00309a, WB_Extend },\r
- {0x00309b, 0x00309c, WB_Katakana },\r
- {0x0030a0, 0x0030fa, WB_Katakana },\r
- {0x0030fc, 0x0030ff, WB_Katakana },\r
- {0x003105, 0x00312f, WB_ALetter },\r
- {0x003131, 0x00318e, WB_ALetter },\r
- {0x0031a0, 0x0031ba, WB_ALetter },\r
- {0x0031f0, 0x0031ff, WB_Katakana },\r
- {0x0032d0, 0x0032fe, WB_Katakana },\r
- {0x003300, 0x003357, WB_Katakana },\r
- {0x00a000, 0x00a48c, WB_ALetter },\r
- {0x00a4d0, 0x00a4fd, WB_ALetter },\r
- {0x00a500, 0x00a60c, WB_ALetter },\r
- {0x00a610, 0x00a61f, WB_ALetter },\r
- {0x00a620, 0x00a629, WB_Numeric },\r
- {0x00a62a, 0x00a62b, WB_ALetter },\r
- {0x00a640, 0x00a66e, WB_ALetter },\r
- {0x00a66f, 0x00a672, WB_Extend },\r
- {0x00a674, 0x00a67d, WB_Extend },\r
- {0x00a67f, 0x00a69d, WB_ALetter },\r
- {0x00a69e, 0x00a69f, WB_Extend },\r
- {0x00a6a0, 0x00a6ef, WB_ALetter },\r
- {0x00a6f0, 0x00a6f1, WB_Extend },\r
- {0x00a717, 0x00a7bf, WB_ALetter },\r
- {0x00a7c2, 0x00a7c6, WB_ALetter },\r
- {0x00a7f7, 0x00a801, WB_ALetter },\r
- {0x00a802, 0x00a802, WB_Extend },\r
- {0x00a803, 0x00a805, WB_ALetter },\r
- {0x00a806, 0x00a806, WB_Extend },\r
- {0x00a807, 0x00a80a, WB_ALetter },\r
- {0x00a80b, 0x00a80b, WB_Extend },\r
- {0x00a80c, 0x00a822, WB_ALetter },\r
- {0x00a823, 0x00a827, WB_Extend },\r
- {0x00a840, 0x00a873, WB_ALetter },\r
- {0x00a880, 0x00a881, WB_Extend },\r
- {0x00a882, 0x00a8b3, WB_ALetter },\r
- {0x00a8b4, 0x00a8c5, WB_Extend },\r
- {0x00a8d0, 0x00a8d9, WB_Numeric },\r
- {0x00a8e0, 0x00a8f1, WB_Extend },\r
- {0x00a8f2, 0x00a8f7, WB_ALetter },\r
- {0x00a8fb, 0x00a8fb, WB_ALetter },\r
- {0x00a8fd, 0x00a8fe, WB_ALetter },\r
- {0x00a8ff, 0x00a8ff, WB_Extend },\r
- {0x00a900, 0x00a909, WB_Numeric },\r
- {0x00a90a, 0x00a925, WB_ALetter },\r
- {0x00a926, 0x00a92d, WB_Extend },\r
- {0x00a930, 0x00a946, WB_ALetter },\r
- {0x00a947, 0x00a953, WB_Extend },\r
- {0x00a960, 0x00a97c, WB_ALetter },\r
- {0x00a980, 0x00a983, WB_Extend },\r
- {0x00a984, 0x00a9b2, WB_ALetter },\r
- {0x00a9b3, 0x00a9c0, WB_Extend },\r
- {0x00a9cf, 0x00a9cf, WB_ALetter },\r
- {0x00a9d0, 0x00a9d9, WB_Numeric },\r
- {0x00a9e5, 0x00a9e5, WB_Extend },\r
- {0x00a9f0, 0x00a9f9, WB_Numeric },\r
- {0x00aa00, 0x00aa28, WB_ALetter },\r
- {0x00aa29, 0x00aa36, WB_Extend },\r
- {0x00aa40, 0x00aa42, WB_ALetter },\r
- {0x00aa43, 0x00aa43, WB_Extend },\r
- {0x00aa44, 0x00aa4b, WB_ALetter },\r
- {0x00aa4c, 0x00aa4d, WB_Extend },\r
- {0x00aa50, 0x00aa59, WB_Numeric },\r
- {0x00aa7b, 0x00aa7d, WB_Extend },\r
- {0x00aab0, 0x00aab0, WB_Extend },\r
- {0x00aab2, 0x00aab4, WB_Extend },\r
- {0x00aab7, 0x00aab8, WB_Extend },\r
- {0x00aabe, 0x00aabf, WB_Extend },\r
- {0x00aac1, 0x00aac1, WB_Extend },\r
- {0x00aae0, 0x00aaea, WB_ALetter },\r
- {0x00aaeb, 0x00aaef, WB_Extend },\r
- {0x00aaf2, 0x00aaf4, WB_ALetter },\r
- {0x00aaf5, 0x00aaf6, WB_Extend },\r
- {0x00ab01, 0x00ab06, WB_ALetter },\r
- {0x00ab09, 0x00ab0e, WB_ALetter },\r
- {0x00ab11, 0x00ab16, WB_ALetter },\r
- {0x00ab20, 0x00ab26, WB_ALetter },\r
- {0x00ab28, 0x00ab2e, WB_ALetter },\r
- {0x00ab30, 0x00ab67, WB_ALetter },\r
- {0x00ab70, 0x00abe2, WB_ALetter },\r
- {0x00abe3, 0x00abea, WB_Extend },\r
- {0x00abec, 0x00abed, WB_Extend },\r
- {0x00abf0, 0x00abf9, WB_Numeric },\r
- {0x00ac00, 0x00d7a3, WB_ALetter },\r
- {0x00d7b0, 0x00d7c6, WB_ALetter },\r
- {0x00d7cb, 0x00d7fb, WB_ALetter },\r
- {0x00fb00, 0x00fb06, WB_ALetter },\r
- {0x00fb13, 0x00fb17, WB_ALetter },\r
- {0x00fb1d, 0x00fb1d, WB_Hebrew_Letter },\r
- {0x00fb1e, 0x00fb1e, WB_Extend },\r
- {0x00fb1f, 0x00fb28, WB_Hebrew_Letter },\r
- {0x00fb2a, 0x00fb36, WB_Hebrew_Letter },\r
- {0x00fb38, 0x00fb3c, WB_Hebrew_Letter },\r
- {0x00fb3e, 0x00fb3e, WB_Hebrew_Letter },\r
- {0x00fb40, 0x00fb41, WB_Hebrew_Letter },\r
- {0x00fb43, 0x00fb44, WB_Hebrew_Letter },\r
- {0x00fb46, 0x00fb4f, WB_Hebrew_Letter },\r
- {0x00fb50, 0x00fbb1, WB_ALetter },\r
- {0x00fbd3, 0x00fd3d, WB_ALetter },\r
- {0x00fd50, 0x00fd8f, WB_ALetter },\r
- {0x00fd92, 0x00fdc7, WB_ALetter },\r
- {0x00fdf0, 0x00fdfb, WB_ALetter },\r
- {0x00fe00, 0x00fe0f, WB_Extend },\r
- {0x00fe10, 0x00fe10, WB_MidNum },\r
- {0x00fe13, 0x00fe13, WB_MidLetter },\r
- {0x00fe14, 0x00fe14, WB_MidNum },\r
- {0x00fe20, 0x00fe2f, WB_Extend },\r
- {0x00fe33, 0x00fe34, WB_ExtendNumLet },\r
- {0x00fe4d, 0x00fe4f, WB_ExtendNumLet },\r
- {0x00fe50, 0x00fe50, WB_MidNum },\r
- {0x00fe52, 0x00fe52, WB_MidNumLet },\r
- {0x00fe54, 0x00fe54, WB_MidNum },\r
- {0x00fe55, 0x00fe55, WB_MidLetter },\r
- {0x00fe70, 0x00fe74, WB_ALetter },\r
- {0x00fe76, 0x00fefc, WB_ALetter },\r
- {0x00feff, 0x00feff, WB_Format },\r
- {0x00ff07, 0x00ff07, WB_MidNumLet },\r
- {0x00ff0c, 0x00ff0c, WB_MidNum },\r
- {0x00ff0e, 0x00ff0e, WB_MidNumLet },\r
- {0x00ff10, 0x00ff19, WB_Numeric },\r
- {0x00ff1a, 0x00ff1a, WB_MidLetter },\r
- {0x00ff1b, 0x00ff1b, WB_MidNum },\r
- {0x00ff21, 0x00ff3a, WB_ALetter },\r
- {0x00ff3f, 0x00ff3f, WB_ExtendNumLet },\r
- {0x00ff41, 0x00ff5a, WB_ALetter },\r
- {0x00ff66, 0x00ff9d, WB_Katakana },\r
- {0x00ff9e, 0x00ff9f, WB_Extend },\r
- {0x00ffa0, 0x00ffbe, WB_ALetter },\r
- {0x00ffc2, 0x00ffc7, WB_ALetter },\r
- {0x00ffca, 0x00ffcf, WB_ALetter },\r
- {0x00ffd2, 0x00ffd7, WB_ALetter },\r
- {0x00ffda, 0x00ffdc, WB_ALetter },\r
- {0x00fff9, 0x00fffb, WB_Format },\r
- {0x010000, 0x01000b, WB_ALetter },\r
- {0x01000d, 0x010026, WB_ALetter },\r
- {0x010028, 0x01003a, WB_ALetter },\r
- {0x01003c, 0x01003d, WB_ALetter },\r
- {0x01003f, 0x01004d, WB_ALetter },\r
- {0x010050, 0x01005d, WB_ALetter },\r
- {0x010080, 0x0100fa, WB_ALetter },\r
- {0x010140, 0x010174, WB_ALetter },\r
- {0x0101fd, 0x0101fd, WB_Extend },\r
- {0x010280, 0x01029c, WB_ALetter },\r
- {0x0102a0, 0x0102d0, WB_ALetter },\r
- {0x0102e0, 0x0102e0, WB_Extend },\r
- {0x010300, 0x01031f, WB_ALetter },\r
- {0x01032d, 0x01034a, WB_ALetter },\r
- {0x010350, 0x010375, WB_ALetter },\r
- {0x010376, 0x01037a, WB_Extend },\r
- {0x010380, 0x01039d, WB_ALetter },\r
- {0x0103a0, 0x0103c3, WB_ALetter },\r
- {0x0103c8, 0x0103cf, WB_ALetter },\r
- {0x0103d1, 0x0103d5, WB_ALetter },\r
- {0x010400, 0x01049d, WB_ALetter },\r
- {0x0104a0, 0x0104a9, WB_Numeric },\r
- {0x0104b0, 0x0104d3, WB_ALetter },\r
- {0x0104d8, 0x0104fb, WB_ALetter },\r
- {0x010500, 0x010527, WB_ALetter },\r
- {0x010530, 0x010563, WB_ALetter },\r
- {0x010600, 0x010736, WB_ALetter },\r
- {0x010740, 0x010755, WB_ALetter },\r
- {0x010760, 0x010767, WB_ALetter },\r
- {0x010800, 0x010805, WB_ALetter },\r
- {0x010808, 0x010808, WB_ALetter },\r
- {0x01080a, 0x010835, WB_ALetter },\r
- {0x010837, 0x010838, WB_ALetter },\r
- {0x01083c, 0x01083c, WB_ALetter },\r
- {0x01083f, 0x010855, WB_ALetter },\r
- {0x010860, 0x010876, WB_ALetter },\r
- {0x010880, 0x01089e, WB_ALetter },\r
- {0x0108e0, 0x0108f2, WB_ALetter },\r
- {0x0108f4, 0x0108f5, WB_ALetter },\r
- {0x010900, 0x010915, WB_ALetter },\r
- {0x010920, 0x010939, WB_ALetter },\r
- {0x010980, 0x0109b7, WB_ALetter },\r
- {0x0109be, 0x0109bf, WB_ALetter },\r
- {0x010a00, 0x010a00, WB_ALetter },\r
- {0x010a01, 0x010a03, WB_Extend },\r
- {0x010a05, 0x010a06, WB_Extend },\r
- {0x010a0c, 0x010a0f, WB_Extend },\r
- {0x010a10, 0x010a13, WB_ALetter },\r
- {0x010a15, 0x010a17, WB_ALetter },\r
- {0x010a19, 0x010a35, WB_ALetter },\r
- {0x010a38, 0x010a3a, WB_Extend },\r
- {0x010a3f, 0x010a3f, WB_Extend },\r
- {0x010a60, 0x010a7c, WB_ALetter },\r
- {0x010a80, 0x010a9c, WB_ALetter },\r
- {0x010ac0, 0x010ac7, WB_ALetter },\r
- {0x010ac9, 0x010ae4, WB_ALetter },\r
- {0x010ae5, 0x010ae6, WB_Extend },\r
- {0x010b00, 0x010b35, WB_ALetter },\r
- {0x010b40, 0x010b55, WB_ALetter },\r
- {0x010b60, 0x010b72, WB_ALetter },\r
- {0x010b80, 0x010b91, WB_ALetter },\r
- {0x010c00, 0x010c48, WB_ALetter },\r
- {0x010c80, 0x010cb2, WB_ALetter },\r
- {0x010cc0, 0x010cf2, WB_ALetter },\r
- {0x010d00, 0x010d23, WB_ALetter },\r
- {0x010d24, 0x010d27, WB_Extend },\r
- {0x010d30, 0x010d39, WB_Numeric },\r
- {0x010f00, 0x010f1c, WB_ALetter },\r
- {0x010f27, 0x010f27, WB_ALetter },\r
- {0x010f30, 0x010f45, WB_ALetter },\r
- {0x010f46, 0x010f50, WB_Extend },\r
- {0x010fe0, 0x010ff6, WB_ALetter },\r
- {0x011000, 0x011002, WB_Extend },\r
- {0x011003, 0x011037, WB_ALetter },\r
- {0x011038, 0x011046, WB_Extend },\r
- {0x011066, 0x01106f, WB_Numeric },\r
- {0x01107f, 0x011082, WB_Extend },\r
- {0x011083, 0x0110af, WB_ALetter },\r
- {0x0110b0, 0x0110ba, WB_Extend },\r
- {0x0110bd, 0x0110bd, WB_Format },\r
- {0x0110cd, 0x0110cd, WB_Format },\r
- {0x0110d0, 0x0110e8, WB_ALetter },\r
- {0x0110f0, 0x0110f9, WB_Numeric },\r
- {0x011100, 0x011102, WB_Extend },\r
- {0x011103, 0x011126, WB_ALetter },\r
- {0x011127, 0x011134, WB_Extend },\r
- {0x011136, 0x01113f, WB_Numeric },\r
- {0x011144, 0x011144, WB_ALetter },\r
- {0x011145, 0x011146, WB_Extend },\r
- {0x011150, 0x011172, WB_ALetter },\r
- {0x011173, 0x011173, WB_Extend },\r
- {0x011176, 0x011176, WB_ALetter },\r
- {0x011180, 0x011182, WB_Extend },\r
- {0x011183, 0x0111b2, WB_ALetter },\r
- {0x0111b3, 0x0111c0, WB_Extend },\r
- {0x0111c1, 0x0111c4, WB_ALetter },\r
- {0x0111c9, 0x0111cc, WB_Extend },\r
- {0x0111d0, 0x0111d9, WB_Numeric },\r
- {0x0111da, 0x0111da, WB_ALetter },\r
- {0x0111dc, 0x0111dc, WB_ALetter },\r
- {0x011200, 0x011211, WB_ALetter },\r
- {0x011213, 0x01122b, WB_ALetter },\r
- {0x01122c, 0x011237, WB_Extend },\r
- {0x01123e, 0x01123e, WB_Extend },\r
- {0x011280, 0x011286, WB_ALetter },\r
- {0x011288, 0x011288, WB_ALetter },\r
- {0x01128a, 0x01128d, WB_ALetter },\r
- {0x01128f, 0x01129d, WB_ALetter },\r
- {0x01129f, 0x0112a8, WB_ALetter },\r
- {0x0112b0, 0x0112de, WB_ALetter },\r
- {0x0112df, 0x0112ea, WB_Extend },\r
- {0x0112f0, 0x0112f9, WB_Numeric },\r
- {0x011300, 0x011303, WB_Extend },\r
- {0x011305, 0x01130c, WB_ALetter },\r
- {0x01130f, 0x011310, WB_ALetter },\r
- {0x011313, 0x011328, WB_ALetter },\r
- {0x01132a, 0x011330, WB_ALetter },\r
- {0x011332, 0x011333, WB_ALetter },\r
- {0x011335, 0x011339, WB_ALetter },\r
- {0x01133b, 0x01133c, WB_Extend },\r
- {0x01133d, 0x01133d, WB_ALetter },\r
- {0x01133e, 0x011344, WB_Extend },\r
- {0x011347, 0x011348, WB_Extend },\r
- {0x01134b, 0x01134d, WB_Extend },\r
- {0x011350, 0x011350, WB_ALetter },\r
- {0x011357, 0x011357, WB_Extend },\r
- {0x01135d, 0x011361, WB_ALetter },\r
- {0x011362, 0x011363, WB_Extend },\r
- {0x011366, 0x01136c, WB_Extend },\r
- {0x011370, 0x011374, WB_Extend },\r
- {0x011400, 0x011434, WB_ALetter },\r
- {0x011435, 0x011446, WB_Extend },\r
- {0x011447, 0x01144a, WB_ALetter },\r
- {0x011450, 0x011459, WB_Numeric },\r
- {0x01145e, 0x01145e, WB_Extend },\r
- {0x01145f, 0x01145f, WB_ALetter },\r
- {0x011480, 0x0114af, WB_ALetter },\r
- {0x0114b0, 0x0114c3, WB_Extend },\r
- {0x0114c4, 0x0114c5, WB_ALetter },\r
- {0x0114c7, 0x0114c7, WB_ALetter },\r
- {0x0114d0, 0x0114d9, WB_Numeric },\r
- {0x011580, 0x0115ae, WB_ALetter },\r
- {0x0115af, 0x0115b5, WB_Extend },\r
- {0x0115b8, 0x0115c0, WB_Extend },\r
- {0x0115d8, 0x0115db, WB_ALetter },\r
- {0x0115dc, 0x0115dd, WB_Extend },\r
- {0x011600, 0x01162f, WB_ALetter },\r
- {0x011630, 0x011640, WB_Extend },\r
- {0x011644, 0x011644, WB_ALetter },\r
- {0x011650, 0x011659, WB_Numeric },\r
- {0x011680, 0x0116aa, WB_ALetter },\r
- {0x0116ab, 0x0116b7, WB_Extend },\r
- {0x0116b8, 0x0116b8, WB_ALetter },\r
- {0x0116c0, 0x0116c9, WB_Numeric },\r
- {0x01171d, 0x01172b, WB_Extend },\r
- {0x011730, 0x011739, WB_Numeric },\r
- {0x011800, 0x01182b, WB_ALetter },\r
- {0x01182c, 0x01183a, WB_Extend },\r
- {0x0118a0, 0x0118df, WB_ALetter },\r
- {0x0118e0, 0x0118e9, WB_Numeric },\r
- {0x0118ff, 0x0118ff, WB_ALetter },\r
- {0x0119a0, 0x0119a7, WB_ALetter },\r
- {0x0119aa, 0x0119d0, WB_ALetter },\r
- {0x0119d1, 0x0119d7, WB_Extend },\r
- {0x0119da, 0x0119e0, WB_Extend },\r
- {0x0119e1, 0x0119e1, WB_ALetter },\r
- {0x0119e3, 0x0119e3, WB_ALetter },\r
- {0x0119e4, 0x0119e4, WB_Extend },\r
- {0x011a00, 0x011a00, WB_ALetter },\r
- {0x011a01, 0x011a0a, WB_Extend },\r
- {0x011a0b, 0x011a32, WB_ALetter },\r
- {0x011a33, 0x011a39, WB_Extend },\r
- {0x011a3a, 0x011a3a, WB_ALetter },\r
- {0x011a3b, 0x011a3e, WB_Extend },\r
- {0x011a47, 0x011a47, WB_Extend },\r
- {0x011a50, 0x011a50, WB_ALetter },\r
- {0x011a51, 0x011a5b, WB_Extend },\r
- {0x011a5c, 0x011a89, WB_ALetter },\r
- {0x011a8a, 0x011a99, WB_Extend },\r
- {0x011a9d, 0x011a9d, WB_ALetter },\r
- {0x011ac0, 0x011af8, WB_ALetter },\r
- {0x011c00, 0x011c08, WB_ALetter },\r
- {0x011c0a, 0x011c2e, WB_ALetter },\r
- {0x011c2f, 0x011c36, WB_Extend },\r
- {0x011c38, 0x011c3f, WB_Extend },\r
- {0x011c40, 0x011c40, WB_ALetter },\r
- {0x011c50, 0x011c59, WB_Numeric },\r
- {0x011c72, 0x011c8f, WB_ALetter },\r
- {0x011c92, 0x011ca7, WB_Extend },\r
- {0x011ca9, 0x011cb6, WB_Extend },\r
- {0x011d00, 0x011d06, WB_ALetter },\r
- {0x011d08, 0x011d09, WB_ALetter },\r
- {0x011d0b, 0x011d30, WB_ALetter },\r
- {0x011d31, 0x011d36, WB_Extend },\r
- {0x011d3a, 0x011d3a, WB_Extend },\r
- {0x011d3c, 0x011d3d, WB_Extend },\r
- {0x011d3f, 0x011d45, WB_Extend },\r
- {0x011d46, 0x011d46, WB_ALetter },\r
- {0x011d47, 0x011d47, WB_Extend },\r
- {0x011d50, 0x011d59, WB_Numeric },\r
- {0x011d60, 0x011d65, WB_ALetter },\r
- {0x011d67, 0x011d68, WB_ALetter },\r
- {0x011d6a, 0x011d89, WB_ALetter },\r
- {0x011d8a, 0x011d8e, WB_Extend },\r
- {0x011d90, 0x011d91, WB_Extend },\r
- {0x011d93, 0x011d97, WB_Extend },\r
- {0x011d98, 0x011d98, WB_ALetter },\r
- {0x011da0, 0x011da9, WB_Numeric },\r
- {0x011ee0, 0x011ef2, WB_ALetter },\r
- {0x011ef3, 0x011ef6, WB_Extend },\r
- {0x012000, 0x012399, WB_ALetter },\r
- {0x012400, 0x01246e, WB_ALetter },\r
- {0x012480, 0x012543, WB_ALetter },\r
- {0x013000, 0x01342e, WB_ALetter },\r
- {0x013430, 0x013438, WB_Format },\r
- {0x014400, 0x014646, WB_ALetter },\r
- {0x016800, 0x016a38, WB_ALetter },\r
- {0x016a40, 0x016a5e, WB_ALetter },\r
- {0x016a60, 0x016a69, WB_Numeric },\r
- {0x016ad0, 0x016aed, WB_ALetter },\r
- {0x016af0, 0x016af4, WB_Extend },\r
- {0x016b00, 0x016b2f, WB_ALetter },\r
- {0x016b30, 0x016b36, WB_Extend },\r
- {0x016b40, 0x016b43, WB_ALetter },\r
- {0x016b50, 0x016b59, WB_Numeric },\r
- {0x016b63, 0x016b77, WB_ALetter },\r
- {0x016b7d, 0x016b8f, WB_ALetter },\r
- {0x016e40, 0x016e7f, WB_ALetter },\r
- {0x016f00, 0x016f4a, WB_ALetter },\r
- {0x016f4f, 0x016f4f, WB_Extend },\r
- {0x016f50, 0x016f50, WB_ALetter },\r
- {0x016f51, 0x016f87, WB_Extend },\r
- {0x016f8f, 0x016f92, WB_Extend },\r
- {0x016f93, 0x016f9f, WB_ALetter },\r
- {0x016fe0, 0x016fe1, WB_ALetter },\r
- {0x016fe3, 0x016fe3, WB_ALetter },\r
- {0x01b000, 0x01b000, WB_Katakana },\r
- {0x01b164, 0x01b167, WB_Katakana },\r
- {0x01bc00, 0x01bc6a, WB_ALetter },\r
- {0x01bc70, 0x01bc7c, WB_ALetter },\r
- {0x01bc80, 0x01bc88, WB_ALetter },\r
- {0x01bc90, 0x01bc99, WB_ALetter },\r
- {0x01bc9d, 0x01bc9e, WB_Extend },\r
- {0x01bca0, 0x01bca3, WB_Format },\r
- {0x01d165, 0x01d169, WB_Extend },\r
- {0x01d16d, 0x01d172, WB_Extend },\r
- {0x01d173, 0x01d17a, WB_Format },\r
- {0x01d17b, 0x01d182, WB_Extend },\r
- {0x01d185, 0x01d18b, WB_Extend },\r
- {0x01d1aa, 0x01d1ad, WB_Extend },\r
- {0x01d242, 0x01d244, WB_Extend },\r
- {0x01d400, 0x01d454, WB_ALetter },\r
- {0x01d456, 0x01d49c, WB_ALetter },\r
- {0x01d49e, 0x01d49f, WB_ALetter },\r
- {0x01d4a2, 0x01d4a2, WB_ALetter },\r
- {0x01d4a5, 0x01d4a6, WB_ALetter },\r
- {0x01d4a9, 0x01d4ac, WB_ALetter },\r
- {0x01d4ae, 0x01d4b9, WB_ALetter },\r
- {0x01d4bb, 0x01d4bb, WB_ALetter },\r
- {0x01d4bd, 0x01d4c3, WB_ALetter },\r
- {0x01d4c5, 0x01d505, WB_ALetter },\r
- {0x01d507, 0x01d50a, WB_ALetter },\r
- {0x01d50d, 0x01d514, WB_ALetter },\r
- {0x01d516, 0x01d51c, WB_ALetter },\r
- {0x01d51e, 0x01d539, WB_ALetter },\r
- {0x01d53b, 0x01d53e, WB_ALetter },\r
- {0x01d540, 0x01d544, WB_ALetter },\r
- {0x01d546, 0x01d546, WB_ALetter },\r
- {0x01d54a, 0x01d550, WB_ALetter },\r
- {0x01d552, 0x01d6a5, WB_ALetter },\r
- {0x01d6a8, 0x01d6c0, WB_ALetter },\r
- {0x01d6c2, 0x01d6da, WB_ALetter },\r
- {0x01d6dc, 0x01d6fa, WB_ALetter },\r
- {0x01d6fc, 0x01d714, WB_ALetter },\r
- {0x01d716, 0x01d734, WB_ALetter },\r
- {0x01d736, 0x01d74e, WB_ALetter },\r
- {0x01d750, 0x01d76e, WB_ALetter },\r
- {0x01d770, 0x01d788, WB_ALetter },\r
- {0x01d78a, 0x01d7a8, WB_ALetter },\r
- {0x01d7aa, 0x01d7c2, WB_ALetter },\r
- {0x01d7c4, 0x01d7cb, WB_ALetter },\r
- {0x01d7ce, 0x01d7ff, WB_Numeric },\r
- {0x01da00, 0x01da36, WB_Extend },\r
- {0x01da3b, 0x01da6c, WB_Extend },\r
- {0x01da75, 0x01da75, WB_Extend },\r
- {0x01da84, 0x01da84, WB_Extend },\r
- {0x01da9b, 0x01da9f, WB_Extend },\r
- {0x01daa1, 0x01daaf, WB_Extend },\r
- {0x01e000, 0x01e006, WB_Extend },\r
- {0x01e008, 0x01e018, WB_Extend },\r
- {0x01e01b, 0x01e021, WB_Extend },\r
- {0x01e023, 0x01e024, WB_Extend },\r
- {0x01e026, 0x01e02a, WB_Extend },\r
- {0x01e100, 0x01e12c, WB_ALetter },\r
- {0x01e130, 0x01e136, WB_Extend },\r
- {0x01e137, 0x01e13d, WB_ALetter },\r
- {0x01e140, 0x01e149, WB_Numeric },\r
- {0x01e14e, 0x01e14e, WB_ALetter },\r
- {0x01e2c0, 0x01e2eb, WB_ALetter },\r
- {0x01e2ec, 0x01e2ef, WB_Extend },\r
- {0x01e2f0, 0x01e2f9, WB_Numeric },\r
- {0x01e800, 0x01e8c4, WB_ALetter },\r
- {0x01e8d0, 0x01e8d6, WB_Extend },\r
- {0x01e900, 0x01e943, WB_ALetter },\r
- {0x01e944, 0x01e94a, WB_Extend },\r
- {0x01e94b, 0x01e94b, WB_ALetter },\r
- {0x01e950, 0x01e959, WB_Numeric },\r
- {0x01ee00, 0x01ee03, WB_ALetter },\r
- {0x01ee05, 0x01ee1f, WB_ALetter },\r
- {0x01ee21, 0x01ee22, WB_ALetter },\r
- {0x01ee24, 0x01ee24, WB_ALetter },\r
- {0x01ee27, 0x01ee27, WB_ALetter },\r
- {0x01ee29, 0x01ee32, WB_ALetter },\r
- {0x01ee34, 0x01ee37, WB_ALetter },\r
- {0x01ee39, 0x01ee39, WB_ALetter },\r
- {0x01ee3b, 0x01ee3b, WB_ALetter },\r
- {0x01ee42, 0x01ee42, WB_ALetter },\r
- {0x01ee47, 0x01ee47, WB_ALetter },\r
- {0x01ee49, 0x01ee49, WB_ALetter },\r
- {0x01ee4b, 0x01ee4b, WB_ALetter },\r
- {0x01ee4d, 0x01ee4f, WB_ALetter },\r
- {0x01ee51, 0x01ee52, WB_ALetter },\r
- {0x01ee54, 0x01ee54, WB_ALetter },\r
- {0x01ee57, 0x01ee57, WB_ALetter },\r
- {0x01ee59, 0x01ee59, WB_ALetter },\r
- {0x01ee5b, 0x01ee5b, WB_ALetter },\r
- {0x01ee5d, 0x01ee5d, WB_ALetter },\r
- {0x01ee5f, 0x01ee5f, WB_ALetter },\r
- {0x01ee61, 0x01ee62, WB_ALetter },\r
- {0x01ee64, 0x01ee64, WB_ALetter },\r
- {0x01ee67, 0x01ee6a, WB_ALetter },\r
- {0x01ee6c, 0x01ee72, WB_ALetter },\r
- {0x01ee74, 0x01ee77, WB_ALetter },\r
- {0x01ee79, 0x01ee7c, WB_ALetter },\r
- {0x01ee7e, 0x01ee7e, WB_ALetter },\r
- {0x01ee80, 0x01ee89, WB_ALetter },\r
- {0x01ee8b, 0x01ee9b, WB_ALetter },\r
- {0x01eea1, 0x01eea3, WB_ALetter },\r
- {0x01eea5, 0x01eea9, WB_ALetter },\r
- {0x01eeab, 0x01eebb, WB_ALetter },\r
- {0x01f130, 0x01f149, WB_ALetter },\r
- {0x01f150, 0x01f169, WB_ALetter },\r
- {0x01f170, 0x01f189, WB_ALetter },\r
- {0x01f1e6, 0x01f1ff, WB_Regional_Indicator },\r
- {0x01f3fb, 0x01f3ff, WB_Extend },\r
- {0x0e0001, 0x0e0001, WB_Format },\r
- {0x0e0020, 0x0e007f, WB_Extend },\r
- {0x0e0100, 0x0e01ef, WB_Extend }\r
-};\r
+++ /dev/null
-/**********************************************************************\r
- utf16_le.c - Oniguruma (regular expression library)\r
-**********************************************************************/\r
-/*-\r
- * Copyright (c) 2002-2019 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- */\r
-#include "regint.h" /* for USE_CALLOUT */\r
-\r
-static int\r
-init(void)\r
-{\r
-#ifdef USE_CALLOUT\r
-\r
- int id;\r
- OnigEncoding enc;\r
- char* name;\r
- unsigned int args[4];\r
- OnigValue opts[4];\r
-\r
- enc = ONIG_ENCODING_UTF16_LE;\r
-\r
- name = "F\000A\000I\000L\000\000\000"; BC0_P(name, fail);\r
- name = "M\000I\000S\000M\000A\000T\000C\000H\000\000\000"; BC0_P(name, mismatch);\r
-\r
- name = "M\000A\000X\000\000\000";\r
- args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- args[1] = ONIG_TYPE_CHAR;\r
- opts[0].c = 'X';\r
- BC_B_O(name, max, 2, args, 1, opts);\r
-\r
- name = "E\000R\000R\000O\000R\000\000\000";\r
- args[0] = ONIG_TYPE_LONG; opts[0].l = ONIG_ABORT;\r
- BC_P_O(name, error, 1, args, 1, opts);\r
-\r
- name = "C\000O\000U\000N\000T\000\000\000";\r
- args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
- BC_B_O(name, count, 1, args, 1, opts);\r
-\r
- name = "T\000O\000T\000A\000L\000_\000C\000O\000U\000N\000T\000\000\000";\r
- args[0] = ONIG_TYPE_CHAR; opts[0].c = '>';\r
- BC_B_O(name, total_count, 1, args, 1, opts);\r
-\r
- name = "C\000M\000P\000\000\000";\r
- args[0] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- args[1] = ONIG_TYPE_STRING;\r
- args[2] = ONIG_TYPE_TAG | ONIG_TYPE_LONG;\r
- BC_P(name, cmp, 3, args);\r
-\r
-#endif /* USE_CALLOUT */\r
-\r
- return ONIG_NORMAL;\r
-}\r
-\r
-static const int EncLen_UTF16[] = {\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2\r
-};\r
-\r
-static int\r
-utf16le_code_to_mbclen(OnigCodePoint code)\r
-{\r
- if (code > 0xffff) {\r
- if (code > 0x10ffff)\r
- return ONIGERR_INVALID_CODE_POINT_VALUE;\r
- else\r
- return 4;\r
- }\r
- else {\r
- return 2;\r
- }\r
-}\r
-\r
-static int\r
-utf16le_mbc_enc_len(const UChar* p)\r
-{\r
- return EncLen_UTF16[*(p+1)];\r
-}\r
-\r
-static int\r
-is_valid_mbc_string(const UChar* p, const UChar* end)\r
-{\r
- const UChar* end1 = end - 1;\r
-\r
- while (p < end1) {\r
- int len = utf16le_mbc_enc_len(p);\r
- if (len == 4) {\r
- if (p + 3 < end && ! UTF16_IS_SURROGATE_SECOND(*(p + 3)))\r
- return FALSE;\r
- }\r
- else\r
- if (UTF16_IS_SURROGATE_SECOND(*(p + 1)))\r
- return FALSE;\r
-\r
- p += len;\r
- }\r
-\r
- if (p != end)\r
- return FALSE;\r
- else\r
- return TRUE;\r
-}\r
-\r
-static int\r
-utf16le_is_mbc_newline(const UChar* p, const UChar* end)\r
-{\r
- if (p + 1 < end) {\r
- if (*p == 0x0a && *(p+1) == 0x00)\r
- return 1;\r
-#ifdef USE_UNICODE_ALL_LINE_TERMINATORS\r
- if ((\r
-#ifndef USE_CRNL_AS_LINE_TERMINATOR\r
- *p == 0x0d ||\r
-#endif\r
- *p == 0x85) && *(p+1) == 0x00)\r
- return 1;\r
-\r
- if (*(p+1) == 0x20 && (*p == 0x29 || *p == 0x28))\r
- return 1;\r
-#endif\r
- }\r
- return 0;\r
-}\r
-\r
-static OnigCodePoint\r
-utf16le_mbc_to_code(const UChar* p, const UChar* end ARG_UNUSED)\r
-{\r
- OnigCodePoint code;\r
- UChar c0 = *p;\r
- UChar c1 = *(p+1);\r
-\r
- if (UTF16_IS_SURROGATE_FIRST(c1)) {\r
- code = ((((c1 - 0xd8) << 2) + ((c0 & 0xc0) >> 6) + 1) << 16)\r
- + ((((c0 & 0x3f) << 2) + (p[3] - 0xdc)) << 8)\r
- + p[2];\r
- }\r
- else {\r
- code = c1 * 256 + p[0];\r
- }\r
- return code;\r
-}\r
-\r
-static int\r
-utf16le_code_to_mbc(OnigCodePoint code, UChar *buf)\r
-{\r
- UChar* p = buf;\r
-\r
- if (code > 0xffff) {\r
- unsigned int plane, high;\r
-\r
- plane = (code >> 16) - 1;\r
- high = (code & 0xff00) >> 8;\r
-\r
- *p++ = ((plane & 0x03) << 6) + (high >> 2);\r
- *p++ = (plane >> 2) + 0xd8;\r
- *p++ = (UChar )(code & 0xff);\r
- *p = (high & 0x03) + 0xdc;\r
- return 4;\r
- }\r
- else {\r
- *p++ = (UChar )(code & 0xff);\r
- *p++ = (UChar )((code & 0xff00) >> 8);\r
- return 2;\r
- }\r
-}\r
-\r
-static int\r
-utf16le_mbc_case_fold(OnigCaseFoldType flag,\r
- const UChar** pp, const UChar* end, UChar* fold)\r
-{\r
- const UChar* p = *pp;\r
-\r
- if (ONIGENC_IS_ASCII_CODE(*p) && *(p+1) == 0) {\r
-#ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI\r
- if ((flag & ONIGENC_CASE_FOLD_TURKISH_AZERI) != 0) {\r
- if (*p == 0x49) {\r
- *fold++ = 0x31;\r
- *fold = 0x01;\r
- (*pp) += 2;\r
- return 2;\r
- }\r
- }\r
-#endif\r
-\r
- *fold++ = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);\r
- *fold = 0;\r
- *pp += 2;\r
- return 2;\r
- }\r
- else\r
- return onigenc_unicode_mbc_case_fold(ONIG_ENCODING_UTF16_LE, flag, pp, end,\r
- fold);\r
-}\r
-\r
-#if 0\r
-static int\r
-utf16le_is_mbc_ambiguous(OnigCaseFoldType flag, const UChar** pp,\r
- const UChar* end)\r
-{\r
- const UChar* p = *pp;\r
-\r
- (*pp) += EncLen_UTF16[*(p+1)];\r
-\r
- if (*(p+1) == 0) {\r
- int c, v;\r
-\r
- if (*p == 0xdf && (flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {\r
- return TRUE;\r
- }\r
-\r
- c = *p;\r
- v = ONIGENC_IS_UNICODE_ISO_8859_1_BIT_CTYPE(c,\r
- (BIT_CTYPE_UPPER | BIT_CTYPE_LOWER));\r
- if ((v | BIT_CTYPE_LOWER) != 0) {\r
- /* 0xaa, 0xb5, 0xba are lower case letter, but can't convert. */\r
- if (c >= 0xaa && c <= 0xba)\r
- return FALSE;\r
- else\r
- return TRUE;\r
- }\r
- return (v != 0 ? TRUE : FALSE);\r
- }\r
-\r
- return FALSE;\r
-}\r
-#endif\r
-\r
-static UChar*\r
-utf16le_left_adjust_char_head(const UChar* start, const UChar* s)\r
-{\r
- if (s <= start) return (UChar* )s;\r
-\r
- if ((s - start) % 2 == 1) {\r
- s--;\r
- }\r
-\r
- if (UTF16_IS_SURROGATE_SECOND(*(s+1)) && s > start + 1 &&\r
- UTF16_IS_SURROGATE_FIRST(*(s-1)))\r
- s -= 2;\r
-\r
- return (UChar* )s;\r
-}\r
-\r
-static int\r
-utf16le_get_case_fold_codes_by_str(OnigCaseFoldType flag,\r
- const OnigUChar* p, const OnigUChar* end, OnigCaseFoldCodeItem items[])\r
-{\r
- return onigenc_unicode_get_case_fold_codes_by_str(ONIG_ENCODING_UTF16_LE,\r
- flag, p, end, items);\r
-}\r
-\r
-OnigEncodingType OnigEncodingUTF16_LE = {\r
- utf16le_mbc_enc_len,\r
- "UTF-16LE", /* name */\r
- 4, /* max enc length */\r
- 2, /* min enc length */\r
- utf16le_is_mbc_newline,\r
- utf16le_mbc_to_code,\r
- utf16le_code_to_mbclen,\r
- utf16le_code_to_mbc,\r
- utf16le_mbc_case_fold,\r
- onigenc_unicode_apply_all_case_fold,\r
- utf16le_get_case_fold_codes_by_str,\r
- onigenc_unicode_property_name_to_ctype,\r
- onigenc_unicode_is_code_ctype,\r
- onigenc_utf16_32_get_ctype_code_range,\r
- utf16le_left_adjust_char_head,\r
- onigenc_always_false_is_allowed_reverse_match,\r
- init,\r
- 0, /* is_initialized */\r
- is_valid_mbc_string,\r
- ENC_FLAG_UNICODE|ENC_FLAG_SKIP_OFFSET_1,\r
- 0, 0\r
-};\r
--- /dev/null
+/** @file\r
+\r
+ Provide intrinsics within Oniguruma\r
+\r
+ (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+\r
+#include <Library/BaseMemoryLib.h>\r
+\r
+//\r
+// From CryptoPkg/IntrinsicLib\r
+//\r
+\r
+/* Copies bytes between buffers */\r
+#pragma function(memcpy)\r
+void * memcpy (void *dest, const void *src, unsigned int count)\r
+{\r
+ return CopyMem (dest, src, (UINTN)count);\r
+}\r
+\r
+/* Sets buffers to a specified character */\r
+#pragma function(memset)\r
+void * memset (void *dest, char ch, unsigned int count)\r
+{\r
+ //\r
+ // NOTE: Here we use one base implementation for memset, instead of the direct\r
+ // optimized SetMem() wrapper. Because the IntrinsicLib has to be built\r
+ // without whole program optimization option, and there will be some\r
+ // potential register usage errors when calling other optimized codes.\r
+ //\r
+\r
+ //\r
+ // Declare the local variables that actually move the data elements as\r
+ // volatile to prevent the optimizer from replacing this function with\r
+ // the intrinsic memset()\r
+ //\r
+ volatile UINT8 *Pointer;\r
+\r
+ Pointer = (UINT8 *)dest;\r
+ while (count-- != 0) {\r
+ *(Pointer++) = ch;\r
+ }\r
+\r
+ return dest;\r
+}\r
--- /dev/null
+/** @file\r
+\r
+ Module to rewrite stdlib references within Oniguruma\r
+\r
+ (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#include "OnigurumaUefiPort.h"\r
+\r
+#define ONIGMEM_HEAD_SIGNATURE SIGNATURE_32('o','m','h','d')\r
+\r
+typedef struct {\r
+ UINT32 Signature;\r
+ UINTN Size;\r
+} ONIGMEM_HEAD;\r
+\r
+#define ONIGMEM_OVERHEAD sizeof(ONIGMEM_HEAD)\r
+\r
+int EFIAPI sprintf_s(char *str, size_t sizeOfBuffer, char const *fmt, ...)\r
+{\r
+ VA_LIST Marker;\r
+ int NumberOfPrinted;\r
+\r
+ VA_START (Marker, fmt);\r
+ NumberOfPrinted = (int)AsciiVSPrint (str, sizeOfBuffer, fmt, Marker);\r
+ VA_END (Marker);\r
+\r
+ return NumberOfPrinted;\r
+}\r
+\r
+int OnigStrCmp (const char* Str1, const char* Str2)\r
+{\r
+ return (int)AsciiStrCmp (Str1, Str2);\r
+}\r
+\r
+int strlen(const char* str)\r
+{\r
+ return strlen_s(str, MAX_STRING_SIZE);\r
+}\r
+\r
+void * malloc (size_t size)\r
+{\r
+ ONIGMEM_HEAD *PoolHdr;\r
+ UINTN NewSize;\r
+ VOID *Data;\r
+\r
+ NewSize = (UINTN)(size) + ONIGMEM_OVERHEAD;\r
+\r
+ Data = AllocatePool (NewSize);\r
+ if (Data != NULL) {\r
+ PoolHdr = (ONIGMEM_HEAD *)Data;\r
+ PoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;\r
+ PoolHdr->Size = size;\r
+\r
+ return (VOID *)(PoolHdr + 1);\r
+ }\r
+ return NULL;\r
+}\r
+\r
+void * realloc (void *ptr, size_t size)\r
+{\r
+ ONIGMEM_HEAD *OldPoolHdr;\r
+ ONIGMEM_HEAD *NewPoolHdr;\r
+ UINTN OldSize;\r
+ UINTN NewSize;\r
+ VOID *Data;\r
+\r
+ NewSize = (UINTN)size + ONIGMEM_OVERHEAD;\r
+ Data = AllocatePool (NewSize);\r
+ if (Data != NULL) {\r
+ NewPoolHdr = (ONIGMEM_HEAD *)Data;\r
+ NewPoolHdr->Signature = ONIGMEM_HEAD_SIGNATURE;\r
+ NewPoolHdr->Size = size;\r
+ if (ptr != NULL) {\r
+ OldPoolHdr = (ONIGMEM_HEAD *)ptr - 1;\r
+ ASSERT (OldPoolHdr->Signature == ONIGMEM_HEAD_SIGNATURE);\r
+ OldSize = OldPoolHdr->Size;\r
+\r
+ CopyMem ((VOID *)(NewPoolHdr + 1), ptr, MIN (OldSize, size));\r
+ FreePool ((VOID *)OldPoolHdr);\r
+ }\r
+ return (VOID *)(NewPoolHdr + 1);\r
+ }\r
+ return NULL;\r
+}\r
+\r
--- /dev/null
+/** @file\r
+\r
+ Module to rewrite stdlib references within Oniguruma\r
+\r
+ (C) Copyright 2014-2015 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
+**/\r
+#ifndef ONIGURUMA_UEFI_PORT_H\r
+#define ONIGURUMA_UEFI_PORT_H\r
+\r
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/PrintLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/BaseLib.h>\r
+#include <Library/DebugLib.h>\r
+\r
+\r
+#define ONIG_NO_STANDARD_C_HEADERS\r
+#define ONIG_NO_PRINT\r
+#define P_(args) args\r
+\r
+#define INT_MAX 0x7FFFFFFF\r
+#define LONG_MAX 0x7FFFFFFF\r
+#define UINT_MAX 0xFFFFFFFF\r
+#define ULONG_MAX 0xFFFFFFFF\r
+\r
+\r
+#define SIZEOF_LONG 4\r
+#define SIZEOF_LONG_LONG 8\r
+typedef UINTN size_t;\r
+typedef UINT32 uint32_t;\r
+typedef INTN intptr_t;\r
+\r
+#ifndef offsetof\r
+#define offsetof OFFSET_OF\r
+#endif\r
+\r
+#ifdef MDE_CPU_IA32\r
+#define SIZEOF_VOIDP 4\r
+#endif\r
+\r
+#ifdef MDE_CPU_X64\r
+#define SIZEOF_VOIDP 8\r
+#endif\r
+\r
+#define calloc(n,s) AllocateZeroPool((n)*(s))\r
+\r
+#define free(p) \\r
+ do { \\r
+ VOID *EvalOnce; \\r
+ \\r
+ EvalOnce = (p); \\r
+ if (EvalOnce != NULL) { \\r
+ FreePool (EvalOnce); \\r
+ } \\r
+ } while (FALSE)\r
+\r
+#define xmemmove(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
+#define xmemcpy(Dest,Src,Length) CopyMem(Dest,Src,Length)\r
+#define xmemset(Buffer,Value,Length) SetMem(Buffer,Length,Value)\r
+\r
+#define va_init_list(a,b) VA_START(a,b)\r
+#define va_list VA_LIST\r
+#define va_arg(a,b) VA_ARG(a,b)\r
+#define va_end(a) VA_END(a)\r
+#define va_start VA_START\r
+\r
+#define FILE VOID\r
+#define stdout NULL\r
+#define fprintf(...)\r
+#define fputs(a,b)\r
+#define vsnprintf (int)AsciiVSPrint\r
+#define _vsnprintf vsnprintf\r
+#define xsnprintf sprintf_s\r
+#define xvsnprintf vsnprintf\r
+#define alloca malloc\r
+\r
+#define setlocale(a,b)\r
+#define LC_ALL 0\r
+\r
+#define UCHAR_MAX 255\r
+#define MAX_STRING_SIZE 0x1000\r
+#define strlen_s(String,MaxSize) AsciiStrnLenS (String, MaxSize)\r
+#define xstrncpy(Dest, Src, MaxSize) strcat_s(Dest,MaxSize,Src)\r
+#define xstrcat(Dest,Src,MaxSize) strcat(Dest,Src,MaxSize)\r
+#define strcat(Dest,Src,MaxSize) strcat_s(Dest,MaxSize,Src)\r
+#define strcat_s(Dest,MaxSize,Src) AsciiStrCatS (Dest, MaxSize, Src)\r
+#define strncpy_s(Dest,MaxSize,Src,Length) AsciiStrnCpyS (Dest, MaxSize, Src, Length)\r
+#define strcmp OnigStrCmp\r
+\r
+int OnigStrCmp (const char* Str1, const char* Str2);\r
+\r
+int EFIAPI sprintf_s (char *str, size_t sizeOfBuffer, char const *fmt, ...);\r
+int strlen(const char* str);\r
+void* malloc(size_t size);\r
+void* realloc(void *ptr, size_t size);\r
+\r
+#define exit(n) ASSERT(FALSE);\r
+\r
+#endif // !ONIGURUMA_UEFI_PORT_H\r
EFI_REGULAR_EXPRESSION_PROTOCOL Header File.\r
\r
(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
+ Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
#ifndef __REGULAR_EXPRESSIONDXE_H__\r
#define __REGULAR_EXPRESSIONDXE_H__\r
\r
-#include "Oniguruma/oniguruma.h"\r
+#include "oniguruma/src/oniguruma.h"\r
\r
#include <Uefi.h>\r
#include <Protocol/RegularExpressionProtocol.h>\r
## @file\r
# EFI_REGULAR_EXPRESSION_PROTOCOL Implementation\r
#\r
-# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2018-2020, Intel Corporation. All rights reserved.<BR>\r
# (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>\r
#\r
# SPDX-License-Identifier: BSD-2-Clause-Patent\r
[Sources]\r
RegularExpressionDxe.c\r
RegularExpressionDxe.h\r
- Oniguruma/OnigurumaUefiPort.h\r
- Oniguruma/OnigurumaUefiPort.c\r
- Oniguruma/OnigurumaIntrinsics.c | MSFT\r
+ OnigurumaUefiPort.h\r
+ OnigurumaUefiPort.c\r
+ OnigurumaIntrinsics.c | MSFT\r
+\r
+# Wrapper header files start #\r
+ stdio.h\r
+ stdarg.h\r
+ stddef.h\r
+ stdlib.h\r
+ string.h\r
+ config.h\r
+# Wrapper header files end #\r
\r
# Upstream Oniguruma code\r
- Oniguruma/onig_init.c\r
- Oniguruma/oniguruma.h\r
- Oniguruma/regcomp.c\r
- Oniguruma/regenc.c\r
- Oniguruma/regenc.h\r
- Oniguruma/regerror.c\r
- Oniguruma/regexec.c\r
- Oniguruma/oniggnu.h\r
- Oniguruma/reggnu.c\r
- Oniguruma/regint.h\r
- Oniguruma/regparse.c\r
- Oniguruma/regparse.h\r
- Oniguruma/regposerr.c\r
- Oniguruma/onigposix.h\r
- Oniguruma/regposix.c\r
- Oniguruma/regsyntax.c\r
- Oniguruma/regtrav.c\r
- Oniguruma/regversion.c\r
- Oniguruma/st.c\r
- Oniguruma/st.h\r
+ oniguruma/src/onig_init.c\r
+ oniguruma/src/oniguruma.h\r
+ oniguruma/src/regcomp.c\r
+ oniguruma/src/regenc.c\r
+ oniguruma/src/regenc.h\r
+ oniguruma/src/regerror.c\r
+ oniguruma/src/regexec.c\r
+ oniguruma/src/oniggnu.h\r
+ oniguruma/src/reggnu.c\r
+ oniguruma/src/regint.h\r
+ oniguruma/src/regparse.c\r
+ oniguruma/src/regparse.h\r
+ oniguruma/src/regposerr.c\r
+ oniguruma/src/onigposix.h\r
+ oniguruma/src/regposix.c\r
+ oniguruma/src/regsyntax.c\r
+ oniguruma/src/regtrav.c\r
+ oniguruma/src/regversion.c\r
+ oniguruma/src/st.c\r
+ oniguruma/src/st.h\r
\r
# Supported Character Encodings\r
- Oniguruma/ascii.c\r
- Oniguruma/unicode.c\r
- Oniguruma/unicode_fold1_key.c\r
- Oniguruma/unicode_fold2_key.c\r
- Oniguruma/unicode_fold3_key.c\r
- Oniguruma/unicode_unfold_key.c\r
- Oniguruma/utf16_le.c\r
+ oniguruma/src/ascii.c\r
+ oniguruma/src/unicode.c\r
+ oniguruma/src/unicode_fold1_key.c\r
+ oniguruma/src/unicode_fold2_key.c\r
+ oniguruma/src/unicode_fold3_key.c\r
+ oniguruma/src/unicode_unfold_key.c\r
+ oniguruma/src/utf16_le.c\r
+ oniguruma/src/utf8.c\r
+ oniguruma/src/utf16_be.c\r
+ oniguruma/src/euc_jp.c\r
+ oniguruma/src/sjis.c\r
+ oniguruma/src/sjis_prop.c\r
+ oniguruma/src/euc_jp_prop.c\r
\r
[Packages]\r
MdePkg/MdePkg.dec\r
\r
[BuildOptions]\r
# Enable STDARG for variable arguments\r
- *_*_*_CC_FLAGS = -DHAVE_STDARG_H\r
+ *_*_*_CC_FLAGS = -DHAVE_STDARG_H -U_WIN32 -DONIG_VARIADIC_FUNC_ATTR=EFIAPI\r
\r
# Override MSFT build option to remove /Oi and /GL\r
MSFT:*_*_*_CC_FLAGS = /GL-\r
MSFT:*_*_*_CC_FLAGS = /wd4456\r
\r
# Oniguruma: signed and unsigned mismatch/cast\r
- MSFT:*_*_*_CC_FLAGS = /wd4018 /wd4245 /wd4389\r
+ MSFT:*_*_*_CC_FLAGS = /wd4018 /wd4245 /wd4389 /wd4090\r
\r
# Oniguruma: tag_end in parse_callout_of_name\r
GCC:*_*_*_CC_FLAGS = -Wno-error=maybe-uninitialized\r
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
--- /dev/null
+Subproject commit abfc8ff81df4067f309032467785e06975678f0d
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
--- /dev/null
+/** @file\r
+ Include file to support building the third-party oniguruma.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <OnigurumaUefiPort.h>\r
* [MdeModulePkg/Library/LzmaCustomDecompressLib](MdeModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
* [IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk](IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
* [BaseTools/Source/C/VfrCompile/Pccts](BaseTools/Source/C/VfrCompile/Pccts/RIGHTS)\r
-* [MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma](MdeModulePkg/Universal/RegularExpressionDxe/Oniguruma/README)\r
+* [MdeModulePkg/Universal/RegularExpressionDxe/oniguruma](https://github.com/kkos/oniguruma/blob/master/README.md)\r
* [OvmfPkg](OvmfPkg/License.txt)\r
* [CryptoPkg/Library/OpensslLib/openssl](https://github.com/openssl/openssl/blob/50eaac9f3337667259de725451f201e784599687/LICENSE)\r
* [ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3](https://github.com/ucb-bar/berkeley-softfloat-3/blob/b64af41c3276f97f0e181920400ee056b9c88037/COPYING.txt)\r
\r
- CryptoPkg/Library/OpensslLib/openssl\r
- ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3\r
+- MdeModulePkg/Universal/RegularExpressionDxe/oniguruma\r
\r
ArmSoftFloatLib is actually required by OpensslLib. It's inevitable\r
in openssl-1.1.1 (since stable201905) for floating point parameter\r