packages feed

quickjs-hs 0.1.2 → 0.1.2.1

raw patch · 11 files changed

+6231/−13 lines, 11 filesdep ~base

Dependency ranges changed: base

Files

ChangeLog.md view
@@ -1,9 +1,12 @@ # Changelog for quickjs-hs +### 0.1.2.1++* This one should compile+ ### 0.1.2  * removed `DerivingVia` for better backwards compatibility-  ### 0.1.1 
quickjs-hs.cabal view
@@ -1,6 +1,6 @@ cabal-version:  1.12 name:           quickjs-hs-version:        0.1.2+version:        0.1.2.1 homepage:       https://github.com/goodlyrottenapple/quickjs-hs#readme bug-reports:    https://github.com/goodlyrottenapple/quickjs-hs/issues author:         Sam Balco@@ -19,6 +19,19 @@     .     To get started, see the ReadMe below. ++extra-source-files:+    quickjs/cutils.h+  , quickjs/libbf.h+  , quickjs/libunicode-table.h+  , quickjs/libunicode.h+  , quickjs/libregexp-opcode.h+  , quickjs/libregexp.h+  , quickjs/list.h+  , quickjs/quickjs-atom.h+  , quickjs/quickjs-opcode.h++ source-repository head   type: git   location: https://github.com/goodlyrottenapple/quickjs-hs@@ -57,21 +70,11 @@     , quickjs/quickjs.c     , quickjs/quickjs-libc.h     , quickjs/quickjs-libc.c-  includes: -      quickjs/cutils.h-    , quickjs/libbf.h-    , quickjs/libunicode-table.h-    , quickjs/libunicode.h-    , quickjs/libregexp-opcode.h-    , quickjs/libregexp.h-    , quickjs/list.h-    , quickjs/quickjs-atom.h-    , quickjs/quickjs-opcode.h+   cc-options:      -static -D_GNU_SOURCE      -DCONFIG_VERSION="2020-07-05"     -DCONFIG_BIGNUM-  test-suite quickjs-hs-test   type:             exitcode-stdio-1.0
+ quickjs/cutils.h view
@@ -0,0 +1,297 @@+/*+ * C utilities+ * + * Copyright (c) 2017 Fabrice Bellard+ * Copyright (c) 2018 Charlie Gordon+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+#ifndef CUTILS_H+#define CUTILS_H++#include <stdlib.h>+#include <inttypes.h>++/* set if CPU is big endian */+#undef WORDS_BIGENDIAN++#define likely(x)       __builtin_expect(!!(x), 1)+#define unlikely(x)     __builtin_expect(!!(x), 0)+#define force_inline inline __attribute__((always_inline))+#define no_inline __attribute__((noinline))+#define __maybe_unused __attribute__((unused))++#define xglue(x, y) x ## y+#define glue(x, y) xglue(x, y)+#define stringify(s)    tostring(s)+#define tostring(s)     #s++#ifndef offsetof+#define offsetof(type, field) ((size_t) &((type *)0)->field)+#endif+#ifndef countof+#define countof(x) (sizeof(x) / sizeof((x)[0]))+#endif++typedef int BOOL;++#ifndef FALSE+enum {+    FALSE = 0,+    TRUE = 1,+};+#endif++void pstrcpy(char *buf, int buf_size, const char *str);+char *pstrcat(char *buf, int buf_size, const char *s);+int strstart(const char *str, const char *val, const char **ptr);+int has_suffix(const char *str, const char *suffix);++static inline int max_int(int a, int b)+{+    if (a > b)+        return a;+    else+        return b;+}++static inline int min_int(int a, int b)+{+    if (a < b)+        return a;+    else+        return b;+}++static inline uint32_t max_uint32(uint32_t a, uint32_t b)+{+    if (a > b)+        return a;+    else+        return b;+}++static inline uint32_t min_uint32(uint32_t a, uint32_t b)+{+    if (a < b)+        return a;+    else+        return b;+}++static inline int64_t max_int64(int64_t a, int64_t b)+{+    if (a > b)+        return a;+    else+        return b;+}++static inline int64_t min_int64(int64_t a, int64_t b)+{+    if (a < b)+        return a;+    else+        return b;+}++/* WARNING: undefined if a = 0 */+static inline int clz32(unsigned int a)+{+    return __builtin_clz(a);+}++/* WARNING: undefined if a = 0 */+static inline int clz64(uint64_t a)+{+    return __builtin_clzll(a);+}++/* WARNING: undefined if a = 0 */+static inline int ctz32(unsigned int a)+{+    return __builtin_ctz(a);+}++/* WARNING: undefined if a = 0 */+static inline int ctz64(uint64_t a)+{+    return __builtin_ctzll(a);+}++struct __attribute__((packed)) packed_u64 {+    uint64_t v;+};++struct __attribute__((packed)) packed_u32 {+    uint32_t v;+};++struct __attribute__((packed)) packed_u16 {+    uint16_t v;+};++static inline uint64_t get_u64(const uint8_t *tab)+{+    return ((const struct packed_u64 *)tab)->v;+}++static inline int64_t get_i64(const uint8_t *tab)+{+    return (int64_t)((const struct packed_u64 *)tab)->v;+}++static inline void put_u64(uint8_t *tab, uint64_t val)+{+    ((struct packed_u64 *)tab)->v = val;+}++static inline uint32_t get_u32(const uint8_t *tab)+{+    return ((const struct packed_u32 *)tab)->v;+}++static inline int32_t get_i32(const uint8_t *tab)+{+    return (int32_t)((const struct packed_u32 *)tab)->v;+}++static inline void put_u32(uint8_t *tab, uint32_t val)+{+    ((struct packed_u32 *)tab)->v = val;+}++static inline uint32_t get_u16(const uint8_t *tab)+{+    return ((const struct packed_u16 *)tab)->v;+}++static inline int32_t get_i16(const uint8_t *tab)+{+    return (int16_t)((const struct packed_u16 *)tab)->v;+}++static inline void put_u16(uint8_t *tab, uint16_t val)+{+    ((struct packed_u16 *)tab)->v = val;+}++static inline uint32_t get_u8(const uint8_t *tab)+{+    return *tab;+}++static inline int32_t get_i8(const uint8_t *tab)+{+    return (int8_t)*tab;+}++static inline void put_u8(uint8_t *tab, uint8_t val)+{+    *tab = val;+}++static inline uint16_t bswap16(uint16_t x)+{+    return (x >> 8) | (x << 8);+}++static inline uint32_t bswap32(uint32_t v)+{+    return ((v & 0xff000000) >> 24) | ((v & 0x00ff0000) >>  8) |+        ((v & 0x0000ff00) <<  8) | ((v & 0x000000ff) << 24);+}++static inline uint64_t bswap64(uint64_t v)+{+    return ((v & ((uint64_t)0xff << (7 * 8))) >> (7 * 8)) | +        ((v & ((uint64_t)0xff << (6 * 8))) >> (5 * 8)) | +        ((v & ((uint64_t)0xff << (5 * 8))) >> (3 * 8)) | +        ((v & ((uint64_t)0xff << (4 * 8))) >> (1 * 8)) | +        ((v & ((uint64_t)0xff << (3 * 8))) << (1 * 8)) | +        ((v & ((uint64_t)0xff << (2 * 8))) << (3 * 8)) | +        ((v & ((uint64_t)0xff << (1 * 8))) << (5 * 8)) | +        ((v & ((uint64_t)0xff << (0 * 8))) << (7 * 8));+}++/* XXX: should take an extra argument to pass slack information to the caller */+typedef void *DynBufReallocFunc(void *opaque, void *ptr, size_t size);++typedef struct DynBuf {+    uint8_t *buf;+    size_t size;+    size_t allocated_size;+    BOOL error; /* true if a memory allocation error occurred */+    DynBufReallocFunc *realloc_func;+    void *opaque; /* for realloc_func */+} DynBuf;++void dbuf_init(DynBuf *s);+void dbuf_init2(DynBuf *s, void *opaque, DynBufReallocFunc *realloc_func);+int dbuf_realloc(DynBuf *s, size_t new_size);+int dbuf_write(DynBuf *s, size_t offset, const uint8_t *data, size_t len);+int dbuf_put(DynBuf *s, const uint8_t *data, size_t len);+int dbuf_put_self(DynBuf *s, size_t offset, size_t len);+int dbuf_putc(DynBuf *s, uint8_t c);+int dbuf_putstr(DynBuf *s, const char *str);+static inline int dbuf_put_u16(DynBuf *s, uint16_t val)+{+    return dbuf_put(s, (uint8_t *)&val, 2);+}+static inline int dbuf_put_u32(DynBuf *s, uint32_t val)+{+    return dbuf_put(s, (uint8_t *)&val, 4);+}+static inline int dbuf_put_u64(DynBuf *s, uint64_t val)+{+    return dbuf_put(s, (uint8_t *)&val, 8);+}+int __attribute__((format(printf, 2, 3))) dbuf_printf(DynBuf *s,+                                                      const char *fmt, ...);+void dbuf_free(DynBuf *s);+static inline BOOL dbuf_error(DynBuf *s) {+    return s->error;+}+static inline void dbuf_set_error(DynBuf *s)+{+    s->error = TRUE;+}++#define UTF8_CHAR_LEN_MAX 6++int unicode_to_utf8(uint8_t *buf, unsigned int c);+int unicode_from_utf8(const uint8_t *p, int max_len, const uint8_t **pp);++static inline int from_hex(int c)+{+    if (c >= '0' && c <= '9')+        return c - '0';+    else if (c >= 'A' && c <= 'F')+        return c - 'A' + 10;+    else if (c >= 'a' && c <= 'f')+        return c - 'a' + 10;+    else+        return -1;+}++void rqsort(void *base, size_t nmemb, size_t size,+            int (*cmp)(const void *, const void *, void *),+            void *arg);++#endif  /* CUTILS_H */
+ quickjs/libbf.h view
@@ -0,0 +1,535 @@+/*+ * Tiny arbitrary precision floating point library+ * + * Copyright (c) 2017-2020 Fabrice Bellard+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+#ifndef LIBBF_H+#define LIBBF_H++#include <stddef.h>+#include <stdint.h>++#if defined(__x86_64__)+#define LIMB_LOG2_BITS 6+#else+#define LIMB_LOG2_BITS 5+#endif++#define LIMB_BITS (1 << LIMB_LOG2_BITS)++#if LIMB_BITS == 64+typedef __int128 int128_t;+typedef unsigned __int128 uint128_t;+typedef int64_t slimb_t;+typedef uint64_t limb_t;+typedef uint128_t dlimb_t;+#define BF_RAW_EXP_MIN INT64_MIN+#define BF_RAW_EXP_MAX INT64_MAX++#define LIMB_DIGITS 19+#define BF_DEC_BASE UINT64_C(10000000000000000000)++#else++typedef int32_t slimb_t;+typedef uint32_t limb_t;+typedef uint64_t dlimb_t;+#define BF_RAW_EXP_MIN INT32_MIN+#define BF_RAW_EXP_MAX INT32_MAX++#define LIMB_DIGITS 9+#define BF_DEC_BASE 1000000000U++#endif++/* in bits */+/* minimum number of bits for the exponent */+#define BF_EXP_BITS_MIN 3+/* maximum number of bits for the exponent */+#define BF_EXP_BITS_MAX (LIMB_BITS - 3)+/* extended range for exponent, used internally */+#define BF_EXT_EXP_BITS_MAX (BF_EXP_BITS_MAX + 1)+/* minimum possible precision */+#define BF_PREC_MIN 2+/* minimum possible precision */+#define BF_PREC_MAX (((limb_t)1 << (LIMB_BITS - 2)) - 2)+/* some operations support infinite precision */+#define BF_PREC_INF (BF_PREC_MAX + 1) /* infinite precision */++#if LIMB_BITS == 64+#define BF_CHKSUM_MOD (UINT64_C(975620677) * UINT64_C(9795002197))+#else+#define BF_CHKSUM_MOD 975620677U+#endif++#define BF_EXP_ZERO BF_RAW_EXP_MIN+#define BF_EXP_INF (BF_RAW_EXP_MAX - 1)+#define BF_EXP_NAN BF_RAW_EXP_MAX++/* +/-zero is represented with expn = BF_EXP_ZERO and len = 0,+   +/-infinity is represented with expn = BF_EXP_INF and len = 0,+   NaN is represented with expn = BF_EXP_NAN and len = 0 (sign is ignored)+ */+typedef struct {+    struct bf_context_t *ctx;+    int sign;+    slimb_t expn;+    limb_t len;+    limb_t *tab;+} bf_t;++typedef struct {+    /* must be kept identical to bf_t */+    struct bf_context_t *ctx;+    int sign;+    slimb_t expn;+    limb_t len;+    limb_t *tab;+} bfdec_t;++typedef enum {+    BF_RNDN, /* round to nearest, ties to even */+    BF_RNDZ, /* round to zero */+    BF_RNDD, /* round to -inf (the code relies on (BF_RNDD xor BF_RNDU) = 1) */+    BF_RNDU, /* round to +inf */+    BF_RNDNA, /* round to nearest, ties away from zero */+    BF_RNDA, /* round away from zero */+    BF_RNDF, /* faithful rounding (nondeterministic, either RNDD or RNDU,+                inexact flag is always set)  */+} bf_rnd_t;++/* allow subnormal numbers. Only available if the number of exponent+   bits is <= BF_EXP_BITS_USER_MAX and prec != BF_PREC_INF. */+#define BF_FLAG_SUBNORMAL (1 << 3)+/* 'prec' is the precision after the radix point instead of the whole+   mantissa. Can only be used with bf_round() and+   bfdec_[add|sub|mul|div|sqrt|round](). */+#define BF_FLAG_RADPNT_PREC (1 << 4)++#define BF_RND_MASK 0x7+#define BF_EXP_BITS_SHIFT 5+#define BF_EXP_BITS_MASK 0x3f++/* shortcut for bf_set_exp_bits(BF_EXT_EXP_BITS_MAX) */+#define BF_FLAG_EXT_EXP (BF_EXP_BITS_MASK << BF_EXP_BITS_SHIFT)++/* contains the rounding mode and number of exponents bits */+typedef uint32_t bf_flags_t;++typedef void *bf_realloc_func_t(void *opaque, void *ptr, size_t size);++typedef struct {+    bf_t val;+    limb_t prec;+} BFConstCache;++typedef struct bf_context_t {+    void *realloc_opaque;+    bf_realloc_func_t *realloc_func;+    BFConstCache log2_cache;+    BFConstCache pi_cache;+    struct BFNTTState *ntt_state;+} bf_context_t;++static inline int bf_get_exp_bits(bf_flags_t flags)+{+    int e;+    e = (flags >> BF_EXP_BITS_SHIFT) & BF_EXP_BITS_MASK;+    if (e == BF_EXP_BITS_MASK)+        return BF_EXP_BITS_MAX + 1;+    else+        return BF_EXP_BITS_MAX - e;+}++static inline bf_flags_t bf_set_exp_bits(int n)+{+    return ((BF_EXP_BITS_MAX - n) & BF_EXP_BITS_MASK) << BF_EXP_BITS_SHIFT;+}++/* returned status */+#define BF_ST_INVALID_OP  (1 << 0)+#define BF_ST_DIVIDE_ZERO (1 << 1)+#define BF_ST_OVERFLOW    (1 << 2)+#define BF_ST_UNDERFLOW   (1 << 3)+#define BF_ST_INEXACT     (1 << 4)+/* indicate that a memory allocation error occured. NaN is returned */+#define BF_ST_MEM_ERROR   (1 << 5) ++#define BF_RADIX_MAX 36 /* maximum radix for bf_atof() and bf_ftoa() */++static inline slimb_t bf_max(slimb_t a, slimb_t b)+{+    if (a > b)+        return a;+    else+        return b;+}++static inline slimb_t bf_min(slimb_t a, slimb_t b)+{+    if (a < b)+        return a;+    else+        return b;+}++void bf_context_init(bf_context_t *s, bf_realloc_func_t *realloc_func,+                     void *realloc_opaque);+void bf_context_end(bf_context_t *s);+/* free memory allocated for the bf cache data */+void bf_clear_cache(bf_context_t *s);++static inline void *bf_realloc(bf_context_t *s, void *ptr, size_t size)+{+    return s->realloc_func(s->realloc_opaque, ptr, size);+}++/* 'size' must be != 0 */+static inline void *bf_malloc(bf_context_t *s, size_t size)+{+    return bf_realloc(s, NULL, size);+}++static inline void bf_free(bf_context_t *s, void *ptr)+{+    /* must test ptr otherwise equivalent to malloc(0) */+    if (ptr)+        bf_realloc(s, ptr, 0);+}++void bf_init(bf_context_t *s, bf_t *r);++static inline void bf_delete(bf_t *r)+{+    bf_context_t *s = r->ctx;+    /* we accept to delete a zeroed bf_t structure */+    if (s && r->tab) {+        bf_realloc(s, r->tab, 0);+    }+}++static inline void bf_neg(bf_t *r)+{+    r->sign ^= 1;+}++static inline int bf_is_finite(const bf_t *a)+{+    return (a->expn < BF_EXP_INF);+}++static inline int bf_is_nan(const bf_t *a)+{+    return (a->expn == BF_EXP_NAN);+}++static inline int bf_is_zero(const bf_t *a)+{+    return (a->expn == BF_EXP_ZERO);+}++static inline void bf_memcpy(bf_t *r, const bf_t *a)+{+    *r = *a;+}++int bf_set_ui(bf_t *r, uint64_t a);+int bf_set_si(bf_t *r, int64_t a);+void bf_set_nan(bf_t *r);+void bf_set_zero(bf_t *r, int is_neg);+void bf_set_inf(bf_t *r, int is_neg);+int bf_set(bf_t *r, const bf_t *a);+void bf_move(bf_t *r, bf_t *a);+int bf_get_float64(const bf_t *a, double *pres, bf_rnd_t rnd_mode);+int bf_set_float64(bf_t *a, double d);++int bf_cmpu(const bf_t *a, const bf_t *b);+int bf_cmp_full(const bf_t *a, const bf_t *b);+int bf_cmp(const bf_t *a, const bf_t *b);+static inline int bf_cmp_eq(const bf_t *a, const bf_t *b)+{+    return bf_cmp(a, b) == 0;+}++static inline int bf_cmp_le(const bf_t *a, const bf_t *b)+{+    return bf_cmp(a, b) <= 0;+}++static inline int bf_cmp_lt(const bf_t *a, const bf_t *b)+{+    return bf_cmp(a, b) < 0;+}++int bf_add(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);+int bf_sub(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);+int bf_add_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec, bf_flags_t flags);+int bf_mul(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);+int bf_mul_ui(bf_t *r, const bf_t *a, uint64_t b1, limb_t prec, bf_flags_t flags);+int bf_mul_si(bf_t *r, const bf_t *a, int64_t b1, limb_t prec, +              bf_flags_t flags);+int bf_mul_2exp(bf_t *r, slimb_t e, limb_t prec, bf_flags_t flags);+int bf_div(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec, bf_flags_t flags);+#define BF_DIVREM_EUCLIDIAN BF_RNDF+int bf_divrem(bf_t *q, bf_t *r, const bf_t *a, const bf_t *b,+              limb_t prec, bf_flags_t flags, int rnd_mode);+int bf_rem(bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,+           bf_flags_t flags, int rnd_mode);+int bf_remquo(slimb_t *pq, bf_t *r, const bf_t *a, const bf_t *b, limb_t prec,+              bf_flags_t flags, int rnd_mode);+/* round to integer with infinite precision */+int bf_rint(bf_t *r, int rnd_mode);+int bf_round(bf_t *r, limb_t prec, bf_flags_t flags);+int bf_sqrtrem(bf_t *r, bf_t *rem1, const bf_t *a);+int bf_sqrt(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+slimb_t bf_get_exp_min(const bf_t *a);+int bf_logic_or(bf_t *r, const bf_t *a, const bf_t *b);+int bf_logic_xor(bf_t *r, const bf_t *a, const bf_t *b);+int bf_logic_and(bf_t *r, const bf_t *a, const bf_t *b);++/* additional flags for bf_atof */+/* do not accept hex radix prefix (0x or 0X) if radix = 0 or radix = 16 */+#define BF_ATOF_NO_HEX       (1 << 16)+/* accept binary (0b or 0B) or octal (0o or 0O) radix prefix if radix = 0 */+#define BF_ATOF_BIN_OCT      (1 << 17)+/* Do not parse NaN or Inf */+#define BF_ATOF_NO_NAN_INF   (1 << 18)+/* return the exponent separately */+#define BF_ATOF_EXPONENT       (1 << 19)++int bf_atof(bf_t *a, const char *str, const char **pnext, int radix,+            limb_t prec, bf_flags_t flags);+/* this version accepts prec = BF_PREC_INF and returns the radix+   exponent */+int bf_atof2(bf_t *r, slimb_t *pexponent,+             const char *str, const char **pnext, int radix,+             limb_t prec, bf_flags_t flags);+int bf_mul_pow_radix(bf_t *r, const bf_t *T, limb_t radix,+                     slimb_t expn, limb_t prec, bf_flags_t flags);+++/* Conversion of floating point number to string. Return a null+   terminated string or NULL if memory error. *plen contains its+   length if plen != NULL.  The exponent letter is "e" for base 10,+   "p" for bases 2, 8, 16 with a binary exponent and "@" for the other+   bases. */++#define BF_FTOA_FORMAT_MASK (3 << 16)++/* fixed format: prec significant digits rounded with (flags &+   BF_RND_MASK). Exponential notation is used if too many zeros are+   needed.*/+#define BF_FTOA_FORMAT_FIXED (0 << 16)+/* fractional format: prec digits after the decimal point rounded with+   (flags & BF_RND_MASK) */+#define BF_FTOA_FORMAT_FRAC  (1 << 16)+/* free format: +   +   For binary radices with bf_ftoa() and for bfdec_ftoa(): use the minimum+   number of digits to represent 'a'. The precision and the rounding+   mode are ignored.+   +   For the non binary radices with bf_ftoa(): use as many digits as+   necessary so that bf_atof() return the same number when using+   precision 'prec', rounding to nearest and the subnormal+   configuration of 'flags'. The result is meaningful only if 'a' is+   already rounded to 'prec' bits. If the subnormal flag is set, the+   exponent in 'flags' must also be set to the desired exponent range.+*/+#define BF_FTOA_FORMAT_FREE  (2 << 16)+/* same as BF_FTOA_FORMAT_FREE but uses the minimum number of digits+   (takes more computation time). Identical to BF_FTOA_FORMAT_FREE for+   binary radices with bf_ftoa() and for bfdec_ftoa(). */+#define BF_FTOA_FORMAT_FREE_MIN (3 << 16)++/* force exponential notation for fixed or free format */+#define BF_FTOA_FORCE_EXP    (1 << 20)+/* add 0x prefix for base 16, 0o prefix for base 8 or 0b prefix for+   base 2 if non zero value */+#define BF_FTOA_ADD_PREFIX   (1 << 21)+/* return "Infinity" instead of "Inf" and add a "+" for positive+   exponents */+#define BF_FTOA_JS_QUIRKS    (1 << 22)++char *bf_ftoa(size_t *plen, const bf_t *a, int radix, limb_t prec,+              bf_flags_t flags);++/* modulo 2^n instead of saturation. NaN and infinity return 0 */+#define BF_GET_INT_MOD (1 << 0) +int bf_get_int32(int *pres, const bf_t *a, int flags);+int bf_get_int64(int64_t *pres, const bf_t *a, int flags);+int bf_get_uint64(uint64_t *pres, const bf_t *a);++/* the following functions are exported for testing only. */+void mp_print_str(const char *str, const limb_t *tab, limb_t n);+void bf_print_str(const char *str, const bf_t *a);+int bf_resize(bf_t *r, limb_t len);+int bf_get_fft_size(int *pdpl, int *pnb_mods, limb_t len);+int bf_normalize_and_round(bf_t *r, limb_t prec1, bf_flags_t flags);+int bf_can_round(const bf_t *a, slimb_t prec, bf_rnd_t rnd_mode, slimb_t k);+slimb_t bf_mul_log2_radix(slimb_t a1, unsigned int radix, int is_inv,+                          int is_ceil1);+int mp_mul(bf_context_t *s, limb_t *result, +           const limb_t *op1, limb_t op1_size, +           const limb_t *op2, limb_t op2_size);+limb_t mp_add(limb_t *res, const limb_t *op1, const limb_t *op2, +              limb_t n, limb_t carry);+limb_t mp_add_ui(limb_t *tab, limb_t b, size_t n);+int mp_sqrtrem(bf_context_t *s, limb_t *tabs, limb_t *taba, limb_t n);+int mp_recip(bf_context_t *s, limb_t *tabr, const limb_t *taba, limb_t n);+limb_t bf_isqrt(limb_t a);++/* transcendental functions */+int bf_const_log2(bf_t *T, limb_t prec, bf_flags_t flags);+int bf_const_pi(bf_t *T, limb_t prec, bf_flags_t flags);+int bf_exp(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_log(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+#define BF_POW_JS_QUIRKS (1 << 16) /* (+/-1)^(+/-Inf) = NaN, 1^NaN = NaN */+int bf_pow(bf_t *r, const bf_t *x, const bf_t *y, limb_t prec, bf_flags_t flags);+int bf_cos(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_sin(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_tan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_atan(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_atan2(bf_t *r, const bf_t *y, const bf_t *x,+             limb_t prec, bf_flags_t flags);+int bf_asin(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);+int bf_acos(bf_t *r, const bf_t *a, limb_t prec, bf_flags_t flags);++/* decimal floating point */++static inline void bfdec_init(bf_context_t *s, bfdec_t *r)+{+    bf_init(s, (bf_t *)r);+}+static inline void bfdec_delete(bfdec_t *r)+{+    bf_delete((bf_t *)r);+}++static inline void bfdec_neg(bfdec_t *r)+{+    r->sign ^= 1;+}++static inline int bfdec_is_finite(const bfdec_t *a)+{+    return (a->expn < BF_EXP_INF);+}++static inline int bfdec_is_nan(const bfdec_t *a)+{+    return (a->expn == BF_EXP_NAN);+}++static inline int bfdec_is_zero(const bfdec_t *a)+{+    return (a->expn == BF_EXP_ZERO);+}++static inline void bfdec_memcpy(bfdec_t *r, const bfdec_t *a)+{+    bf_memcpy((bf_t *)r, (const bf_t *)a);+}++int bfdec_set_ui(bfdec_t *r, uint64_t a);+int bfdec_set_si(bfdec_t *r, int64_t a);++static inline void bfdec_set_nan(bfdec_t *r)+{+    bf_set_nan((bf_t *)r);+}+static inline void bfdec_set_zero(bfdec_t *r, int is_neg)+{+    bf_set_zero((bf_t *)r, is_neg);+}+static inline void bfdec_set_inf(bfdec_t *r, int is_neg)+{+    bf_set_inf((bf_t *)r, is_neg);+}+static inline int bfdec_set(bfdec_t *r, const bfdec_t *a)+{+    return bf_set((bf_t *)r, (bf_t *)a);+}+static inline void bfdec_move(bfdec_t *r, bfdec_t *a)+{+    bf_move((bf_t *)r, (bf_t *)a);+}+static inline int bfdec_cmpu(const bfdec_t *a, const bfdec_t *b)+{+    return bf_cmpu((const bf_t *)a, (const bf_t *)b);+}+static inline int bfdec_cmp_full(const bfdec_t *a, const bfdec_t *b)+{+    return bf_cmp_full((const bf_t *)a, (const bf_t *)b);+}+static inline int bfdec_cmp(const bfdec_t *a, const bfdec_t *b)+{+    return bf_cmp((const bf_t *)a, (const bf_t *)b);+}+static inline int bfdec_cmp_eq(const bfdec_t *a, const bfdec_t *b)+{+    return bfdec_cmp(a, b) == 0;+}+static inline int bfdec_cmp_le(const bfdec_t *a, const bfdec_t *b)+{+    return bfdec_cmp(a, b) <= 0;+}+static inline int bfdec_cmp_lt(const bfdec_t *a, const bfdec_t *b)+{+    return bfdec_cmp(a, b) < 0;+}++int bfdec_add(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,+              bf_flags_t flags);+int bfdec_sub(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,+              bf_flags_t flags);+int bfdec_add_si(bfdec_t *r, const bfdec_t *a, int64_t b1, limb_t prec,+                 bf_flags_t flags);+int bfdec_mul(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,+              bf_flags_t flags);+int bfdec_mul_si(bfdec_t *r, const bfdec_t *a, int64_t b1, limb_t prec,+                 bf_flags_t flags);+int bfdec_div(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,+              bf_flags_t flags);+int bfdec_divrem(bfdec_t *q, bfdec_t *r, const bfdec_t *a, const bfdec_t *b,+                 limb_t prec, bf_flags_t flags, int rnd_mode);+int bfdec_rem(bfdec_t *r, const bfdec_t *a, const bfdec_t *b, limb_t prec,+              bf_flags_t flags, int rnd_mode);+int bfdec_rint(bfdec_t *r, int rnd_mode);+int bfdec_sqrt(bfdec_t *r, const bfdec_t *a, limb_t prec, bf_flags_t flags);+int bfdec_round(bfdec_t *r, limb_t prec, bf_flags_t flags);+int bfdec_get_int32(int *pres, const bfdec_t *a);+int bfdec_pow_ui(bfdec_t *r, const bfdec_t *a, limb_t b);++char *bfdec_ftoa(size_t *plen, const bfdec_t *a, limb_t prec, bf_flags_t flags);+int bfdec_atof(bfdec_t *r, const char *str, const char **pnext,+               limb_t prec, bf_flags_t flags);++/* the following functions are exported for testing only. */+extern const limb_t mp_pow_dec[LIMB_DIGITS + 1];+void bfdec_print_str(const char *str, const bfdec_t *a);+static inline int bfdec_resize(bfdec_t *r, limb_t len)+{+    return bf_resize((bf_t *)r, len);+}+int bfdec_normalize_and_round(bfdec_t *r, limb_t prec1, bf_flags_t flags);++#endif /* LIBBF_H */
+ quickjs/libregexp-opcode.h view
@@ -0,0 +1,58 @@+/*+ * Regular Expression Engine+ * + * Copyright (c) 2017-2018 Fabrice Bellard+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */++#ifdef DEF++DEF(invalid, 1) /* never used */+DEF(char, 3)+DEF(char32, 5)+DEF(dot, 1)+DEF(any, 1) /* same as dot but match any character including line terminator */+DEF(line_start, 1)+DEF(line_end, 1)+DEF(goto, 5)+DEF(split_goto_first, 5)+DEF(split_next_first, 5)+DEF(match, 1)+DEF(save_start, 2) /* save start position */+DEF(save_end, 2) /* save end position, must come after saved_start */+DEF(save_reset, 3) /* reset save positions */+DEF(loop, 5) /* decrement the top the stack and goto if != 0 */+DEF(push_i32, 5) /* push integer on the stack */+DEF(drop, 1)+DEF(word_boundary, 1)+DEF(not_word_boundary, 1)+DEF(back_reference, 2)+DEF(backward_back_reference, 2) /* must come after back_reference */+DEF(range, 3) /* variable length */+DEF(range32, 3) /* variable length */+DEF(lookahead, 5)+DEF(negative_lookahead, 5)+DEF(push_char_pos, 1) /* push the character position on the stack */+DEF(bne_char_pos, 5) /* pop one stack element and jump if equal to the character+ position */+DEF(prev, 1) /* go to the previous char */+DEF(simple_greedy_quant, 17)++#endif /* DEF */
+ quickjs/libregexp.h view
@@ -0,0 +1,91 @@+/*+ * Regular Expression Engine+ * + * Copyright (c) 2017-2018 Fabrice Bellard+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+#ifndef LIBREGEXP_H+#define LIBREGEXP_H++#include <stddef.h>++#include "libunicode.h"++#define LRE_BOOL  int       /* for documentation purposes */++#define LRE_FLAG_GLOBAL     (1 << 0)+#define LRE_FLAG_IGNORECASE (1 << 1)+#define LRE_FLAG_MULTILINE  (1 << 2)+#define LRE_FLAG_DOTALL     (1 << 3)+#define LRE_FLAG_UTF16      (1 << 4)+#define LRE_FLAG_STICKY     (1 << 5)++#define LRE_FLAG_NAMED_GROUPS (1 << 7) /* named groups are present in the regexp */++uint8_t *lre_compile(int *plen, char *error_msg, int error_msg_size,+                     const char *buf, size_t buf_len, int re_flags,+                     void *opaque);+int lre_get_capture_count(const uint8_t *bc_buf);+int lre_get_flags(const uint8_t *bc_buf);+int lre_exec(uint8_t **capture,+             const uint8_t *bc_buf, const uint8_t *cbuf, int cindex, int clen,+             int cbuf_type, void *opaque);++int lre_parse_escape(const uint8_t **pp, int allow_utf16);+LRE_BOOL lre_is_space(int c);++/* must be provided by the user */+LRE_BOOL lre_check_stack_overflow(void *opaque, size_t alloca_size); +void *lre_realloc(void *opaque, void *ptr, size_t size);++/* JS identifier test */+extern uint32_t const lre_id_start_table_ascii[4];+extern uint32_t const lre_id_continue_table_ascii[4];++static inline int lre_js_is_ident_first(int c)+{+    if ((uint32_t)c < 128) {+        return (lre_id_start_table_ascii[c >> 5] >> (c & 31)) & 1;+    } else {+#ifdef CONFIG_ALL_UNICODE+        return lre_is_id_start(c);+#else+        return !lre_is_space(c);+#endif+    }+}++static inline int lre_js_is_ident_next(int c)+{+    if ((uint32_t)c < 128) {+        return (lre_id_continue_table_ascii[c >> 5] >> (c & 31)) & 1;+    } else {+        /* ZWNJ and ZWJ are accepted in identifiers */+#ifdef CONFIG_ALL_UNICODE+        return lre_is_id_continue(c) || c == 0x200C || c == 0x200D;+#else+        return !lre_is_space(c) || c == 0x200C || c == 0x200D;+#endif+    }+}++#undef LRE_BOOL++#endif /* LIBREGEXP_H */
+ quickjs/libunicode-table.h view
@@ -0,0 +1,4368 @@+/* Compressed unicode tables */+/* Automatically generated file - do not edit */++#include <stdint.h>++static const uint32_t case_conv_table1[361] = {+    0x00209a30, 0x00309a00, 0x005a8173, 0x00601730,+    0x006c0730, 0x006f81b3, 0x00701700, 0x007c0700,+    0x007f8100, 0x00803040, 0x009801c3, 0x00988190,+    0x00990640, 0x009c9040, 0x00a481b4, 0x00a52e40,+    0x00bc0130, 0x00bc8640, 0x00bf8170, 0x00c00100,+    0x00c08130, 0x00c10440, 0x00c30130, 0x00c38240,+    0x00c48230, 0x00c58240, 0x00c70130, 0x00c78130,+    0x00c80130, 0x00c88240, 0x00c98130, 0x00ca0130,+    0x00ca8100, 0x00cb0130, 0x00cb8130, 0x00cc0240,+    0x00cd0100, 0x00ce0130, 0x00ce8130, 0x00cf0100,+    0x00cf8130, 0x00d00640, 0x00d30130, 0x00d38240,+    0x00d48130, 0x00d60240, 0x00d70130, 0x00d78240,+    0x00d88230, 0x00d98440, 0x00db8130, 0x00dc0240,+    0x00de0240, 0x00df8100, 0x00e20350, 0x00e38350,+    0x00e50350, 0x00e69040, 0x00ee8100, 0x00ef1240,+    0x00f801b4, 0x00f88350, 0x00fa0240, 0x00fb0130,+    0x00fb8130, 0x00fc2840, 0x01100130, 0x01111240,+    0x011d0131, 0x011d8240, 0x011e8130, 0x011f0131,+    0x011f8201, 0x01208240, 0x01218130, 0x01220130,+    0x01228130, 0x01230a40, 0x01280101, 0x01288101,+    0x01290101, 0x01298100, 0x012a0100, 0x012b0200,+    0x012c8100, 0x012d8100, 0x012e0101, 0x01300100,+    0x01308101, 0x01318100, 0x01328101, 0x01330101,+    0x01340100, 0x01348100, 0x01350101, 0x01358101,+    0x01360101, 0x01378100, 0x01388101, 0x01390100,+    0x013a8100, 0x013e8101, 0x01400100, 0x01410101,+    0x01418100, 0x01438101, 0x01440100, 0x01448100,+    0x01450200, 0x01460100, 0x01490100, 0x014e8101,+    0x014f0101, 0x01a28173, 0x01b80440, 0x01bb0240,+    0x01bd8300, 0x01bf8130, 0x01c30130, 0x01c40330,+    0x01c60130, 0x01c70230, 0x01c801d0, 0x01c89130,+    0x01d18930, 0x01d60100, 0x01d68300, 0x01d801d3,+    0x01d89100, 0x01e10173, 0x01e18900, 0x01e60100,+    0x01e68200, 0x01e78130, 0x01e80173, 0x01e88173,+    0x01ea8173, 0x01eb0173, 0x01eb8100, 0x01ec1840,+    0x01f80173, 0x01f88173, 0x01f90100, 0x01f98100,+    0x01fa01a0, 0x01fa8173, 0x01fb8240, 0x01fc8130,+    0x01fd0240, 0x01fe8330, 0x02001030, 0x02082030,+    0x02182000, 0x02281000, 0x02302240, 0x02453640,+    0x02600130, 0x02608e40, 0x02678100, 0x02686040,+    0x0298a630, 0x02b0a600, 0x02c381b5, 0x08502631,+    0x08638131, 0x08668131, 0x08682b00, 0x087e8300,+    0x09d05011, 0x09f80610, 0x09fc0620, 0x0e400174,+    0x0e408174, 0x0e410174, 0x0e418174, 0x0e420174,+    0x0e428174, 0x0e430174, 0x0e438180, 0x0e440180,+    0x0e482b30, 0x0e5e8330, 0x0ebc8101, 0x0ebe8101,+    0x0ec70101, 0x0f007e40, 0x0f3f1840, 0x0f4b01b5,+    0x0f4b81b6, 0x0f4c01b6, 0x0f4c81b6, 0x0f4d01b7,+    0x0f4d8180, 0x0f4f0130, 0x0f506040, 0x0f800800,+    0x0f840830, 0x0f880600, 0x0f8c0630, 0x0f900800,+    0x0f940830, 0x0f980800, 0x0f9c0830, 0x0fa00600,+    0x0fa40630, 0x0fa801b0, 0x0fa88100, 0x0fa901d3,+    0x0fa98100, 0x0faa01d3, 0x0faa8100, 0x0fab01d3,+    0x0fab8100, 0x0fac8130, 0x0fad8130, 0x0fae8130,+    0x0faf8130, 0x0fb00800, 0x0fb40830, 0x0fb80200,+    0x0fb90400, 0x0fbb0200, 0x0fbc0201, 0x0fbd0201,+    0x0fbe0201, 0x0fc008b7, 0x0fc40867, 0x0fc808b8,+    0x0fcc0868, 0x0fd008b8, 0x0fd40868, 0x0fd80200,+    0x0fd901b9, 0x0fd981b1, 0x0fda01b9, 0x0fdb01b1,+    0x0fdb81d7, 0x0fdc0230, 0x0fdd0230, 0x0fde0161,+    0x0fdf0173, 0x0fe101b9, 0x0fe181b2, 0x0fe201ba,+    0x0fe301b2, 0x0fe381d8, 0x0fe40430, 0x0fe60162,+    0x0fe80200, 0x0fe901d0, 0x0fe981d0, 0x0feb01b0,+    0x0feb81d0, 0x0fec0230, 0x0fed0230, 0x0ff00201,+    0x0ff101d3, 0x0ff181d3, 0x0ff201ba, 0x0ff28101,+    0x0ff301b0, 0x0ff381d3, 0x0ff40230, 0x0ff50230,+    0x0ff60131, 0x0ff901ba, 0x0ff981b2, 0x0ffa01bb,+    0x0ffb01b2, 0x0ffb81d9, 0x0ffc0230, 0x0ffd0230,+    0x0ffe0162, 0x109301a0, 0x109501a0, 0x109581a0,+    0x10990131, 0x10a70101, 0x10b01031, 0x10b81001,+    0x10c18240, 0x125b1a31, 0x12681a01, 0x16002f31,+    0x16182f01, 0x16300240, 0x16310130, 0x16318130,+    0x16320130, 0x16328100, 0x16330100, 0x16338640,+    0x16368130, 0x16370130, 0x16378130, 0x16380130,+    0x16390240, 0x163a8240, 0x163f0230, 0x16406440,+    0x16758440, 0x16790240, 0x16802600, 0x16938100,+    0x16968100, 0x53202e40, 0x53401c40, 0x53910e40,+    0x53993e40, 0x53bc8440, 0x53be8130, 0x53bf0a40,+    0x53c58240, 0x53c68130, 0x53c80440, 0x53ca0101,+    0x53cb1440, 0x53d50130, 0x53d58130, 0x53d60130,+    0x53d68130, 0x53d70130, 0x53d80130, 0x53d88130,+    0x53d90130, 0x53d98131, 0x53da0c40, 0x53e10240,+    0x53e20131, 0x53e28130, 0x53e30130, 0x53e38440,+    0x53fa8240, 0x55a98101, 0x55b85020, 0x7d8001b2,+    0x7d8081b2, 0x7d8101b2, 0x7d8181da, 0x7d8201da,+    0x7d8281b3, 0x7d8301b3, 0x7d8981bb, 0x7d8a01bb,+    0x7d8a81bb, 0x7d8b01bc, 0x7d8b81bb, 0x7f909a31,+    0x7fa09a01, 0x82002831, 0x82142801, 0x82582431,+    0x826c2401, 0x86403331, 0x86603301, 0x8c502031,+    0x8c602001, 0xb7202031, 0xb7302001, 0xf4802231,+    0xf4912201,+};++static const uint8_t case_conv_table2[361] = {+    0x01, 0x00, 0x9c, 0x06, 0x07, 0x4d, 0x03, 0x04,+    0x10, 0x00, 0x8f, 0x0b, 0x00, 0x00, 0x11, 0x00,+    0x08, 0x00, 0x53, 0x4a, 0x51, 0x00, 0x52, 0x00,+    0x53, 0x00, 0x3a, 0x54, 0x55, 0x00, 0x57, 0x59,+    0x3f, 0x5d, 0x5c, 0x00, 0x46, 0x61, 0x63, 0x42,+    0x64, 0x00, 0x66, 0x00, 0x68, 0x00, 0x6a, 0x00,+    0x6c, 0x00, 0x6e, 0x00, 0x00, 0x40, 0x00, 0x00,+    0x00, 0x00, 0x1a, 0x00, 0x93, 0x00, 0x00, 0x20,+    0x35, 0x00, 0x27, 0x00, 0x21, 0x00, 0x24, 0x22,+    0x2a, 0x00, 0x13, 0x6b, 0x6d, 0x00, 0x26, 0x24,+    0x27, 0x14, 0x16, 0x18, 0x1b, 0x1c, 0x3e, 0x1e,+    0x3f, 0x1f, 0x39, 0x3d, 0x22, 0x21, 0x41, 0x1e,+    0x40, 0x25, 0x25, 0x26, 0x28, 0x20, 0x2a, 0x49,+    0x2c, 0x43, 0x2e, 0x4b, 0x30, 0x4c, 0x32, 0x44,+    0x42, 0x99, 0x00, 0x00, 0x95, 0x8f, 0x7d, 0x7e,+    0x83, 0x84, 0x12, 0x80, 0x82, 0x76, 0x77, 0x12,+    0x7b, 0xa3, 0x7c, 0x78, 0x79, 0x8a, 0x92, 0x98,+    0xa6, 0xa0, 0x85, 0x00, 0x9a, 0xa1, 0x93, 0x75,+    0x33, 0x95, 0x00, 0x8e, 0x00, 0x74, 0x99, 0x98,+    0x97, 0x96, 0x00, 0x00, 0x9e, 0x00, 0x9c, 0x00,+    0xa1, 0xa0, 0x15, 0x2e, 0x2f, 0x30, 0xb4, 0xb5,+    0x4e, 0xaa, 0xa9, 0x12, 0x14, 0x1e, 0x21, 0x22,+    0x22, 0x2a, 0x34, 0x35, 0xa6, 0xa7, 0x36, 0x1f,+    0x4a, 0x00, 0x00, 0x97, 0x01, 0x5a, 0xda, 0x1d,+    0x36, 0x05, 0x00, 0xc4, 0xc3, 0xc6, 0xc5, 0xc8,+    0xc7, 0xca, 0xc9, 0xcc, 0xcb, 0xc4, 0xd5, 0x45,+    0xd6, 0x42, 0xd7, 0x46, 0xd8, 0xce, 0xd0, 0xd2,+    0xd4, 0xda, 0xd9, 0xee, 0xf6, 0xfe, 0x0e, 0x07,+    0x0f, 0x80, 0x9f, 0x00, 0x21, 0x80, 0xa3, 0xed,+    0x00, 0xc0, 0x40, 0xc6, 0x60, 0xe7, 0xdb, 0xe6,+    0x99, 0xc0, 0x00, 0x00, 0x06, 0x60, 0xdc, 0x29,+    0xfd, 0x15, 0x12, 0x06, 0x16, 0xf8, 0xdd, 0x06,+    0x15, 0x12, 0x84, 0x08, 0xc6, 0x16, 0xff, 0xdf,+    0x03, 0xc0, 0x40, 0x00, 0x46, 0x60, 0xde, 0xe0,+    0x6d, 0x37, 0x38, 0x39, 0x15, 0x14, 0x17, 0x16,+    0x00, 0x1a, 0x19, 0x1c, 0x1b, 0x00, 0x5f, 0xb7,+    0x65, 0x44, 0x47, 0x00, 0x4f, 0x62, 0x4e, 0x50,+    0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0xa3, 0xa4,+    0xa5, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x00,+    0x00, 0x5a, 0x00, 0x48, 0x00, 0x5b, 0x56, 0x58,+    0x60, 0x5e, 0x70, 0x69, 0x6f, 0x4d, 0x00, 0x00,+    0x3b, 0x67, 0xb8, 0x00, 0x00, 0x45, 0xa8, 0x8a,+    0x8b, 0x8c, 0xab, 0xac, 0x58, 0x58, 0xaf, 0x94,+    0xb0, 0x6f, 0xb2, 0x5c, 0x5b, 0x5e, 0x5d, 0x60,+    0x5f, 0x62, 0x61, 0x64, 0x63, 0x66, 0x65, 0x68,+    0x67,+};++static const uint16_t case_conv_ext[58] = {+    0x0399, 0x0308, 0x0301, 0x03a5, 0x0313, 0x0300, 0x0342, 0x0391,+    0x0397, 0x03a9, 0x0046, 0x0049, 0x004c, 0x0053, 0x0069, 0x0307,+    0x02bc, 0x004e, 0x004a, 0x030c, 0x0535, 0x0552, 0x0048, 0x0331,+    0x0054, 0x0057, 0x030a, 0x0059, 0x0041, 0x02be, 0x1f08, 0x1f80,+    0x1f28, 0x1f90, 0x1f68, 0x1fa0, 0x1fba, 0x0386, 0x1fb3, 0x1fca,+    0x0389, 0x1fc3, 0x03a1, 0x1ffa, 0x038f, 0x1ff3, 0x0544, 0x0546,+    0x053b, 0x054e, 0x053d, 0x03b8, 0x0462, 0xa64a, 0x1e60, 0x03c9,+    0x006b, 0x00e5,+};++static const uint8_t unicode_prop_Cased1_table[172] = {+    0x40, 0xa9, 0x80, 0x8e, 0x80, 0xfc, 0x80, 0xd3,+    0x80, 0x8c, 0x80, 0x8d, 0x81, 0x8d, 0x02, 0x80,+    0xe1, 0x80, 0x91, 0x85, 0x9a, 0x01, 0x00, 0x01,+    0x11, 0x00, 0x01, 0x04, 0x08, 0x01, 0x08, 0x30,+    0x08, 0x01, 0x15, 0x20, 0x00, 0x39, 0x99, 0x31,+    0x9d, 0x84, 0x40, 0x94, 0x80, 0xd6, 0x82, 0xa6,+    0x80, 0x41, 0x62, 0x80, 0xa6, 0x80, 0x57, 0x76,+    0xf8, 0x02, 0x80, 0x8f, 0x80, 0xb0, 0x40, 0xdb,+    0x08, 0x80, 0x41, 0xd0, 0x80, 0x8c, 0x80, 0x8f,+    0x8c, 0xe4, 0x03, 0x01, 0x89, 0x00, 0x14, 0x28,+    0x10, 0x11, 0x02, 0x01, 0x18, 0x0b, 0x24, 0x4b,+    0x26, 0x01, 0x01, 0x86, 0xe5, 0x80, 0x60, 0x79,+    0xb6, 0x81, 0x40, 0x91, 0x81, 0xbd, 0x88, 0x94,+    0x05, 0x80, 0x98, 0x80, 0xc7, 0x82, 0x43, 0x34,+    0xa2, 0x06, 0x80, 0x8c, 0x61, 0x28, 0x96, 0xd4,+    0x80, 0xc6, 0x01, 0x08, 0x09, 0x0b, 0x80, 0x8b,+    0x00, 0x06, 0x80, 0xc0, 0x03, 0x0f, 0x06, 0x80,+    0x9b, 0x03, 0x04, 0x00, 0x16, 0x80, 0x41, 0x53,+    0x81, 0x98, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98,+    0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98,+    0x80, 0x9e, 0x80, 0x98, 0x07, 0x59, 0x63, 0x99,+    0x85, 0x99, 0x85, 0x99,+};++static const uint8_t unicode_prop_Cased1_index[18] = {+    0xb9, 0x02, 0xe0, 0xa0, 0x1e, 0x40, 0x9e, 0xa6,+    0x40, 0xba, 0xd4, 0x01, 0x89, 0xd7, 0x01, 0x8a,+    0xf1, 0x01,+};++static const uint8_t unicode_prop_Case_Ignorable_table[692] = {+    0xa6, 0x05, 0x80, 0x8a, 0x80, 0xa2, 0x00, 0x80,+    0xc6, 0x03, 0x00, 0x03, 0x01, 0x81, 0x41, 0xf6,+    0x40, 0xbf, 0x19, 0x18, 0x88, 0x08, 0x80, 0x40,+    0xfa, 0x86, 0x40, 0xce, 0x04, 0x80, 0xb0, 0xac,+    0x00, 0x01, 0x01, 0x00, 0xab, 0x80, 0x8a, 0x85,+    0x89, 0x8a, 0x00, 0xa2, 0x80, 0x89, 0x94, 0x8f,+    0x80, 0xe4, 0x38, 0x89, 0x03, 0xa0, 0x00, 0x80,+    0x9d, 0x9a, 0xda, 0x8a, 0xb9, 0x8a, 0x18, 0x08,+    0x97, 0x97, 0xaa, 0x82, 0xf6, 0xaf, 0xb6, 0x00,+    0x03, 0x3b, 0x02, 0x86, 0x89, 0x81, 0x8c, 0x80,+    0x8e, 0x80, 0xb9, 0x03, 0x1f, 0x80, 0x93, 0x81,+    0x99, 0x01, 0x81, 0xb8, 0x03, 0x0b, 0x09, 0x12,+    0x80, 0x9d, 0x0a, 0x80, 0x8a, 0x81, 0xb8, 0x03,+    0x20, 0x0b, 0x80, 0x93, 0x81, 0x95, 0x28, 0x80,+    0xb9, 0x01, 0x00, 0x1f, 0x06, 0x81, 0x8a, 0x81,+    0x9d, 0x80, 0xbc, 0x80, 0x8b, 0x80, 0xb1, 0x02,+    0x80, 0xb8, 0x14, 0x10, 0x1e, 0x81, 0x8a, 0x81,+    0x9c, 0x80, 0xb9, 0x01, 0x05, 0x04, 0x81, 0x93,+    0x81, 0x9b, 0x81, 0xb8, 0x0b, 0x1f, 0x80, 0x93,+    0x81, 0x9c, 0x80, 0xc7, 0x06, 0x10, 0x80, 0xd9,+    0x01, 0x86, 0x8a, 0x88, 0xe1, 0x01, 0x88, 0x88,+    0x00, 0x85, 0xc9, 0x81, 0x9a, 0x00, 0x00, 0x80,+    0xb6, 0x8d, 0x04, 0x01, 0x84, 0x8a, 0x80, 0xa3,+    0x88, 0x80, 0xe5, 0x18, 0x28, 0x09, 0x81, 0x98,+    0x0b, 0x82, 0x8f, 0x83, 0x8c, 0x01, 0x0d, 0x80,+    0x8e, 0x80, 0xdd, 0x80, 0x42, 0x5f, 0x82, 0x43,+    0xb1, 0x82, 0x9c, 0x82, 0x9c, 0x81, 0x9d, 0x81,+    0xbf, 0x08, 0x37, 0x01, 0x8a, 0x10, 0x20, 0xac,+    0x83, 0xb3, 0x80, 0xc0, 0x81, 0xa1, 0x80, 0xf5,+    0x13, 0x81, 0x88, 0x05, 0x82, 0x40, 0xda, 0x09,+    0x80, 0xb9, 0x00, 0x30, 0x00, 0x01, 0x3d, 0x89,+    0x08, 0xa6, 0x07, 0x90, 0xbe, 0x83, 0xaf, 0x00,+    0x20, 0x04, 0x80, 0xa7, 0x88, 0x8b, 0x81, 0x9f,+    0x19, 0x08, 0x82, 0xb7, 0x00, 0x0a, 0x00, 0x82,+    0xb9, 0x39, 0x81, 0xbf, 0x85, 0xd1, 0x10, 0x8c,+    0x06, 0x18, 0x28, 0x11, 0xb1, 0xbe, 0x8c, 0x80,+    0xa1, 0xde, 0x04, 0x41, 0xbc, 0x00, 0x82, 0x8a,+    0x82, 0x8c, 0x82, 0x8c, 0x82, 0x8c, 0x81, 0x8b,+    0x27, 0x81, 0x89, 0x01, 0x01, 0x84, 0xb0, 0x20,+    0x89, 0x00, 0x8c, 0x80, 0x8f, 0x8c, 0xb2, 0xa0,+    0x4b, 0x8a, 0x81, 0xf0, 0x82, 0xfc, 0x80, 0x8e,+    0x80, 0xdf, 0x9f, 0xae, 0x80, 0x41, 0xd4, 0x80,+    0xa3, 0x1a, 0x24, 0x80, 0xdc, 0x85, 0xdc, 0x82,+    0x60, 0x6f, 0x15, 0x80, 0x44, 0xe1, 0x85, 0x41,+    0x0d, 0x80, 0xe1, 0x18, 0x89, 0x00, 0x9b, 0x83,+    0xcf, 0x81, 0x8d, 0xa1, 0xcd, 0x80, 0x96, 0x82,+    0xec, 0x0f, 0x02, 0x03, 0x80, 0x98, 0x0c, 0x80,+    0x40, 0x96, 0x81, 0x99, 0x91, 0x8c, 0x80, 0xa5,+    0x87, 0x98, 0x8a, 0xad, 0x82, 0xaf, 0x01, 0x19,+    0x81, 0x90, 0x80, 0x94, 0x81, 0xc1, 0x29, 0x09,+    0x81, 0x8b, 0x07, 0x80, 0xa2, 0x80, 0x8a, 0x80,+    0xb2, 0x00, 0x11, 0x0c, 0x08, 0x80, 0x9a, 0x80,+    0x8d, 0x0c, 0x08, 0x80, 0xe3, 0x84, 0x88, 0x82,+    0xf8, 0x01, 0x03, 0x80, 0x60, 0x4f, 0x2f, 0x80,+    0x40, 0x92, 0x8f, 0x42, 0x3d, 0x8f, 0x10, 0x8b,+    0x8f, 0xa1, 0x01, 0x80, 0x40, 0xa8, 0x06, 0x05,+    0x80, 0x8a, 0x80, 0xa2, 0x00, 0x80, 0xae, 0x80,+    0xac, 0x81, 0xc2, 0x80, 0x94, 0x82, 0x42, 0x00,+    0x80, 0x40, 0xe1, 0x80, 0x40, 0x94, 0x84, 0x46,+    0x85, 0x10, 0x0c, 0x83, 0xa7, 0x13, 0x80, 0x40,+    0xa4, 0x81, 0x42, 0x3c, 0x83, 0x41, 0x82, 0x81,+    0x40, 0x98, 0x8a, 0x40, 0xaf, 0x80, 0xb5, 0x8e,+    0xb7, 0x82, 0xb0, 0x19, 0x09, 0x80, 0x8e, 0x80,+    0xb1, 0x82, 0xa3, 0x20, 0x87, 0xbd, 0x80, 0x8b,+    0x81, 0xb3, 0x88, 0x89, 0x19, 0x80, 0xde, 0x11,+    0x00, 0x0d, 0x80, 0x40, 0x9f, 0x02, 0x87, 0x94,+    0x81, 0xb8, 0x0a, 0x80, 0xa4, 0x32, 0x84, 0x40,+    0xc2, 0x39, 0x10, 0x80, 0x96, 0x80, 0xd3, 0x28,+    0x03, 0x08, 0x81, 0x40, 0xed, 0x1d, 0x08, 0x81,+    0x9a, 0x81, 0xd4, 0x39, 0x00, 0x81, 0xe9, 0x00,+    0x01, 0x28, 0x80, 0xe4, 0x11, 0x18, 0x84, 0x41,+    0x02, 0x88, 0x01, 0x40, 0xff, 0x08, 0x03, 0x80,+    0x40, 0x8f, 0x19, 0x0b, 0x80, 0x9f, 0x89, 0xa7,+    0x29, 0x1f, 0x80, 0x88, 0x29, 0x82, 0xad, 0x8c,+    0x01, 0x41, 0x95, 0x30, 0x28, 0x80, 0xd1, 0x95,+    0x0e, 0x01, 0x01, 0xf9, 0x2a, 0x00, 0x08, 0x30,+    0x80, 0xc7, 0x0a, 0x00, 0x80, 0x41, 0x5a, 0x81,+    0x55, 0x3a, 0x88, 0x60, 0x36, 0xb6, 0x84, 0xba,+    0x86, 0x88, 0x83, 0x44, 0x0a, 0x80, 0xbe, 0x90,+    0xbf, 0x08, 0x81, 0x60, 0x4c, 0xb7, 0x08, 0x83,+    0x54, 0xc2, 0x82, 0x88, 0x8f, 0x0e, 0x9d, 0x83,+    0x40, 0x93, 0x82, 0x47, 0xba, 0xb6, 0x83, 0xb1,+    0x38, 0x8d, 0x80, 0x95, 0x20, 0x8e, 0x45, 0x4f,+    0x30, 0x90, 0x0e, 0x01, 0x04, 0x41, 0x04, 0x8d,+    0x41, 0xad, 0x83, 0x45, 0xdf, 0x86, 0xec, 0x87,+    0x4a, 0xae, 0x84, 0x6c, 0x0c, 0x00, 0x80, 0x9d,+    0xdf, 0xff, 0x40, 0xef,+};++static const uint8_t unicode_prop_Case_Ignorable_index[66] = {+    0xbe, 0x05, 0x00, 0xfe, 0x07, 0x00, 0x52, 0x0a,+    0x20, 0x05, 0x0c, 0x20, 0x3b, 0x0e, 0x40, 0x61,+    0x10, 0x40, 0x0f, 0x18, 0x20, 0x43, 0x1b, 0x60,+    0x79, 0x1d, 0x00, 0xf1, 0x20, 0x00, 0x0d, 0xa6,+    0x40, 0x2e, 0xa9, 0x20, 0xde, 0xaa, 0x00, 0x0f,+    0xff, 0x20, 0xe7, 0x0a, 0x41, 0x82, 0x11, 0x21,+    0xc4, 0x14, 0x61, 0x44, 0x19, 0x01, 0x48, 0x1d,+    0x21, 0xa4, 0xbc, 0x01, 0x3e, 0xe1, 0x01, 0xf0,+    0x01, 0x0e,+};++static const uint8_t unicode_prop_ID_Start_table[1045] = {+    0xc0, 0x99, 0x85, 0x99, 0xae, 0x80, 0x89, 0x03,+    0x04, 0x96, 0x80, 0x9e, 0x80, 0x41, 0xc9, 0x83,+    0x8b, 0x8d, 0x26, 0x00, 0x80, 0x40, 0x80, 0x20,+    0x09, 0x18, 0x05, 0x00, 0x10, 0x00, 0x93, 0x80,+    0xd2, 0x80, 0x40, 0x8a, 0x87, 0x40, 0xa5, 0x80,+    0xa5, 0x08, 0x85, 0xa8, 0xc6, 0x9a, 0x1b, 0xac,+    0xaa, 0xa2, 0x08, 0xe2, 0x00, 0x8e, 0x0e, 0x81,+    0x89, 0x11, 0x80, 0x8f, 0x00, 0x9d, 0x9c, 0xd8,+    0x8a, 0x80, 0x97, 0xa0, 0x88, 0x0b, 0x04, 0x95,+    0x18, 0x88, 0x02, 0x80, 0x96, 0x98, 0x86, 0x8a,+    0xb4, 0x94, 0x80, 0x91, 0xbb, 0xb5, 0x10, 0x91,+    0x06, 0x89, 0x8e, 0x8f, 0x1f, 0x09, 0x81, 0x95,+    0x06, 0x00, 0x13, 0x10, 0x8f, 0x80, 0x8c, 0x08,+    0x82, 0x8d, 0x81, 0x89, 0x07, 0x2b, 0x09, 0x95,+    0x06, 0x01, 0x01, 0x01, 0x9e, 0x18, 0x80, 0x92,+    0x82, 0x8f, 0x88, 0x02, 0x80, 0x95, 0x06, 0x01,+    0x04, 0x10, 0x91, 0x80, 0x8e, 0x81, 0x96, 0x80,+    0x8a, 0x39, 0x09, 0x95, 0x06, 0x01, 0x04, 0x10,+    0x9d, 0x08, 0x82, 0x8e, 0x80, 0x90, 0x00, 0x2a,+    0x10, 0x1a, 0x08, 0x00, 0x0a, 0x0a, 0x12, 0x8b,+    0x95, 0x80, 0xb3, 0x38, 0x10, 0x96, 0x80, 0x8f,+    0x10, 0x99, 0x14, 0x81, 0x9d, 0x03, 0x38, 0x10,+    0x96, 0x80, 0x89, 0x04, 0x10, 0x9f, 0x00, 0x81,+    0x8e, 0x81, 0x90, 0x88, 0x02, 0x80, 0xa8, 0x08,+    0x8f, 0x04, 0x17, 0x82, 0x97, 0x2c, 0x91, 0x82,+    0x97, 0x80, 0x88, 0x00, 0x0e, 0xb9, 0xaf, 0x01,+    0x8b, 0x86, 0xb9, 0x08, 0x00, 0x20, 0x97, 0x00,+    0x80, 0x89, 0x01, 0x88, 0x01, 0x20, 0x80, 0x94,+    0x83, 0x9f, 0x80, 0xbe, 0x38, 0xa3, 0x9a, 0x84,+    0xf2, 0xaa, 0x93, 0x80, 0x8f, 0x2b, 0x1a, 0x02,+    0x0e, 0x13, 0x8c, 0x8b, 0x80, 0x90, 0xa5, 0x00,+    0x20, 0x81, 0xaa, 0x80, 0x41, 0x4c, 0x03, 0x0e,+    0x00, 0x03, 0x81, 0xa8, 0x03, 0x81, 0xa0, 0x03,+    0x0e, 0x00, 0x03, 0x81, 0x8e, 0x80, 0xb8, 0x03,+    0x81, 0xc2, 0xa4, 0x8f, 0x8f, 0xd5, 0x0d, 0x82,+    0x42, 0x6b, 0x81, 0x90, 0x80, 0x99, 0x84, 0xca,+    0x82, 0x8a, 0x86, 0x8c, 0x03, 0x8d, 0x91, 0x8d,+    0x91, 0x8d, 0x8c, 0x02, 0x8e, 0xb3, 0xa2, 0x03,+    0x80, 0xc2, 0xd8, 0x86, 0xa8, 0x00, 0x84, 0xc5,+    0x89, 0x9e, 0xb0, 0x9d, 0x0c, 0x8a, 0xab, 0x83,+    0x99, 0xb5, 0x96, 0x88, 0xb4, 0xd1, 0x80, 0xdc,+    0xae, 0x90, 0x86, 0xb6, 0x9d, 0x8c, 0x81, 0x89,+    0xab, 0x99, 0xa3, 0xa8, 0x82, 0x89, 0xa3, 0x81,+    0x88, 0x86, 0xaa, 0x0a, 0xa8, 0x18, 0x28, 0x0a,+    0x04, 0x40, 0xbf, 0xbf, 0x41, 0x15, 0x0d, 0x81,+    0xa5, 0x0d, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x9e,+    0x81, 0xb4, 0x06, 0x00, 0x12, 0x06, 0x13, 0x0d,+    0x83, 0x8c, 0x22, 0x06, 0xf3, 0x80, 0x8c, 0x80,+    0x8f, 0x8c, 0xe4, 0x03, 0x01, 0x89, 0x00, 0x0d,+    0x28, 0x00, 0x00, 0x80, 0x8f, 0x0b, 0x24, 0x18,+    0x90, 0xa8, 0x4a, 0x76, 0xae, 0x80, 0xae, 0x80,+    0x40, 0x84, 0x2b, 0x11, 0x8b, 0xa5, 0x00, 0x20,+    0x81, 0xb7, 0x30, 0x8f, 0x96, 0x88, 0x30, 0x30,+    0x30, 0x30, 0x30, 0x30, 0x30, 0x86, 0x42, 0x25,+    0x82, 0x98, 0x88, 0x34, 0x0c, 0x83, 0xd5, 0x1c,+    0x80, 0xd9, 0x03, 0x84, 0xaa, 0x80, 0xdd, 0x90,+    0x9f, 0xaf, 0x8f, 0x41, 0xff, 0x59, 0xbf, 0xbf,+    0x60, 0x51, 0xfc, 0x82, 0x44, 0x8c, 0xc2, 0xad,+    0x81, 0x41, 0x0c, 0x82, 0x8f, 0x89, 0x81, 0x93,+    0xae, 0x8f, 0x9e, 0x81, 0xcf, 0xa6, 0x88, 0x81,+    0xe6, 0x81, 0xb4, 0x81, 0x88, 0xa9, 0x8c, 0x02,+    0x03, 0x80, 0x96, 0x9c, 0xb3, 0x8d, 0xb1, 0xbd,+    0x2a, 0x00, 0x81, 0x8a, 0x9b, 0x89, 0x96, 0x98,+    0x9c, 0x86, 0xae, 0x9b, 0x80, 0x8f, 0x20, 0x89,+    0x89, 0x20, 0xa8, 0x96, 0x10, 0x87, 0x93, 0x96,+    0x10, 0x82, 0xb1, 0x00, 0x11, 0x0c, 0x08, 0x00,+    0x97, 0x11, 0x8a, 0x32, 0x8b, 0x29, 0x29, 0x85,+    0x88, 0x30, 0x30, 0xaa, 0x80, 0x8d, 0x85, 0xf2,+    0x9c, 0x60, 0x2b, 0xa3, 0x8b, 0x96, 0x83, 0xb0,+    0x60, 0x21, 0x03, 0x41, 0x6d, 0x81, 0xe9, 0xa5,+    0x86, 0x8b, 0x24, 0x00, 0x89, 0x80, 0x8c, 0x04,+    0x00, 0x01, 0x01, 0x80, 0xeb, 0xa0, 0x41, 0x6a,+    0x91, 0xbf, 0x81, 0xb5, 0xa7, 0x8b, 0xf3, 0x20,+    0x40, 0x86, 0xa3, 0x99, 0x85, 0x99, 0x8a, 0xd8,+    0x15, 0x0d, 0x0d, 0x0a, 0xa2, 0x8b, 0x80, 0x99,+    0x80, 0x92, 0x01, 0x80, 0x8e, 0x81, 0x8d, 0xa1,+    0xfa, 0xc4, 0xb4, 0x41, 0x0a, 0x9c, 0x82, 0xb0,+    0xae, 0x9f, 0x8c, 0x9d, 0x84, 0xa5, 0x89, 0x9d,+    0x81, 0xa3, 0x1f, 0x04, 0xa9, 0x40, 0x9d, 0x91,+    0xa3, 0x83, 0xa3, 0x83, 0xa7, 0x87, 0xb3, 0x40,+    0x9b, 0x41, 0x36, 0x88, 0x95, 0x89, 0x87, 0x40,+    0x97, 0x29, 0x00, 0xab, 0x01, 0x10, 0x81, 0x96,+    0x89, 0x96, 0x88, 0x9e, 0xc0, 0x92, 0x01, 0x89,+    0x95, 0x89, 0x99, 0xc5, 0xb7, 0x29, 0xbf, 0x80,+    0x8e, 0x18, 0x10, 0x9c, 0xa9, 0x9c, 0x82, 0x9c,+    0xa2, 0x38, 0x9b, 0x9a, 0xb5, 0x89, 0x95, 0x89,+    0x92, 0x8c, 0x91, 0xed, 0xc8, 0xb6, 0xb2, 0x8c,+    0xb2, 0x8c, 0xa3, 0x41, 0x5b, 0xa9, 0x29, 0xcd,+    0x9c, 0x89, 0x07, 0x95, 0xe9, 0x94, 0x9a, 0x96,+    0x8b, 0xb4, 0xca, 0xac, 0x9f, 0x98, 0x99, 0xa3,+    0x9c, 0x01, 0x07, 0xa2, 0x10, 0x8b, 0xaf, 0x8d,+    0x83, 0x94, 0x00, 0x80, 0xa2, 0x91, 0x80, 0x98,+    0xd3, 0x30, 0x00, 0x18, 0x8e, 0x80, 0x89, 0x86,+    0xae, 0xa5, 0x39, 0x09, 0x95, 0x06, 0x01, 0x04,+    0x10, 0x91, 0x80, 0x8b, 0x84, 0x40, 0x9d, 0xb4,+    0x91, 0x83, 0x93, 0x82, 0x9d, 0xaf, 0x93, 0x08,+    0x80, 0x40, 0xb7, 0xae, 0xa8, 0x83, 0xa3, 0xaf,+    0x93, 0x80, 0xba, 0xaa, 0x8c, 0x80, 0xc6, 0x9a,+    0x40, 0xe4, 0xab, 0xf3, 0xbf, 0x9e, 0x39, 0x01,+    0x38, 0x08, 0x97, 0x8e, 0x00, 0x80, 0xdd, 0x39,+    0xa6, 0x8f, 0x00, 0x80, 0x9b, 0x80, 0x89, 0xa7,+    0x30, 0x94, 0x80, 0x8a, 0xad, 0x92, 0x80, 0xa1,+    0xb8, 0x41, 0x06, 0x88, 0x80, 0xa4, 0x90, 0x80,+    0xb0, 0x9d, 0xef, 0x30, 0x08, 0xa5, 0x94, 0x80,+    0x98, 0x28, 0x08, 0x9f, 0x8d, 0x80, 0x41, 0x46,+    0x92, 0x40, 0xbc, 0x80, 0xce, 0x43, 0x99, 0xe5,+    0xee, 0x90, 0x40, 0xc3, 0x4a, 0xbb, 0x44, 0x2e,+    0x4f, 0xd0, 0x42, 0x46, 0x60, 0x21, 0xb8, 0x42,+    0x38, 0x86, 0x9e, 0xf0, 0x9d, 0x91, 0xaf, 0x8f,+    0x83, 0x9e, 0x94, 0x84, 0x92, 0x42, 0xaf, 0xbf,+    0xff, 0xca, 0x20, 0xc1, 0x8c, 0xbf, 0x08, 0x80,+    0x9b, 0x57, 0xf7, 0x87, 0x44, 0xd5, 0xa9, 0x88,+    0x60, 0x22, 0xf6, 0x41, 0x1e, 0xb0, 0x82, 0x90,+    0x1f, 0x41, 0x8b, 0x49, 0x03, 0xea, 0x84, 0x8c,+    0x82, 0x88, 0x86, 0x89, 0x57, 0x65, 0xd4, 0x80,+    0xc6, 0x01, 0x08, 0x09, 0x0b, 0x80, 0x8b, 0x00,+    0x06, 0x80, 0xc0, 0x03, 0x0f, 0x06, 0x80, 0x9b,+    0x03, 0x04, 0x00, 0x16, 0x80, 0x41, 0x53, 0x81,+    0x98, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x80,+    0x9e, 0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x80,+    0x9e, 0x80, 0x98, 0x07, 0x49, 0x33, 0xac, 0x89,+    0x86, 0x8f, 0x80, 0x41, 0x70, 0xab, 0x45, 0x13,+    0x40, 0xc4, 0xba, 0xc3, 0x30, 0x44, 0xb3, 0x18,+    0x9a, 0x01, 0x00, 0x08, 0x80, 0x89, 0x03, 0x00,+    0x00, 0x28, 0x18, 0x00, 0x00, 0x02, 0x01, 0x00,+    0x08, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x0b,+    0x06, 0x03, 0x03, 0x00, 0x80, 0x89, 0x80, 0x90,+    0x22, 0x04, 0x80, 0x90, 0x51, 0x43, 0x60, 0xa6,+    0xdd, 0xa1, 0x50, 0x34, 0x8a, 0x40, 0xdd, 0x81,+    0x56, 0x81, 0x8d, 0x5d, 0x30, 0x4c, 0x1e, 0x42,+    0x1d, 0x45, 0xe1, 0x53, 0x4a,+};++static const uint8_t unicode_prop_ID_Start_index[99] = {+    0xf6, 0x03, 0x20, 0xa6, 0x07, 0x00, 0xa9, 0x09,+    0x00, 0xb4, 0x0a, 0x00, 0xba, 0x0b, 0x00, 0x3e,+    0x0d, 0x00, 0xe0, 0x0e, 0x20, 0x57, 0x12, 0x00,+    0xeb, 0x16, 0x00, 0xca, 0x19, 0x20, 0xc0, 0x1d,+    0x60, 0x80, 0x20, 0x00, 0x2e, 0x2d, 0x00, 0xc0,+    0x31, 0x20, 0x89, 0xa7, 0x20, 0xf0, 0xa9, 0x00,+    0xe3, 0xab, 0x00, 0x3e, 0xfd, 0x00, 0xfb, 0x00,+    0x21, 0x37, 0x07, 0x61, 0x01, 0x0a, 0x01, 0x1d,+    0x0f, 0x21, 0x2c, 0x12, 0x01, 0xc8, 0x14, 0x21,+    0xd1, 0x19, 0x21, 0x47, 0x1d, 0x01, 0x39, 0x6a,+    0x21, 0x09, 0x8d, 0x01, 0xbc, 0xd4, 0x01, 0xa9,+    0xd7, 0x21, 0x3a, 0xee, 0x01, 0xde, 0xa6, 0x22,+    0x4b, 0x13, 0x03,+};++static const uint8_t unicode_prop_ID_Continue1_table[626] = {+    0xaf, 0x89, 0xa4, 0x80, 0xd6, 0x80, 0x42, 0x47,+    0xef, 0x96, 0x80, 0x40, 0xfa, 0x84, 0x41, 0x08,+    0xac, 0x00, 0x01, 0x01, 0x00, 0xc7, 0x8a, 0xaf,+    0x9e, 0x28, 0xe4, 0x31, 0x29, 0x08, 0x19, 0x89,+    0x96, 0x80, 0x9d, 0x9a, 0xda, 0x8a, 0x8e, 0x89,+    0xa0, 0x88, 0x88, 0x80, 0x97, 0x18, 0x88, 0x02,+    0x04, 0xaa, 0x82, 0xf6, 0x8e, 0x80, 0xa0, 0xb5,+    0x10, 0x91, 0x06, 0x89, 0x09, 0x89, 0x90, 0x82,+    0xb7, 0x00, 0x31, 0x09, 0x82, 0x88, 0x80, 0x89,+    0x09, 0x89, 0x8d, 0x01, 0x82, 0xb7, 0x00, 0x23,+    0x09, 0x12, 0x80, 0x93, 0x8b, 0x10, 0x8a, 0x82,+    0xb7, 0x00, 0x38, 0x10, 0x82, 0x93, 0x09, 0x89,+    0x89, 0x28, 0x82, 0xb7, 0x00, 0x31, 0x09, 0x16,+    0x82, 0x89, 0x09, 0x89, 0x91, 0x80, 0xba, 0x22,+    0x10, 0x83, 0x88, 0x80, 0x8d, 0x89, 0x8f, 0x84,+    0xb8, 0x30, 0x10, 0x1e, 0x81, 0x8a, 0x09, 0x89,+    0x90, 0x82, 0xb7, 0x00, 0x30, 0x10, 0x1e, 0x81,+    0x8a, 0x09, 0x89, 0x8f, 0x83, 0xb6, 0x08, 0x30,+    0x10, 0x83, 0x88, 0x80, 0x89, 0x09, 0x89, 0x90,+    0x82, 0xc5, 0x03, 0x28, 0x00, 0x3d, 0x89, 0x09,+    0xbc, 0x01, 0x86, 0x8b, 0x38, 0x89, 0xd6, 0x01,+    0x88, 0x8a, 0x29, 0x89, 0xbd, 0x0d, 0x89, 0x8a,+    0x00, 0x00, 0x03, 0x81, 0xb0, 0x93, 0x01, 0x84,+    0x8a, 0x80, 0xa3, 0x88, 0x80, 0xe3, 0x93, 0x80,+    0x89, 0x8b, 0x1b, 0x10, 0x11, 0x32, 0x83, 0x8c,+    0x8b, 0x80, 0x8e, 0x42, 0xbe, 0x82, 0x88, 0x88,+    0x43, 0x9f, 0x82, 0x9c, 0x82, 0x9c, 0x81, 0x9d,+    0x81, 0xbf, 0x9f, 0x88, 0x01, 0x89, 0xa0, 0x11,+    0x89, 0x40, 0x8e, 0x80, 0xf5, 0x8b, 0x83, 0x8b,+    0x89, 0x89, 0xff, 0x8a, 0xbb, 0x84, 0xb8, 0x89,+    0x80, 0x9c, 0x81, 0x8a, 0x85, 0x89, 0x95, 0x8d,+    0x01, 0xbe, 0x84, 0xae, 0x90, 0x8a, 0x89, 0x90,+    0x88, 0x8b, 0x82, 0x9d, 0x8c, 0x81, 0x89, 0xab,+    0x8d, 0xaf, 0x93, 0x87, 0x89, 0x85, 0x89, 0xf5,+    0x10, 0x94, 0x18, 0x28, 0x0a, 0x40, 0xc5, 0xb9,+    0x04, 0x42, 0x3e, 0x81, 0x92, 0x80, 0xfa, 0x8c,+    0x18, 0x82, 0x8b, 0x4b, 0xfd, 0x82, 0x40, 0x8c,+    0x80, 0xdf, 0x9f, 0x42, 0x29, 0x85, 0xe8, 0x81,+    0x60, 0x75, 0x84, 0x89, 0xc4, 0x03, 0x89, 0x9f,+    0x81, 0xcf, 0x81, 0x41, 0x0f, 0x02, 0x03, 0x80,+    0x96, 0x23, 0x80, 0xd2, 0x81, 0xb1, 0x91, 0x89,+    0x89, 0x85, 0x91, 0x8c, 0x8a, 0x9b, 0x87, 0x98,+    0x8c, 0xab, 0x83, 0xae, 0x8d, 0x8e, 0x89, 0x8a,+    0x80, 0x89, 0x89, 0xae, 0x8d, 0x8b, 0x07, 0x09,+    0x89, 0xa0, 0x82, 0xb1, 0x00, 0x11, 0x0c, 0x08,+    0x80, 0xa8, 0x24, 0x81, 0x40, 0xeb, 0x38, 0x09,+    0x89, 0x60, 0x4f, 0x23, 0x80, 0x42, 0xe0, 0x8f,+    0x8f, 0x8f, 0x11, 0x97, 0x82, 0x40, 0xbf, 0x89,+    0xa4, 0x80, 0x42, 0xbc, 0x80, 0x40, 0xe1, 0x80,+    0x40, 0x94, 0x84, 0x41, 0x24, 0x89, 0x45, 0x56,+    0x10, 0x0c, 0x83, 0xa7, 0x13, 0x80, 0x40, 0xa4,+    0x81, 0x42, 0x3c, 0x1f, 0x89, 0x41, 0x70, 0x81,+    0x40, 0x98, 0x8a, 0x40, 0xae, 0x82, 0xb4, 0x8e,+    0x9e, 0x89, 0x8e, 0x83, 0xac, 0x8a, 0xb4, 0x89,+    0x2a, 0xa3, 0x8d, 0x80, 0x89, 0x21, 0xab, 0x80,+    0x8b, 0x82, 0xaf, 0x8d, 0x3b, 0x80, 0x8b, 0xd1,+    0x8b, 0x28, 0x40, 0x9f, 0x8b, 0x84, 0x89, 0x2b,+    0xb6, 0x08, 0x31, 0x09, 0x82, 0x88, 0x80, 0x89,+    0x09, 0x32, 0x84, 0x40, 0xbf, 0x91, 0x88, 0x89,+    0x18, 0xd0, 0x93, 0x8b, 0x89, 0x40, 0xd4, 0x31,+    0x88, 0x9a, 0x81, 0xd1, 0x90, 0x8e, 0x89, 0xd0,+    0x8c, 0x87, 0x89, 0xd2, 0x8e, 0x83, 0x89, 0x40,+    0xf1, 0x8e, 0x40, 0xa4, 0x89, 0xc5, 0x28, 0x09,+    0x18, 0x00, 0x81, 0x8b, 0x89, 0xf6, 0x31, 0x32,+    0x80, 0x9b, 0x89, 0xa7, 0x30, 0x1f, 0x80, 0x88,+    0x8a, 0xad, 0x8f, 0x41, 0x94, 0x38, 0x87, 0x8f,+    0x89, 0xb7, 0x95, 0x80, 0x8d, 0xf9, 0x2a, 0x00,+    0x08, 0x30, 0x07, 0x89, 0xaf, 0x20, 0x08, 0x27,+    0x89, 0x41, 0x48, 0x83, 0x60, 0x4b, 0x68, 0x89,+    0x40, 0x85, 0x84, 0xba, 0x86, 0x98, 0x89, 0x43,+    0xf4, 0x00, 0xb6, 0x33, 0xd0, 0x80, 0x8a, 0x81,+    0x60, 0x4c, 0xaa, 0x81, 0x54, 0xc5, 0x22, 0x2f,+    0x39, 0x86, 0x9d, 0x83, 0x40, 0x93, 0x82, 0x45,+    0x88, 0xb1, 0x41, 0xff, 0xb6, 0x83, 0xb1, 0x38,+    0x8d, 0x80, 0x95, 0x20, 0x8e, 0x45, 0x4f, 0x30,+    0x90, 0x0e, 0x01, 0x04, 0x41, 0x04, 0x86, 0x88,+    0x89, 0x41, 0xa1, 0x8d, 0x45, 0xd5, 0x86, 0xec,+    0x34, 0x89, 0x52, 0x95, 0x89, 0x6c, 0x05, 0x05,+    0x40, 0xef,+};++static const uint8_t unicode_prop_ID_Continue1_index[60] = {+    0xfa, 0x06, 0x00, 0x84, 0x09, 0x00, 0xf0, 0x0a,+    0x00, 0x70, 0x0c, 0x00, 0xf4, 0x0d, 0x00, 0x4a,+    0x10, 0x20, 0x1a, 0x18, 0x20, 0x74, 0x1b, 0x20,+    0xdd, 0x20, 0x00, 0x0c, 0xa8, 0x00, 0x5a, 0xaa,+    0x20, 0x1a, 0xff, 0x00, 0xad, 0x0e, 0x01, 0x38,+    0x12, 0x21, 0xc1, 0x15, 0x21, 0xe5, 0x19, 0x21,+    0xaa, 0x1d, 0x21, 0x8c, 0xd1, 0x41, 0x4a, 0xe1,+    0x21, 0xf0, 0x01, 0x0e,+};++#ifdef CONFIG_ALL_UNICODE++static const uint8_t unicode_cc_table[851] = {+    0xb2, 0xcf, 0xd4, 0x00, 0xe8, 0x03, 0xdc, 0x00,+    0xe8, 0x00, 0xd8, 0x04, 0xdc, 0x01, 0xca, 0x03,+    0xdc, 0x01, 0xca, 0x0a, 0xdc, 0x04, 0x01, 0x03,+    0xdc, 0xc7, 0x00, 0xf0, 0xc0, 0x02, 0xdc, 0xc2,+    0x01, 0xdc, 0x80, 0xc2, 0x03, 0xdc, 0xc0, 0x00,+    0xe8, 0x01, 0xdc, 0xc0, 0x41, 0xe9, 0x00, 0xea,+    0x41, 0xe9, 0x00, 0xea, 0x00, 0xe9, 0xcc, 0xb0,+    0xe2, 0xc4, 0xb0, 0xd8, 0x00, 0xdc, 0xc3, 0x00,+    0xdc, 0xc2, 0x00, 0xde, 0x00, 0xdc, 0xc5, 0x05,+    0xdc, 0xc1, 0x00, 0xdc, 0xc1, 0x00, 0xde, 0x00,+    0xe4, 0xc0, 0x49, 0x0a, 0x43, 0x13, 0x80, 0x00,+    0x17, 0x80, 0x41, 0x18, 0x80, 0xc0, 0x00, 0xdc,+    0x80, 0x00, 0x12, 0xb0, 0x17, 0xc7, 0x42, 0x1e,+    0xaf, 0x47, 0x1b, 0xc1, 0x01, 0xdc, 0xc4, 0x00,+    0xdc, 0xc1, 0x00, 0xdc, 0x8f, 0x00, 0x23, 0xb0,+    0x34, 0xc6, 0x81, 0xc3, 0x00, 0xdc, 0xc0, 0x81,+    0xc1, 0x80, 0x00, 0xdc, 0xc1, 0x00, 0xdc, 0xa2,+    0x00, 0x24, 0x9d, 0xc0, 0x00, 0xdc, 0xc1, 0x00,+    0xdc, 0xc1, 0x02, 0xdc, 0xc0, 0x01, 0xdc, 0xc0,+    0x00, 0xdc, 0xc2, 0x00, 0xdc, 0xc0, 0x00, 0xdc,+    0xc0, 0x00, 0xdc, 0xc0, 0x00, 0xdc, 0xc1, 0xb0,+    0x6f, 0xc6, 0x00, 0xdc, 0xc0, 0x88, 0x00, 0xdc,+    0x97, 0xc3, 0x80, 0xc8, 0x80, 0xc2, 0x80, 0xc4,+    0xaa, 0x02, 0xdc, 0xb0, 0x46, 0x00, 0xdc, 0xcd,+    0x80, 0x00, 0xdc, 0xc1, 0x00, 0xdc, 0xc1, 0x00,+    0xdc, 0xc2, 0x02, 0xdc, 0x42, 0x1b, 0xc2, 0x00,+    0xdc, 0xc1, 0x01, 0xdc, 0xc4, 0xb0, 0x0b, 0x00,+    0x07, 0x8f, 0x00, 0x09, 0x82, 0xc0, 0x00, 0xdc,+    0xc1, 0xb0, 0x36, 0x00, 0x07, 0x8f, 0x00, 0x09,+    0xaf, 0xc0, 0xb0, 0x0c, 0x00, 0x07, 0x8f, 0x00,+    0x09, 0xb0, 0x3d, 0x00, 0x07, 0x8f, 0x00, 0x09,+    0xb0, 0x3d, 0x00, 0x07, 0x8f, 0x00, 0x09, 0xb0,+    0x4e, 0x00, 0x09, 0xb0, 0x4e, 0x00, 0x09, 0x86,+    0x00, 0x54, 0x00, 0x5b, 0xb0, 0x34, 0x00, 0x07,+    0x8f, 0x00, 0x09, 0xb0, 0x3c, 0x01, 0x09, 0x8f,+    0x00, 0x09, 0xb0, 0x4b, 0x00, 0x09, 0xb0, 0x3c,+    0x01, 0x67, 0x00, 0x09, 0x8c, 0x03, 0x6b, 0xb0,+    0x3b, 0x01, 0x76, 0x00, 0x09, 0x8c, 0x03, 0x7a,+    0xb0, 0x1b, 0x01, 0xdc, 0x9a, 0x00, 0xdc, 0x80,+    0x00, 0xdc, 0x80, 0x00, 0xd8, 0xb0, 0x06, 0x41,+    0x81, 0x80, 0x00, 0x84, 0x84, 0x03, 0x82, 0x81,+    0x00, 0x82, 0x80, 0xc1, 0x00, 0x09, 0x80, 0xc1,+    0xb0, 0x0d, 0x00, 0xdc, 0xb0, 0x3f, 0x00, 0x07,+    0x80, 0x01, 0x09, 0xb0, 0x21, 0x00, 0xdc, 0xb2,+    0x9e, 0xc2, 0xb3, 0x83, 0x00, 0x09, 0x9e, 0x00,+    0x09, 0xb0, 0x6c, 0x00, 0x09, 0x89, 0xc0, 0xb0,+    0x9a, 0x00, 0xe4, 0xb0, 0x5e, 0x00, 0xde, 0xc0,+    0x00, 0xdc, 0xb0, 0xaa, 0xc0, 0x00, 0xdc, 0xb0,+    0x16, 0x00, 0x09, 0x93, 0xc7, 0x81, 0x00, 0xdc,+    0xaf, 0xc4, 0x05, 0xdc, 0xc1, 0x00, 0xdc, 0x80,+    0x01, 0xdc, 0xb0, 0x42, 0x00, 0x07, 0x8e, 0x00,+    0x09, 0xa5, 0xc0, 0x00, 0xdc, 0xc6, 0xb0, 0x05,+    0x01, 0x09, 0xb0, 0x09, 0x00, 0x07, 0x8a, 0x01,+    0x09, 0xb0, 0x12, 0x00, 0x07, 0xb0, 0x67, 0xc2,+    0x41, 0x00, 0x04, 0xdc, 0xc1, 0x03, 0xdc, 0xc0,+    0x41, 0x00, 0x05, 0x01, 0x83, 0x00, 0xdc, 0x85,+    0xc0, 0x82, 0xc1, 0xb0, 0x95, 0xc1, 0x00, 0xdc,+    0xc6, 0x00, 0xdc, 0xc1, 0x00, 0xea, 0x00, 0xd6,+    0x00, 0xdc, 0x00, 0xca, 0xe4, 0x00, 0xe8, 0x01,+    0xe4, 0x00, 0xdc, 0x80, 0xc0, 0x00, 0xe9, 0x00,+    0xdc, 0xc0, 0x00, 0xdc, 0xb2, 0x9f, 0xc1, 0x01,+    0x01, 0xc3, 0x02, 0x01, 0xc1, 0x83, 0xc0, 0x82,+    0x01, 0x01, 0xc0, 0x00, 0xdc, 0xc0, 0x01, 0x01,+    0x03, 0xdc, 0xc0, 0xb8, 0x03, 0xcd, 0xc2, 0xb0,+    0x5c, 0x00, 0x09, 0xb0, 0x2f, 0xdf, 0xb1, 0xf9,+    0x00, 0xda, 0x00, 0xe4, 0x00, 0xe8, 0x00, 0xde,+    0x01, 0xe0, 0xb0, 0x38, 0x01, 0x08, 0xb8, 0x6d,+    0xa3, 0xc0, 0x83, 0xc9, 0x9f, 0xc1, 0xb0, 0x1f,+    0xc1, 0xb0, 0xe3, 0x00, 0x09, 0xa4, 0x00, 0x09,+    0xb0, 0x66, 0x00, 0x09, 0x9a, 0xd1, 0xb0, 0x08,+    0x02, 0xdc, 0xa4, 0x00, 0x09, 0xb0, 0x2e, 0x00,+    0x07, 0x8b, 0x00, 0x09, 0xb0, 0xbe, 0xc0, 0x80,+    0xc1, 0x00, 0xdc, 0x81, 0xc1, 0x84, 0xc1, 0x80,+    0xc0, 0xb0, 0x03, 0x00, 0x09, 0xb0, 0xc5, 0x00,+    0x09, 0xb8, 0x46, 0xff, 0x00, 0x1a, 0xb2, 0xd0,+    0xc6, 0x06, 0xdc, 0xc1, 0xb3, 0x9c, 0x00, 0xdc,+    0xb0, 0xb1, 0x00, 0xdc, 0xb0, 0x64, 0xc4, 0xb6,+    0x61, 0x00, 0xdc, 0x80, 0xc0, 0xa7, 0xc0, 0x00,+    0x01, 0x00, 0xdc, 0x83, 0x00, 0x09, 0xb0, 0x74,+    0xc0, 0x00, 0xdc, 0xb2, 0x0c, 0xc3, 0xb1, 0x52,+    0xc1, 0xb0, 0x68, 0x01, 0xdc, 0xc2, 0x00, 0xdc,+    0xc0, 0x03, 0xdc, 0xb0, 0xc4, 0x00, 0x09, 0xb0,+    0x07, 0x00, 0x09, 0xb0, 0x08, 0x00, 0x09, 0x00,+    0x07, 0xb0, 0x14, 0xc2, 0xaf, 0x01, 0x09, 0xb0,+    0x0d, 0x00, 0x07, 0xb0, 0x1b, 0x00, 0x09, 0x88,+    0x00, 0x07, 0xb0, 0x39, 0x00, 0x09, 0x00, 0x07,+    0xb0, 0x81, 0x00, 0x07, 0x00, 0x09, 0xb0, 0x1f,+    0x01, 0x07, 0x8f, 0x00, 0x09, 0x97, 0xc6, 0x82,+    0xc4, 0xb0, 0x9c, 0x00, 0x09, 0x82, 0x00, 0x07,+    0x96, 0xc0, 0xb0, 0x32, 0x00, 0x09, 0x00, 0x07,+    0xb0, 0xca, 0x00, 0x09, 0x00, 0x07, 0xb0, 0x4d,+    0x00, 0x09, 0xb0, 0x45, 0x00, 0x09, 0x00, 0x07,+    0xb0, 0x42, 0x00, 0x09, 0xb0, 0xdc, 0x00, 0x09,+    0x00, 0x07, 0xb0, 0xd1, 0x01, 0x09, 0x83, 0x00,+    0x07, 0xb0, 0x6b, 0x00, 0x09, 0xb0, 0x22, 0x00,+    0x09, 0x91, 0x00, 0x09, 0xb0, 0x20, 0x00, 0x09,+    0xb1, 0x74, 0x00, 0x09, 0xb0, 0xd1, 0x00, 0x07,+    0x80, 0x01, 0x09, 0xb0, 0x20, 0x00, 0x09, 0xb8,+    0x45, 0x27, 0x04, 0x01, 0xb0, 0x0a, 0xc6, 0xb4,+    0x88, 0x01, 0x06, 0xb8, 0x44, 0x7b, 0x00, 0x01,+    0xb8, 0x0c, 0x95, 0x01, 0xd8, 0x02, 0x01, 0x82,+    0x00, 0xe2, 0x04, 0xd8, 0x87, 0x07, 0xdc, 0x81,+    0xc4, 0x01, 0xdc, 0x9d, 0xc3, 0xb0, 0x63, 0xc2,+    0xb8, 0x05, 0x8a, 0xc6, 0x80, 0xd0, 0x81, 0xc6,+    0x80, 0xc1, 0x80, 0xc4, 0xb0, 0xd4, 0xc6, 0xb1,+    0x84, 0xc3, 0xb5, 0xaf, 0x06, 0xdc, 0xb0, 0x3c,+    0xc5, 0x00, 0x07,+};++static const uint8_t unicode_cc_index[81] = {+    0x4d, 0x03, 0x00, 0x97, 0x05, 0x20, 0xc6, 0x05,+    0x00, 0xe7, 0x06, 0x00, 0x45, 0x07, 0x00, 0xe2,+    0x08, 0x00, 0x53, 0x09, 0x00, 0xcd, 0x0b, 0x20,+    0x38, 0x0e, 0x00, 0x73, 0x0f, 0x20, 0x5d, 0x13,+    0x20, 0x60, 0x1a, 0x20, 0xaa, 0x1b, 0x00, 0xf4,+    0x1c, 0x00, 0xfe, 0x1d, 0x20, 0x7f, 0x2d, 0x20,+    0xf0, 0xa6, 0x00, 0xb2, 0xaa, 0x00, 0xfe, 0x01,+    0x01, 0xab, 0x0e, 0x01, 0x73, 0x11, 0x21, 0x70,+    0x13, 0x01, 0xb8, 0x16, 0x01, 0x9a, 0x1a, 0x01,+    0x9f, 0xbc, 0x01, 0x22, 0xe0, 0x01, 0x4b, 0xe9,+    0x01,+};++static const uint32_t unicode_decomp_table1[690] = {+    0x00280081, 0x002a0097, 0x002a8081, 0x002bc097,+    0x002c8115, 0x002d0097, 0x002d4081, 0x002e0097,+    0x002e4115, 0x002f0199, 0x00302016, 0x00400842,+    0x00448a42, 0x004a0442, 0x004c0096, 0x004c8117,+    0x004d0242, 0x004e4342, 0x004fc12f, 0x0050c342,+    0x005240bf, 0x00530342, 0x00550942, 0x005a0842,+    0x005e0096, 0x005e4342, 0x005fc081, 0x00680142,+    0x006bc142, 0x00710185, 0x0071c317, 0x00734844,+    0x00778344, 0x00798342, 0x007b02be, 0x007c4197,+    0x007d0142, 0x007e0444, 0x00800e42, 0x00878142,+    0x00898744, 0x00ac0483, 0x00b60317, 0x00b80283,+    0x00d00214, 0x00d10096, 0x00dd0080, 0x00de8097,+    0x00df8080, 0x00e10097, 0x00e1413e, 0x00e1c080,+    0x00e204be, 0x00ea83ae, 0x00f282ae, 0x00f401ad,+    0x00f4c12e, 0x00f54103, 0x00fc0303, 0x00fe4081,+    0x0100023e, 0x0101c0be, 0x010301be, 0x010640be,+    0x010e40be, 0x0114023e, 0x0115c0be, 0x011701be,+    0x011d8144, 0x01304144, 0x01340244, 0x01358144,+    0x01368344, 0x01388344, 0x013a8644, 0x013e0144,+    0x0161c085, 0x018882ae, 0x019d422f, 0x01b00184,+    0x01b4c084, 0x024a4084, 0x024c4084, 0x024d0084,+    0x0256042e, 0x0272c12e, 0x02770120, 0x0277c084,+    0x028cc084, 0x028d8084, 0x029641ae, 0x02978084,+    0x02d20084, 0x02d2c12e, 0x02d70120, 0x02e50084,+    0x02f281ae, 0x03120084, 0x03300084, 0x0331c122,+    0x0332812e, 0x035281ae, 0x03768084, 0x037701ae,+    0x038cc085, 0x03acc085, 0x03b7012f, 0x03c30081,+    0x03d0c084, 0x03d34084, 0x03d48084, 0x03d5c084,+    0x03d70084, 0x03da4084, 0x03dcc084, 0x03dd412e,+    0x03ddc085, 0x03de0084, 0x03de4085, 0x03e04084,+    0x03e4c084, 0x03e74084, 0x03e88084, 0x03e9c084,+    0x03eb0084, 0x03ee4084, 0x04098084, 0x043f0081,+    0x06c18484, 0x06c48084, 0x06cec184, 0x06d00120,+    0x06d0c084, 0x074b0383, 0x074cc41f, 0x074f1783,+    0x075e0081, 0x0766d283, 0x07801d44, 0x078e8942,+    0x07931844, 0x079f0d42, 0x07a58216, 0x07a68085,+    0x07a6c0be, 0x07a80d44, 0x07aea044, 0x07c00122,+    0x07c08344, 0x07c20122, 0x07c28344, 0x07c40122,+    0x07c48244, 0x07c60122, 0x07c68244, 0x07c8113e,+    0x07d08244, 0x07d20122, 0x07d28244, 0x07d40122,+    0x07d48344, 0x07d64c3e, 0x07dc4080, 0x07dc80be,+    0x07dcc080, 0x07dd00be, 0x07dd4080, 0x07dd80be,+    0x07ddc080, 0x07de00be, 0x07de4080, 0x07de80be,+    0x07dec080, 0x07df00be, 0x07df4080, 0x07e00820,+    0x07e40820, 0x07e80820, 0x07ec05be, 0x07eec080,+    0x07ef00be, 0x07ef4097, 0x07ef8080, 0x07efc117,+    0x07f0443e, 0x07f24080, 0x07f280be, 0x07f2c080,+    0x07f303be, 0x07f4c080, 0x07f582ae, 0x07f6c080,+    0x07f7433e, 0x07f8c080, 0x07f903ae, 0x07fac080,+    0x07fb013e, 0x07fb8102, 0x07fc83be, 0x07fe4080,+    0x07fe80be, 0x07fec080, 0x07ff00be, 0x07ff4080,+    0x07ff8097, 0x0800011e, 0x08008495, 0x08044081,+    0x0805c097, 0x08090081, 0x08094097, 0x08098099,+    0x080bc081, 0x080cc085, 0x080d00b1, 0x080d8085,+    0x080dc0b1, 0x080f0197, 0x0811c197, 0x0815c0b3,+    0x0817c081, 0x081c0595, 0x081ec081, 0x081f0215,+    0x0820051f, 0x08228583, 0x08254415, 0x082a0097,+    0x08400119, 0x08408081, 0x0840c0bf, 0x08414119,+    0x0841c081, 0x084240bf, 0x0842852d, 0x08454081,+    0x08458097, 0x08464295, 0x08480097, 0x08484099,+    0x08488097, 0x08490081, 0x08498080, 0x084a0081,+    0x084a8102, 0x084b0495, 0x084d421f, 0x084e4081,+    0x084ec099, 0x084f0283, 0x08514295, 0x08540119,+    0x0854809b, 0x0854c619, 0x0857c097, 0x08580081,+    0x08584097, 0x08588099, 0x0858c097, 0x08590081,+    0x08594097, 0x08598099, 0x0859c09b, 0x085a0097,+    0x085a4081, 0x085a8097, 0x085ac099, 0x085b0295,+    0x085c4097, 0x085c8099, 0x085cc097, 0x085d0081,+    0x085d4097, 0x085d8099, 0x085dc09b, 0x085e0097,+    0x085e4081, 0x085e8097, 0x085ec099, 0x085f0215,+    0x08624099, 0x0866813e, 0x086b80be, 0x087341be,+    0x088100be, 0x088240be, 0x088300be, 0x088901be,+    0x088b0085, 0x088b40b1, 0x088bc085, 0x088c00b1,+    0x089040be, 0x089100be, 0x0891c1be, 0x089801be,+    0x089b42be, 0x089d0144, 0x089e0144, 0x08a00144,+    0x08a10144, 0x08a20144, 0x08ab023e, 0x08b80244,+    0x08ba8220, 0x08ca411e, 0x0918049f, 0x091a4523,+    0x091cc097, 0x091d04a5, 0x091f452b, 0x0921c09b,+    0x092204a1, 0x09244525, 0x0926c099, 0x09270d25,+    0x092d8d1f, 0x09340d1f, 0x093a8081, 0x0a8300b3,+    0x0a9d0099, 0x0a9d4097, 0x0a9d8099, 0x0ab700be,+    0x0b1f0115, 0x0b5bc081, 0x0ba7c081, 0x0bbcc081,+    0x0bc004ad, 0x0bc244ad, 0x0bc484ad, 0x0bc6f383,+    0x0be0852d, 0x0be31d03, 0x0bf1882d, 0x0c000081,+    0x0c0d8283, 0x0c130b84, 0x0c194284, 0x0c1c0122,+    0x0c1cc122, 0x0c1d8122, 0x0c1e4122, 0x0c1f0122,+    0x0c250084, 0x0c26c123, 0x0c278084, 0x0c27c085,+    0x0c2b0b84, 0x0c314284, 0x0c340122, 0x0c34c122,+    0x0c358122, 0x0c364122, 0x0c370122, 0x0c3d0084,+    0x0c3dc220, 0x0c3f8084, 0x0c3fc085, 0x0c4c4a2d,+    0x0c51451f, 0x0c53ca9f, 0x0c5915ad, 0x0c648703,+    0x0c800741, 0x0c838089, 0x0c83c129, 0x0c8441a9,+    0x0c850089, 0x0c854129, 0x0c85c2a9, 0x0c870089,+    0x0c87408f, 0x0c87808d, 0x0c881241, 0x0c910203,+    0x0c940099, 0x0c9444a3, 0x0c968323, 0x0c98072d,+    0x0c9b84af, 0x0c9dc2a1, 0x0c9f00b5, 0x0c9f40b3,+    0x0c9f8085, 0x0ca01883, 0x0cac4223, 0x0cad4523,+    0x0cafc097, 0x0cb004a1, 0x0cb241a5, 0x0cb30097,+    0x0cb34099, 0x0cb38097, 0x0cb3c099, 0x0cb417ad,+    0x0cbfc085, 0x0cc001b3, 0x0cc0c0b1, 0x0cc100b3,+    0x0cc14131, 0x0cc1c0b5, 0x0cc200b3, 0x0cc241b1,+    0x0cc30133, 0x0cc38131, 0x0cc40085, 0x0cc440b1,+    0x0cc48133, 0x0cc50085, 0x0cc540b5, 0x0cc580b7,+    0x0cc5c0b5, 0x0cc600b1, 0x0cc64135, 0x0cc6c0b3,+    0x0cc701b1, 0x0cc7c0b3, 0x0cc800b5, 0x0cc840b3,+    0x0cc881b1, 0x0cc9422f, 0x0cca4131, 0x0ccac0b5,+    0x0ccb00b1, 0x0ccb40b3, 0x0ccb80b5, 0x0ccbc0b1,+    0x0ccc012f, 0x0ccc80b5, 0x0cccc0b3, 0x0ccd00b5,+    0x0ccd40b1, 0x0ccd80b5, 0x0ccdc085, 0x0cce02b1,+    0x0ccf40b3, 0x0ccf80b1, 0x0ccfc085, 0x0cd001b1,+    0x0cd0c0b3, 0x0cd101b1, 0x0cd1c0b5, 0x0cd200b3,+    0x0cd24085, 0x0cd280b5, 0x0cd2c085, 0x0cd30133,+    0x0cd381b1, 0x0cd440b3, 0x0cd48085, 0x0cd4c0b1,+    0x0cd500b3, 0x0cd54085, 0x0cd580b5, 0x0cd5c0b1,+    0x0cd60521, 0x0cd88525, 0x0cdb02a5, 0x0cdc4099,+    0x0cdc8117, 0x0cdd0099, 0x0cdd4197, 0x0cde0127,+    0x0cde8285, 0x0cdfc089, 0x0ce0043f, 0x0ce20099,+    0x0ce2409b, 0x0ce283bf, 0x0ce44219, 0x0ce54205,+    0x0ce6433f, 0x0ce7c131, 0x0ce84085, 0x0ce881b1,+    0x0ce94085, 0x0ce98107, 0x0cea0089, 0x0cea4097,+    0x0cea8219, 0x0ceb809d, 0x0cebc08d, 0x0cec083f,+    0x0cf00105, 0x0cf0809b, 0x0cf0c197, 0x0cf1809b,+    0x0cf1c099, 0x0cf20517, 0x0cf48099, 0x0cf4c117,+    0x0cf54119, 0x0cf5c097, 0x0cf6009b, 0x0cf64099,+    0x0cf68217, 0x0cf78119, 0x0cf804a1, 0x0cfa4525,+    0x0cfcc525, 0x0cff4125, 0x0cffc099, 0x29a70103,+    0x29dc0081, 0x29fe0103, 0x2ad70203, 0x2ada4081,+    0x3e401482, 0x3e4a7f82, 0x3e6a3f82, 0x3e8aa102,+    0x3e9b0110, 0x3e9c2f82, 0x3eb3c590, 0x3ec00197,+    0x3ec0c119, 0x3ec1413f, 0x3ec4c2af, 0x3ec74184,+    0x3ec804ad, 0x3eca4081, 0x3eca8304, 0x3ecc03a0,+    0x3ece02a0, 0x3ecf8084, 0x3ed00120, 0x3ed0c120,+    0x3ed184ae, 0x3ed3c085, 0x3ed4312d, 0x3ef4cbad,+    0x3efa892f, 0x3eff022d, 0x3f002f2f, 0x3f1782a5,+    0x3f18c0b1, 0x3f1907af, 0x3f1cffaf, 0x3f3c81a5,+    0x3f3d64af, 0x3f542031, 0x3f649b31, 0x3f7c0131,+    0x3f7c83b3, 0x3f7e40b1, 0x3f7e80bd, 0x3f7ec0bb,+    0x3f7f00b3, 0x3f840503, 0x3f8c01ad, 0x3f8cc315,+    0x3f8e462d, 0x3f91cc03, 0x3f97c695, 0x3f9c01af,+    0x3f9d0085, 0x3f9d852f, 0x3fa03aad, 0x3fbd442f,+    0x3fc06f1f, 0x3fd7c11f, 0x3fd85fad, 0x3fe80081,+    0x3fe84f1f, 0x3ff0831f, 0x3ff2831f, 0x3ff4831f,+    0x3ff6819f, 0x3ff80783, 0x44268192, 0x442ac092,+    0x444b8112, 0x44d2c112, 0x452ec212, 0x456e8112,+    0x464e0092, 0x74578392, 0x746ec312, 0x75000d1f,+    0x75068d1f, 0x750d0d1f, 0x7513839f, 0x7515891f,+    0x751a0d1f, 0x75208d1f, 0x75271015, 0x752f439f,+    0x7531459f, 0x75340d1f, 0x753a8d1f, 0x75410395,+    0x7543441f, 0x7545839f, 0x75478d1f, 0x754e0795,+    0x7552839f, 0x75548d1f, 0x755b0d1f, 0x75618d1f,+    0x75680d1f, 0x756e8d1f, 0x75750d1f, 0x757b8d1f,+    0x75820d1f, 0x75888d1f, 0x758f0d1f, 0x75958d1f,+    0x759c0d1f, 0x75a28d1f, 0x75a90103, 0x75aa089f,+    0x75ae4081, 0x75ae839f, 0x75b04081, 0x75b08c9f,+    0x75b6c081, 0x75b7032d, 0x75b8889f, 0x75bcc081,+    0x75bd039f, 0x75bec081, 0x75bf0c9f, 0x75c54081,+    0x75c5832d, 0x75c7089f, 0x75cb4081, 0x75cb839f,+    0x75cd4081, 0x75cd8c9f, 0x75d3c081, 0x75d4032d,+    0x75d5889f, 0x75d9c081, 0x75da039f, 0x75dbc081,+    0x75dc0c9f, 0x75e24081, 0x75e2832d, 0x75e4089f,+    0x75e84081, 0x75e8839f, 0x75ea4081, 0x75ea8c9f,+    0x75f0c081, 0x75f1042d, 0x75f3851f, 0x75f6051f,+    0x75f8851f, 0x75fb051f, 0x75fd851f, 0x7b80022d,+    0x7b814dad, 0x7b884203, 0x7b89c081, 0x7b8a452d,+    0x7b8d0403, 0x7b908081, 0x7b91dc03, 0x7ba0052d,+    0x7ba2c8ad, 0x7ba84483, 0x7baac8ad, 0x7c400097,+    0x7c404521, 0x7c440d25, 0x7c4a8087, 0x7c4ac115,+    0x7c4b4117, 0x7c4c0d1f, 0x7c528217, 0x7c538099,+    0x7c53c097, 0x7c5a8197, 0x7c640097, 0x7c80012f,+    0x7c808081, 0x7c841603, 0x7c9004c1, 0x7c940103,+    0x7efc051f, 0xbe0001ac, 0xbe00d110, 0xbe0947ac,+    0xbe0d3910, 0xbe29872c, 0xbe2d022c, 0xbe2e3790,+    0xbe49ff90, 0xbe69bc10,+};++static const uint16_t unicode_decomp_table2[690] = {+    0x0020, 0x0000, 0x0061, 0x0002, 0x0004, 0x0006, 0x03bc, 0x0008,+    0x000a, 0x000c, 0x0015, 0x0095, 0x00a5, 0x00b9, 0x00c1, 0x00c3,+    0x00c7, 0x00cb, 0x00d1, 0x00d7, 0x00dd, 0x00e0, 0x00e6, 0x00f8,+    0x0108, 0x010a, 0x0073, 0x0110, 0x0112, 0x0114, 0x0120, 0x012c,+    0x0144, 0x014d, 0x0153, 0x0162, 0x0168, 0x016a, 0x0176, 0x0192,+    0x0194, 0x01a9, 0x01bb, 0x01c7, 0x01d1, 0x01d5, 0x02b9, 0x01d7,+    0x003b, 0x01d9, 0x01db, 0x00b7, 0x01e1, 0x01fc, 0x020c, 0x0218,+    0x021d, 0x0223, 0x0227, 0x03a3, 0x0233, 0x023f, 0x0242, 0x024b,+    0x024e, 0x0251, 0x025d, 0x0260, 0x0269, 0x026c, 0x026f, 0x0275,+    0x0278, 0x0281, 0x028a, 0x029c, 0x029f, 0x02a3, 0x02af, 0x02b9,+    0x02c5, 0x02c9, 0x02cd, 0x02d1, 0x02d5, 0x02e7, 0x02ed, 0x02f1,+    0x02f5, 0x02f9, 0x02fd, 0x0305, 0x0309, 0x030d, 0x0313, 0x0317,+    0x031b, 0x0323, 0x0327, 0x032b, 0x032f, 0x0335, 0x033d, 0x0341,+    0x0349, 0x034d, 0x0351, 0x0f0b, 0x0357, 0x035b, 0x035f, 0x0363,+    0x0367, 0x036b, 0x036f, 0x0373, 0x0379, 0x037d, 0x0381, 0x0385,+    0x0389, 0x038d, 0x0391, 0x0395, 0x0399, 0x039d, 0x03a1, 0x10dc,+    0x03a5, 0x03c9, 0x03cd, 0x03d9, 0x03dd, 0x03e1, 0x03ef, 0x03f1,+    0x043d, 0x044f, 0x0499, 0x04f0, 0x0502, 0x054a, 0x0564, 0x056c,+    0x0570, 0x0573, 0x059a, 0x05fa, 0x05fe, 0x0607, 0x060b, 0x0614,+    0x0618, 0x061e, 0x0622, 0x0628, 0x068e, 0x0694, 0x0698, 0x069e,+    0x06a2, 0x06ab, 0x03ac, 0x06f3, 0x03ad, 0x06f6, 0x03ae, 0x06f9,+    0x03af, 0x06fc, 0x03cc, 0x06ff, 0x03cd, 0x0702, 0x03ce, 0x0705,+    0x0709, 0x070d, 0x0711, 0x0386, 0x0732, 0x0735, 0x03b9, 0x0737,+    0x073b, 0x0388, 0x0753, 0x0389, 0x0756, 0x0390, 0x076b, 0x038a,+    0x0777, 0x03b0, 0x0789, 0x038e, 0x0799, 0x079f, 0x07a3, 0x038c,+    0x07b8, 0x038f, 0x07bb, 0x00b4, 0x07be, 0x07c0, 0x07c2, 0x2010,+    0x07cb, 0x002e, 0x07cd, 0x07cf, 0x0020, 0x07d2, 0x07d6, 0x07db,+    0x07df, 0x07e4, 0x07ea, 0x07f0, 0x0020, 0x07f6, 0x2212, 0x0801,+    0x0805, 0x0807, 0x081d, 0x0825, 0x0827, 0x0043, 0x082d, 0x0830,+    0x0190, 0x0836, 0x0839, 0x004e, 0x0845, 0x0847, 0x084c, 0x084e,+    0x0851, 0x005a, 0x03a9, 0x005a, 0x0853, 0x0857, 0x0860, 0x0069,+    0x0862, 0x0865, 0x086f, 0x0874, 0x087a, 0x087e, 0x08a2, 0x0049,+    0x08a4, 0x08a6, 0x08a9, 0x0056, 0x08ab, 0x08ad, 0x08b0, 0x08b4,+    0x0058, 0x08b6, 0x08b8, 0x08bb, 0x08c0, 0x08c2, 0x08c5, 0x0076,+    0x08c7, 0x08c9, 0x08cc, 0x08d0, 0x0078, 0x08d2, 0x08d4, 0x08d7,+    0x08db, 0x08de, 0x08e4, 0x08e7, 0x08f0, 0x08f3, 0x08f6, 0x08f9,+    0x0902, 0x0906, 0x090b, 0x090f, 0x0914, 0x0917, 0x091a, 0x0923,+    0x092c, 0x093b, 0x093e, 0x0941, 0x0944, 0x0947, 0x094a, 0x0956,+    0x095c, 0x0960, 0x0962, 0x0964, 0x0968, 0x096a, 0x0970, 0x0978,+    0x097c, 0x0980, 0x0986, 0x0989, 0x098f, 0x0991, 0x0030, 0x0993,+    0x0999, 0x099c, 0x099e, 0x09a1, 0x09a4, 0x2d61, 0x6bcd, 0x9f9f,+    0x09a6, 0x09b1, 0x09bc, 0x09c7, 0x0a95, 0x0aa1, 0x0b15, 0x0020,+    0x0b27, 0x0b31, 0x0b8d, 0x0ba1, 0x0ba5, 0x0ba9, 0x0bad, 0x0bb1,+    0x0bb5, 0x0bb9, 0x0bbd, 0x0bc1, 0x0bc5, 0x0c21, 0x0c35, 0x0c39,+    0x0c3d, 0x0c41, 0x0c45, 0x0c49, 0x0c4d, 0x0c51, 0x0c55, 0x0c59,+    0x0c6f, 0x0c71, 0x0c73, 0x0ca0, 0x0cbc, 0x0cdc, 0x0ce4, 0x0cec,+    0x0cf4, 0x0cfc, 0x0d04, 0x0d0c, 0x0d14, 0x0d22, 0x0d2e, 0x0d7a,+    0x0d82, 0x0d85, 0x0d89, 0x0d8d, 0x0d9d, 0x0db1, 0x0db5, 0x0dbc,+    0x0dc2, 0x0dc6, 0x0e28, 0x0e2c, 0x0e30, 0x0e32, 0x0e36, 0x0e3c,+    0x0e3e, 0x0e41, 0x0e43, 0x0e46, 0x0e77, 0x0e7b, 0x0e89, 0x0e8e,+    0x0e94, 0x0e9c, 0x0ea3, 0x0ea9, 0x0eb4, 0x0ebe, 0x0ec6, 0x0eca,+    0x0ecf, 0x0ed9, 0x0edd, 0x0ee4, 0x0eec, 0x0ef3, 0x0ef8, 0x0f04,+    0x0f0a, 0x0f15, 0x0f1b, 0x0f22, 0x0f28, 0x0f33, 0x0f3d, 0x0f45,+    0x0f4c, 0x0f51, 0x0f57, 0x0f5e, 0x0f63, 0x0f69, 0x0f70, 0x0f76,+    0x0f7d, 0x0f82, 0x0f89, 0x0f8d, 0x0f9e, 0x0fa4, 0x0fa9, 0x0fad,+    0x0fb8, 0x0fbe, 0x0fc9, 0x0fd0, 0x0fd6, 0x0fda, 0x0fe1, 0x0fe5,+    0x0fef, 0x0ffa, 0x1000, 0x1004, 0x1009, 0x100f, 0x1013, 0x101a,+    0x101f, 0x1023, 0x1029, 0x102f, 0x1032, 0x1036, 0x1039, 0x103f,+    0x1045, 0x1059, 0x1061, 0x1079, 0x107c, 0x1080, 0x1095, 0x10a1,+    0x10b1, 0x10c3, 0x10cb, 0x10cf, 0x10da, 0x10de, 0x10ea, 0x10f2,+    0x10f4, 0x1100, 0x1105, 0x1111, 0x1141, 0x1149, 0x114d, 0x1153,+    0x1157, 0x115a, 0x116e, 0x1171, 0x1175, 0x117b, 0x117d, 0x1181,+    0x1184, 0x118c, 0x1192, 0x1196, 0x119c, 0x11a2, 0x11a8, 0x11ab,+    0xa76f, 0x11af, 0x11b3, 0x028d, 0x11bb, 0x120d, 0x130b, 0x1409,+    0x148d, 0x1492, 0x1550, 0x1569, 0x156f, 0x1575, 0x157b, 0x1587,+    0x1593, 0x002b, 0x159e, 0x15b6, 0x15ba, 0x15be, 0x15c2, 0x15c6,+    0x15ca, 0x15de, 0x15e2, 0x1646, 0x165f, 0x1685, 0x168b, 0x1749,+    0x174f, 0x1754, 0x1774, 0x1874, 0x187a, 0x190e, 0x19d0, 0x1a74,+    0x1a7c, 0x1a9a, 0x1a9f, 0x1ab3, 0x1abd, 0x1ac3, 0x1ad7, 0x1adc,+    0x1ae2, 0x1af0, 0x1b20, 0x1b2d, 0x1b35, 0x1b39, 0x1b4f, 0x1bc6,+    0x1bd8, 0x1bda, 0x1bdc, 0x3164, 0x1c1d, 0x1c1f, 0x1c21, 0x1c23,+    0x1c25, 0x1c27, 0x1c45, 0x1c53, 0x1c58, 0x1c61, 0x1c6a, 0x1c7c,+    0x1c85, 0x1c8a, 0x1caa, 0x1cc5, 0x1cc7, 0x1cc9, 0x1ccb, 0x1ccd,+    0x1ccf, 0x1cd1, 0x1cd3, 0x1cf3, 0x1cf5, 0x1cf7, 0x1cf9, 0x1cfb,+    0x1d02, 0x1d04, 0x1d06, 0x1d08, 0x1d17, 0x1d19, 0x1d1b, 0x1d1d,+    0x1d1f, 0x1d21, 0x1d23, 0x1d25, 0x1d27, 0x1d29, 0x1d2b, 0x1d2d,+    0x1d2f, 0x1d31, 0x1d33, 0x1d37, 0x03f4, 0x1d39, 0x2207, 0x1d3b,+    0x2202, 0x1d3d, 0x1d45, 0x03f4, 0x1d47, 0x2207, 0x1d49, 0x2202,+    0x1d4b, 0x1d53, 0x03f4, 0x1d55, 0x2207, 0x1d57, 0x2202, 0x1d59,+    0x1d61, 0x03f4, 0x1d63, 0x2207, 0x1d65, 0x2202, 0x1d67, 0x1d6f,+    0x03f4, 0x1d71, 0x2207, 0x1d73, 0x2202, 0x1d75, 0x1d7f, 0x1d81,+    0x1d83, 0x1d85, 0x1d87, 0x1d89, 0x1d8f, 0x1dac, 0x062d, 0x1db4,+    0x1dc0, 0x062c, 0x1dd0, 0x1e40, 0x1e4c, 0x1e5f, 0x1e71, 0x1e84,+    0x1e86, 0x1e8a, 0x1e90, 0x1e96, 0x1e98, 0x1e9c, 0x1e9e, 0x1ea6,+    0x1ea9, 0x1eab, 0x1eb1, 0x1eb3, 0x30b5, 0x1eb9, 0x1f11, 0x1f27,+    0x1f2b, 0x1f2d, 0x1f32, 0x1f7f, 0x1f90, 0x2091, 0x20a1, 0x20a7,+    0x21a1, 0x22bf,+};++static const uint8_t unicode_decomp_data[9165] = {+    0x20, 0x88, 0x20, 0x84, 0x32, 0x33, 0x20, 0x81,+    0x20, 0xa7, 0x31, 0x6f, 0x31, 0xd0, 0x34, 0x31,+    0xd0, 0x32, 0x33, 0xd0, 0x34, 0x41, 0x80, 0x41,+    0x81, 0x41, 0x82, 0x41, 0x83, 0x41, 0x88, 0x41,+    0x8a, 0x00, 0x00, 0x43, 0xa7, 0x45, 0x80, 0x45,+    0x81, 0x45, 0x82, 0x45, 0x88, 0x49, 0x80, 0x49,+    0x81, 0x49, 0x82, 0x49, 0x88, 0x00, 0x00, 0x4e,+    0x83, 0x4f, 0x80, 0x4f, 0x81, 0x4f, 0x82, 0x4f,+    0x83, 0x4f, 0x88, 0x00, 0x00, 0x00, 0x00, 0x55,+    0x80, 0x55, 0x81, 0x55, 0x82, 0x55, 0x88, 0x59,+    0x81, 0x00, 0x00, 0x00, 0x00, 0x61, 0x80, 0x61,+    0x81, 0x61, 0x82, 0x61, 0x83, 0x61, 0x88, 0x61,+    0x8a, 0x00, 0x00, 0x63, 0xa7, 0x65, 0x80, 0x65,+    0x81, 0x65, 0x82, 0x65, 0x88, 0x69, 0x80, 0x69,+    0x81, 0x69, 0x82, 0x69, 0x88, 0x00, 0x00, 0x6e,+    0x83, 0x6f, 0x80, 0x6f, 0x81, 0x6f, 0x82, 0x6f,+    0x83, 0x6f, 0x88, 0x00, 0x00, 0x00, 0x00, 0x75,+    0x80, 0x75, 0x81, 0x75, 0x82, 0x75, 0x88, 0x79,+    0x81, 0x00, 0x00, 0x79, 0x88, 0x41, 0x84, 0x41,+    0x86, 0x41, 0xa8, 0x43, 0x81, 0x43, 0x82, 0x43,+    0x87, 0x43, 0x8c, 0x44, 0x8c, 0x45, 0x84, 0x45,+    0x86, 0x45, 0x87, 0x45, 0xa8, 0x45, 0x8c, 0x47,+    0x82, 0x47, 0x86, 0x47, 0x87, 0x47, 0xa7, 0x48,+    0x82, 0x49, 0x83, 0x49, 0x84, 0x49, 0x86, 0x49,+    0xa8, 0x49, 0x87, 0x49, 0x4a, 0x69, 0x6a, 0x4a,+    0x82, 0x4b, 0xa7, 0x4c, 0x81, 0x4c, 0xa7, 0x4c,+    0x8c, 0x4c, 0x00, 0x00, 0x6b, 0x20, 0x6b, 0x4e,+    0x81, 0x4e, 0xa7, 0x4e, 0x8c, 0xbc, 0x02, 0x6e,+    0x4f, 0x84, 0x4f, 0x86, 0x4f, 0x8b, 0x52, 0x81,+    0x52, 0xa7, 0x52, 0x8c, 0x53, 0x81, 0x53, 0x82,+    0x53, 0xa7, 0x53, 0x8c, 0x54, 0xa7, 0x54, 0x8c,+    0x55, 0x83, 0x55, 0x84, 0x55, 0x86, 0x55, 0x8a,+    0x55, 0x8b, 0x55, 0xa8, 0x57, 0x82, 0x59, 0x82,+    0x59, 0x88, 0x5a, 0x81, 0x5a, 0x87, 0x5a, 0x8c,+    0x4f, 0x9b, 0x55, 0x9b, 0x44, 0x00, 0x7d, 0x01,+    0x44, 0x00, 0x7e, 0x01, 0x64, 0x00, 0x7e, 0x01,+    0x4c, 0x4a, 0x4c, 0x6a, 0x6c, 0x6a, 0x4e, 0x4a,+    0x4e, 0x6a, 0x6e, 0x6a, 0x41, 0x00, 0x8c, 0x49,+    0x00, 0x8c, 0x4f, 0x00, 0x8c, 0x55, 0x00, 0x8c,+    0xdc, 0x00, 0x84, 0xdc, 0x00, 0x81, 0xdc, 0x00,+    0x8c, 0xdc, 0x00, 0x80, 0xc4, 0x00, 0x84, 0x26,+    0x02, 0x84, 0xc6, 0x00, 0x84, 0x47, 0x8c, 0x4b,+    0x8c, 0x4f, 0xa8, 0xea, 0x01, 0x84, 0xeb, 0x01,+    0x84, 0xb7, 0x01, 0x8c, 0x92, 0x02, 0x8c, 0x6a,+    0x00, 0x8c, 0x44, 0x5a, 0x44, 0x7a, 0x64, 0x7a,+    0x47, 0x81, 0x4e, 0x00, 0x80, 0xc5, 0x00, 0x81,+    0xc6, 0x00, 0x81, 0xd8, 0x00, 0x81, 0x41, 0x8f,+    0x41, 0x91, 0x45, 0x8f, 0x45, 0x91, 0x49, 0x8f,+    0x49, 0x91, 0x4f, 0x8f, 0x4f, 0x91, 0x52, 0x8f,+    0x52, 0x91, 0x55, 0x8f, 0x55, 0x91, 0x53, 0xa6,+    0x54, 0xa6, 0x48, 0x8c, 0x41, 0x00, 0x87, 0x45,+    0x00, 0xa7, 0xd6, 0x00, 0x84, 0xd5, 0x00, 0x84,+    0x4f, 0x00, 0x87, 0x2e, 0x02, 0x84, 0x59, 0x00,+    0x84, 0x68, 0x00, 0x66, 0x02, 0x6a, 0x00, 0x72,+    0x00, 0x79, 0x02, 0x7b, 0x02, 0x81, 0x02, 0x77,+    0x00, 0x79, 0x00, 0x20, 0x86, 0x20, 0x87, 0x20,+    0x8a, 0x20, 0xa8, 0x20, 0x83, 0x20, 0x8b, 0x63,+    0x02, 0x6c, 0x00, 0x73, 0x00, 0x78, 0x00, 0x95,+    0x02, 0x80, 0x81, 0x00, 0x93, 0x88, 0x81, 0x20,+    0xc5, 0x20, 0x81, 0xa8, 0x00, 0x81, 0x91, 0x03,+    0x81, 0x95, 0x03, 0x81, 0x97, 0x03, 0x81, 0x99,+    0x03, 0x81, 0x00, 0x00, 0x00, 0x9f, 0x03, 0x81,+    0x00, 0x00, 0x00, 0xa5, 0x03, 0x81, 0xa9, 0x03,+    0x81, 0xca, 0x03, 0x81, 0x01, 0x03, 0x98, 0x07,+    0xa4, 0x07, 0xb0, 0x00, 0xb4, 0x00, 0xb6, 0x00,+    0xb8, 0x00, 0xca, 0x00, 0x01, 0x03, 0xb8, 0x07,+    0xc4, 0x07, 0xbe, 0x00, 0xc4, 0x00, 0xc8, 0x00,+    0xa5, 0x03, 0x0d, 0x13, 0x00, 0x01, 0x03, 0xd1,+    0x00, 0xd1, 0x07, 0xc6, 0x03, 0xc0, 0x03, 0xba,+    0x03, 0xc1, 0x03, 0xc2, 0x03, 0x00, 0x00, 0x98,+    0x03, 0xb5, 0x03, 0x15, 0x04, 0x80, 0x15, 0x04,+    0x88, 0x00, 0x00, 0x00, 0x13, 0x04, 0x81, 0x06,+    0x04, 0x88, 0x1a, 0x04, 0x81, 0x18, 0x04, 0x80,+    0x23, 0x04, 0x86, 0x18, 0x04, 0x86, 0x38, 0x04,+    0x86, 0x35, 0x04, 0x80, 0x35, 0x04, 0x88, 0x00,+    0x00, 0x00, 0x33, 0x04, 0x81, 0x56, 0x04, 0x88,+    0x3a, 0x04, 0x81, 0x38, 0x04, 0x80, 0x43, 0x04,+    0x86, 0x74, 0x04, 0x8f, 0x16, 0x04, 0x86, 0x10,+    0x04, 0x86, 0x10, 0x04, 0x88, 0x15, 0x04, 0x86,+    0xd8, 0x04, 0x88, 0x16, 0x04, 0x88, 0x17, 0x04,+    0x88, 0x18, 0x04, 0x84, 0x18, 0x04, 0x88, 0x1e,+    0x04, 0x88, 0xe8, 0x04, 0x88, 0x2d, 0x04, 0x88,+    0x23, 0x04, 0x84, 0x23, 0x04, 0x88, 0x23, 0x04,+    0x8b, 0x27, 0x04, 0x88, 0x2b, 0x04, 0x88, 0x65,+    0x05, 0x82, 0x05, 0x27, 0x06, 0x00, 0x2c, 0x00,+    0x2d, 0x21, 0x2d, 0x00, 0x2e, 0x23, 0x2d, 0x27,+    0x06, 0x00, 0x4d, 0x21, 0x4d, 0xa0, 0x4d, 0x23,+    0x4d, 0xd5, 0x06, 0x54, 0x06, 0x00, 0x00, 0x00,+    0x00, 0xc1, 0x06, 0x54, 0x06, 0xd2, 0x06, 0x54,+    0x06, 0x28, 0x09, 0x3c, 0x09, 0x30, 0x09, 0x3c,+    0x09, 0x33, 0x09, 0x3c, 0x09, 0x15, 0x09, 0x00,+    0x27, 0x01, 0x27, 0x02, 0x27, 0x07, 0x27, 0x0c,+    0x27, 0x0d, 0x27, 0x16, 0x27, 0x1a, 0x27, 0xbe,+    0x09, 0x09, 0x00, 0x09, 0x19, 0xa1, 0x09, 0xbc,+    0x09, 0xaf, 0x09, 0xbc, 0x09, 0x32, 0x0a, 0x3c,+    0x0a, 0x38, 0x0a, 0x3c, 0x0a, 0x16, 0x0a, 0x00,+    0x26, 0x01, 0x26, 0x06, 0x26, 0x2b, 0x0a, 0x3c,+    0x0a, 0x47, 0x0b, 0x56, 0x0b, 0x3e, 0x0b, 0x09,+    0x00, 0x09, 0x19, 0x21, 0x0b, 0x3c, 0x0b, 0x92,+    0x0b, 0xd7, 0x0b, 0xbe, 0x0b, 0x08, 0x00, 0x09,+    0x00, 0x08, 0x19, 0x46, 0x0c, 0x56, 0x0c, 0xbf,+    0x0c, 0xd5, 0x0c, 0xc6, 0x0c, 0xd5, 0x0c, 0xc2,+    0x0c, 0x04, 0x00, 0x08, 0x13, 0x3e, 0x0d, 0x08,+    0x00, 0x09, 0x00, 0x08, 0x19, 0xd9, 0x0d, 0xca,+    0x0d, 0xca, 0x0d, 0x0f, 0x05, 0x12, 0x00, 0x0f,+    0x15, 0x4d, 0x0e, 0x32, 0x0e, 0xcd, 0x0e, 0xb2,+    0x0e, 0x99, 0x0e, 0x12, 0x00, 0x12, 0x08, 0x42,+    0x0f, 0xb7, 0x0f, 0x4c, 0x0f, 0xb7, 0x0f, 0x51,+    0x0f, 0xb7, 0x0f, 0x56, 0x0f, 0xb7, 0x0f, 0x5b,+    0x0f, 0xb7, 0x0f, 0x40, 0x0f, 0xb5, 0x0f, 0x71,+    0x0f, 0x72, 0x0f, 0x71, 0x0f, 0x00, 0x03, 0x41,+    0x0f, 0xb2, 0x0f, 0x81, 0x0f, 0xb3, 0x0f, 0x80,+    0x0f, 0xb3, 0x0f, 0x81, 0x0f, 0x71, 0x0f, 0x80,+    0x0f, 0x92, 0x0f, 0xb7, 0x0f, 0x9c, 0x0f, 0xb7,+    0x0f, 0xa1, 0x0f, 0xb7, 0x0f, 0xa6, 0x0f, 0xb7,+    0x0f, 0xab, 0x0f, 0xb7, 0x0f, 0x90, 0x0f, 0xb5,+    0x0f, 0x25, 0x10, 0x2e, 0x10, 0x05, 0x1b, 0x35,+    0x1b, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1b, 0x35,+    0x1b, 0x00, 0x00, 0x00, 0x00, 0x09, 0x1b, 0x35,+    0x1b, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x1b, 0x35,+    0x1b, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x1b, 0x35,+    0x1b, 0x11, 0x1b, 0x35, 0x1b, 0x3a, 0x1b, 0x35,+    0x1b, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1b, 0x35,+    0x1b, 0x3e, 0x1b, 0x35, 0x1b, 0x42, 0x1b, 0x35,+    0x1b, 0x41, 0x00, 0xc6, 0x00, 0x42, 0x00, 0x00,+    0x00, 0x44, 0x00, 0x45, 0x00, 0x8e, 0x01, 0x47,+    0x00, 0x4f, 0x00, 0x22, 0x02, 0x50, 0x00, 0x52,+    0x00, 0x54, 0x00, 0x55, 0x00, 0x57, 0x00, 0x61,+    0x00, 0x50, 0x02, 0x51, 0x02, 0x02, 0x1d, 0x62,+    0x00, 0x64, 0x00, 0x65, 0x00, 0x59, 0x02, 0x5b,+    0x02, 0x5c, 0x02, 0x67, 0x00, 0x00, 0x00, 0x6b,+    0x00, 0x6d, 0x00, 0x4b, 0x01, 0x6f, 0x00, 0x54,+    0x02, 0x16, 0x1d, 0x17, 0x1d, 0x70, 0x00, 0x74,+    0x00, 0x75, 0x00, 0x1d, 0x1d, 0x6f, 0x02, 0x76,+    0x00, 0x25, 0x1d, 0xb2, 0x03, 0xb3, 0x03, 0xb4,+    0x03, 0xc6, 0x03, 0xc7, 0x03, 0x69, 0x00, 0x72,+    0x00, 0x75, 0x00, 0x76, 0x00, 0xb2, 0x03, 0xb3,+    0x03, 0xc1, 0x03, 0xc6, 0x03, 0xc7, 0x03, 0x52,+    0x02, 0x63, 0x00, 0x55, 0x02, 0xf0, 0x00, 0x5c,+    0x02, 0x66, 0x00, 0x5f, 0x02, 0x61, 0x02, 0x65,+    0x02, 0x68, 0x02, 0x69, 0x02, 0x6a, 0x02, 0x7b,+    0x1d, 0x9d, 0x02, 0x6d, 0x02, 0x85, 0x1d, 0x9f,+    0x02, 0x71, 0x02, 0x70, 0x02, 0x72, 0x02, 0x73,+    0x02, 0x74, 0x02, 0x75, 0x02, 0x78, 0x02, 0x82,+    0x02, 0x83, 0x02, 0xab, 0x01, 0x89, 0x02, 0x8a,+    0x02, 0x1c, 0x1d, 0x8b, 0x02, 0x8c, 0x02, 0x7a,+    0x00, 0x90, 0x02, 0x91, 0x02, 0x92, 0x02, 0xb8,+    0x03, 0x41, 0x00, 0xa5, 0x42, 0x00, 0x87, 0x42,+    0x00, 0xa3, 0x42, 0x00, 0xb1, 0xc7, 0x00, 0x81,+    0x44, 0x00, 0x87, 0x44, 0x00, 0xa3, 0x44, 0x00,+    0xb1, 0x44, 0x00, 0xa7, 0x44, 0x00, 0xad, 0x12,+    0x01, 0x80, 0x12, 0x01, 0x81, 0x45, 0x00, 0xad,+    0x45, 0x00, 0xb0, 0x28, 0x02, 0x86, 0x46, 0x00,+    0x87, 0x47, 0x00, 0x84, 0x48, 0x00, 0x87, 0x48,+    0x00, 0xa3, 0x48, 0x00, 0x88, 0x48, 0x00, 0xa7,+    0x48, 0x00, 0xae, 0x49, 0x00, 0xb0, 0xcf, 0x00,+    0x81, 0x4b, 0x00, 0x81, 0x4b, 0x00, 0xa3, 0x4b,+    0x00, 0xb1, 0x4c, 0x00, 0xa3, 0x36, 0x1e, 0x84,+    0x4c, 0xb1, 0x4c, 0xad, 0x4d, 0x81, 0x4d, 0x87,+    0x4d, 0xa3, 0x4e, 0x87, 0x4e, 0xa3, 0x4e, 0xb1,+    0x4e, 0xad, 0xd5, 0x00, 0x81, 0xd5, 0x00, 0x88,+    0x4c, 0x01, 0x80, 0x4c, 0x01, 0x81, 0x50, 0x00,+    0x81, 0x50, 0x00, 0x87, 0x52, 0x00, 0x87, 0x52,+    0x00, 0xa3, 0x5a, 0x1e, 0x84, 0x52, 0x00, 0xb1,+    0x53, 0x00, 0x87, 0x53, 0x00, 0xa3, 0x5a, 0x01,+    0x87, 0x60, 0x01, 0x87, 0x62, 0x1e, 0x87, 0x54,+    0x00, 0x87, 0x54, 0x00, 0xa3, 0x54, 0x00, 0xb1,+    0x54, 0x00, 0xad, 0x55, 0x00, 0xa4, 0x55, 0x00,+    0xb0, 0x55, 0x00, 0xad, 0x68, 0x01, 0x81, 0x6a,+    0x01, 0x88, 0x56, 0x83, 0x56, 0xa3, 0x57, 0x80,+    0x57, 0x81, 0x57, 0x88, 0x57, 0x87, 0x57, 0xa3,+    0x58, 0x87, 0x58, 0x88, 0x59, 0x87, 0x5a, 0x82,+    0x5a, 0xa3, 0x5a, 0xb1, 0x68, 0xb1, 0x74, 0x88,+    0x77, 0x8a, 0x79, 0x8a, 0x61, 0x00, 0xbe, 0x02,+    0x7f, 0x01, 0x87, 0x41, 0x00, 0xa3, 0x41, 0x00,+    0x89, 0xc2, 0x00, 0x81, 0xc2, 0x00, 0x80, 0xc2,+    0x00, 0x89, 0xc2, 0x00, 0x83, 0xa0, 0x1e, 0x82,+    0x02, 0x01, 0x81, 0x02, 0x01, 0x80, 0x02, 0x01,+    0x89, 0x02, 0x01, 0x83, 0xa0, 0x1e, 0x86, 0x45,+    0x00, 0xa3, 0x45, 0x00, 0x89, 0x45, 0x00, 0x83,+    0xca, 0x00, 0x81, 0xca, 0x00, 0x80, 0xca, 0x00,+    0x89, 0xca, 0x00, 0x83, 0xb8, 0x1e, 0x82, 0x49,+    0x00, 0x89, 0x49, 0x00, 0xa3, 0x4f, 0x00, 0xa3,+    0x4f, 0x00, 0x89, 0xd4, 0x00, 0x81, 0xd4, 0x00,+    0x80, 0xd4, 0x00, 0x89, 0xd4, 0x00, 0x83, 0xcc,+    0x1e, 0x82, 0xa0, 0x01, 0x81, 0xa0, 0x01, 0x80,+    0xa0, 0x01, 0x89, 0xa0, 0x01, 0x83, 0xa0, 0x01,+    0xa3, 0x55, 0x00, 0xa3, 0x55, 0x00, 0x89, 0xaf,+    0x01, 0x81, 0xaf, 0x01, 0x80, 0xaf, 0x01, 0x89,+    0xaf, 0x01, 0x83, 0xaf, 0x01, 0xa3, 0x59, 0x00,+    0x80, 0x59, 0x00, 0xa3, 0x59, 0x00, 0x89, 0x59,+    0x00, 0x83, 0xb1, 0x03, 0x13, 0x03, 0x00, 0x1f,+    0x80, 0x00, 0x1f, 0x81, 0x00, 0x1f, 0xc2, 0x91,+    0x03, 0x13, 0x03, 0x08, 0x1f, 0x80, 0x08, 0x1f,+    0x81, 0x08, 0x1f, 0xc2, 0xb5, 0x03, 0x13, 0x03,+    0x10, 0x1f, 0x80, 0x10, 0x1f, 0x81, 0x95, 0x03,+    0x13, 0x03, 0x18, 0x1f, 0x80, 0x18, 0x1f, 0x81,+    0xb7, 0x03, 0x93, 0xb7, 0x03, 0x94, 0x20, 0x1f,+    0x80, 0x21, 0x1f, 0x80, 0x20, 0x1f, 0x81, 0x21,+    0x1f, 0x81, 0x20, 0x1f, 0xc2, 0x21, 0x1f, 0xc2,+    0x97, 0x03, 0x93, 0x97, 0x03, 0x94, 0x28, 0x1f,+    0x80, 0x29, 0x1f, 0x80, 0x28, 0x1f, 0x81, 0x29,+    0x1f, 0x81, 0x28, 0x1f, 0xc2, 0x29, 0x1f, 0xc2,+    0xb9, 0x03, 0x93, 0xb9, 0x03, 0x94, 0x30, 0x1f,+    0x80, 0x31, 0x1f, 0x80, 0x30, 0x1f, 0x81, 0x31,+    0x1f, 0x81, 0x30, 0x1f, 0xc2, 0x31, 0x1f, 0xc2,+    0x99, 0x03, 0x93, 0x99, 0x03, 0x94, 0x38, 0x1f,+    0x80, 0x39, 0x1f, 0x80, 0x38, 0x1f, 0x81, 0x39,+    0x1f, 0x81, 0x38, 0x1f, 0xc2, 0x39, 0x1f, 0xc2,+    0xbf, 0x03, 0x93, 0xbf, 0x03, 0x94, 0x40, 0x1f,+    0x80, 0x40, 0x1f, 0x81, 0x9f, 0x03, 0x13, 0x03,+    0x48, 0x1f, 0x80, 0x48, 0x1f, 0x81, 0xc5, 0x03,+    0x13, 0x03, 0x50, 0x1f, 0x80, 0x50, 0x1f, 0x81,+    0x50, 0x1f, 0xc2, 0xa5, 0x03, 0x94, 0x00, 0x00,+    0x00, 0x59, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x59,+    0x1f, 0x81, 0x00, 0x00, 0x00, 0x59, 0x1f, 0xc2,+    0xc9, 0x03, 0x93, 0xc9, 0x03, 0x94, 0x60, 0x1f,+    0x80, 0x61, 0x1f, 0x80, 0x60, 0x1f, 0x81, 0x61,+    0x1f, 0x81, 0x60, 0x1f, 0xc2, 0x61, 0x1f, 0xc2,+    0xa9, 0x03, 0x93, 0xa9, 0x03, 0x94, 0x68, 0x1f,+    0x80, 0x69, 0x1f, 0x80, 0x68, 0x1f, 0x81, 0x69,+    0x1f, 0x81, 0x68, 0x1f, 0xc2, 0x69, 0x1f, 0xc2,+    0xb1, 0x03, 0x80, 0xb5, 0x03, 0x80, 0xb7, 0x03,+    0x80, 0xb9, 0x03, 0x80, 0xbf, 0x03, 0x80, 0xc5,+    0x03, 0x80, 0xc9, 0x03, 0x80, 0x00, 0x1f, 0x45,+    0x03, 0x20, 0x1f, 0x45, 0x03, 0x60, 0x1f, 0x45,+    0x03, 0xb1, 0x03, 0x86, 0xb1, 0x03, 0x84, 0x70,+    0x1f, 0xc5, 0xb1, 0x03, 0xc5, 0xac, 0x03, 0xc5,+    0x00, 0x00, 0x00, 0xb1, 0x03, 0xc2, 0xb6, 0x1f,+    0xc5, 0x91, 0x03, 0x86, 0x91, 0x03, 0x84, 0x91,+    0x03, 0x80, 0x91, 0x03, 0xc5, 0x20, 0x93, 0x20,+    0x93, 0x20, 0xc2, 0xa8, 0x00, 0xc2, 0x74, 0x1f,+    0xc5, 0xb7, 0x03, 0xc5, 0xae, 0x03, 0xc5, 0x00,+    0x00, 0x00, 0xb7, 0x03, 0xc2, 0xc6, 0x1f, 0xc5,+    0x95, 0x03, 0x80, 0x97, 0x03, 0x80, 0x97, 0x03,+    0xc5, 0xbf, 0x1f, 0x80, 0xbf, 0x1f, 0x81, 0xbf,+    0x1f, 0xc2, 0xb9, 0x03, 0x86, 0xb9, 0x03, 0x84,+    0xca, 0x03, 0x80, 0x00, 0x03, 0xb9, 0x42, 0xca,+    0x42, 0x99, 0x06, 0x99, 0x04, 0x99, 0x00, 0xfe,+    0x1f, 0x80, 0xfe, 0x1f, 0x81, 0xfe, 0x1f, 0xc2,+    0xc5, 0x03, 0x86, 0xc5, 0x03, 0x84, 0xcb, 0x03,+    0x80, 0x00, 0x03, 0xc1, 0x13, 0xc1, 0x14, 0xc5,+    0x42, 0xcb, 0x42, 0xa5, 0x06, 0xa5, 0x04, 0xa5,+    0x00, 0xa1, 0x03, 0x94, 0xa8, 0x00, 0x80, 0x85,+    0x03, 0x60, 0x00, 0x7c, 0x1f, 0xc5, 0xc9, 0x03,+    0xc5, 0xce, 0x03, 0xc5, 0x00, 0x00, 0x00, 0xc9,+    0x03, 0xc2, 0xf6, 0x1f, 0xc5, 0x9f, 0x03, 0x80,+    0xa9, 0x03, 0x80, 0xa9, 0x03, 0xc5, 0x20, 0x94,+    0x02, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,+    0x20, 0x20, 0x20, 0x20, 0xb3, 0x2e, 0x2e, 0x2e,+    0x2e, 0x2e, 0x32, 0x20, 0x32, 0x20, 0x32, 0x20,+    0x00, 0x00, 0x00, 0x35, 0x20, 0x35, 0x20, 0x35,+    0x20, 0x00, 0x00, 0x00, 0x21, 0x21, 0x00, 0x00,+    0x20, 0x85, 0x3f, 0x3f, 0x3f, 0x21, 0x21, 0x3f,+    0x32, 0x20, 0x00, 0x00, 0x00, 0x00, 0x30, 0x69,+    0x00, 0x00, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,+    0x2b, 0x3d, 0x28, 0x29, 0x6e, 0x30, 0x00, 0x2b,+    0x00, 0x12, 0x22, 0x3d, 0x00, 0x28, 0x00, 0x29,+    0x00, 0x00, 0x00, 0x61, 0x00, 0x65, 0x00, 0x6f,+    0x00, 0x78, 0x00, 0x59, 0x02, 0x68, 0x6b, 0x6c,+    0x6d, 0x6e, 0x70, 0x73, 0x74, 0x52, 0x73, 0x61,+    0x2f, 0x63, 0x61, 0x2f, 0x73, 0xb0, 0x00, 0x43,+    0x63, 0x2f, 0x6f, 0x63, 0x2f, 0x75, 0xb0, 0x00,+    0x46, 0x48, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x20,+    0xdf, 0x01, 0x01, 0x04, 0x24, 0x4e, 0x6f, 0x50,+    0x51, 0x52, 0x52, 0x52, 0x53, 0x4d, 0x54, 0x45,+    0x4c, 0x54, 0x4d, 0x4b, 0x00, 0xc5, 0x00, 0x42,+    0x43, 0x00, 0x65, 0x45, 0x46, 0x00, 0x4d, 0x6f,+    0xd0, 0x05, 0x46, 0x41, 0x58, 0xc0, 0x03, 0xb3,+    0x03, 0x93, 0x03, 0xa0, 0x03, 0x11, 0x22, 0x44,+    0x64, 0x65, 0x69, 0x6a, 0x31, 0xd0, 0x37, 0x31,+    0xd0, 0x39, 0x31, 0xd0, 0x31, 0x30, 0x31, 0xd0,+    0x33, 0x32, 0xd0, 0x33, 0x31, 0xd0, 0x35, 0x32,+    0xd0, 0x35, 0x33, 0xd0, 0x35, 0x34, 0xd0, 0x35,+    0x31, 0xd0, 0x36, 0x35, 0xd0, 0x36, 0x31, 0xd0,+    0x38, 0x33, 0xd0, 0x38, 0x35, 0xd0, 0x38, 0x37,+    0xd0, 0x38, 0x31, 0xd0, 0x49, 0x49, 0x49, 0x49,+    0x49, 0x49, 0x56, 0x56, 0x49, 0x56, 0x49, 0x49,+    0x56, 0x49, 0x49, 0x49, 0x49, 0x58, 0x58, 0x49,+    0x58, 0x49, 0x49, 0x4c, 0x43, 0x44, 0x4d, 0x69,+    0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x76, 0x76,+    0x69, 0x76, 0x69, 0x69, 0x76, 0x69, 0x69, 0x69,+    0x69, 0x78, 0x78, 0x69, 0x78, 0x69, 0x69, 0x6c,+    0x63, 0x64, 0x6d, 0x30, 0xd0, 0x33, 0x90, 0x21,+    0xb8, 0x92, 0x21, 0xb8, 0x94, 0x21, 0xb8, 0xd0,+    0x21, 0xb8, 0xd4, 0x21, 0xb8, 0xd2, 0x21, 0xb8,+    0x03, 0x22, 0xb8, 0x08, 0x22, 0xb8, 0x0b, 0x22,+    0xb8, 0x23, 0x22, 0xb8, 0x00, 0x00, 0x00, 0x25,+    0x22, 0xb8, 0x2b, 0x22, 0x2b, 0x22, 0x2b, 0x22,+    0x00, 0x00, 0x00, 0x2e, 0x22, 0x2e, 0x22, 0x2e,+    0x22, 0x00, 0x00, 0x00, 0x3c, 0x22, 0xb8, 0x43,+    0x22, 0xb8, 0x45, 0x22, 0xb8, 0x00, 0x00, 0x00,+    0x48, 0x22, 0xb8, 0x3d, 0x00, 0xb8, 0x00, 0x00,+    0x00, 0x61, 0x22, 0xb8, 0x4d, 0x22, 0xb8, 0x3c,+    0x00, 0xb8, 0x3e, 0x00, 0xb8, 0x64, 0x22, 0xb8,+    0x65, 0x22, 0xb8, 0x72, 0x22, 0xb8, 0x76, 0x22,+    0xb8, 0x7a, 0x22, 0xb8, 0x82, 0x22, 0xb8, 0x86,+    0x22, 0xb8, 0xa2, 0x22, 0xb8, 0xa8, 0x22, 0xb8,+    0xa9, 0x22, 0xb8, 0xab, 0x22, 0xb8, 0x7c, 0x22,+    0xb8, 0x91, 0x22, 0xb8, 0xb2, 0x22, 0x38, 0x03,+    0x08, 0x30, 0x31, 0x00, 0x31, 0x00, 0x30, 0x00,+    0x32, 0x30, 0x28, 0x00, 0x31, 0x00, 0x29, 0x00,+    0x28, 0x00, 0x31, 0x00, 0x30, 0x00, 0x29, 0x00,+    0x28, 0x32, 0x30, 0x29, 0x31, 0x00, 0x2e, 0x00,+    0x31, 0x00, 0x30, 0x00, 0x2e, 0x00, 0x32, 0x30,+    0x2e, 0x28, 0x00, 0x61, 0x00, 0x29, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x2b, 0x22, 0x00, 0x00, 0x00,+    0x00, 0x3a, 0x3a, 0x3d, 0x3d, 0x3d, 0x3d, 0x3d,+    0x3d, 0xdd, 0x2a, 0xb8, 0x6a, 0x56, 0x00, 0x4e,+    0x00, 0x28, 0x36, 0x3f, 0x59, 0x85, 0x8c, 0xa0,+    0xba, 0x3f, 0x51, 0x00, 0x26, 0x2c, 0x43, 0x57,+    0x6c, 0xa1, 0xb6, 0xc1, 0x9b, 0x52, 0x00, 0x5e,+    0x7a, 0x7f, 0x9d, 0xa6, 0xc1, 0xce, 0xe7, 0xb6,+    0x53, 0xc8, 0x53, 0xe3, 0x53, 0xd7, 0x56, 0x1f,+    0x57, 0xeb, 0x58, 0x02, 0x59, 0x0a, 0x59, 0x15,+    0x59, 0x27, 0x59, 0x73, 0x59, 0x50, 0x5b, 0x80,+    0x5b, 0xf8, 0x5b, 0x0f, 0x5c, 0x22, 0x5c, 0x38,+    0x5c, 0x6e, 0x5c, 0x71, 0x5c, 0xdb, 0x5d, 0xe5,+    0x5d, 0xf1, 0x5d, 0xfe, 0x5d, 0x72, 0x5e, 0x7a,+    0x5e, 0x7f, 0x5e, 0xf4, 0x5e, 0xfe, 0x5e, 0x0b,+    0x5f, 0x13, 0x5f, 0x50, 0x5f, 0x61, 0x5f, 0x73,+    0x5f, 0xc3, 0x5f, 0x08, 0x62, 0x36, 0x62, 0x4b,+    0x62, 0x2f, 0x65, 0x34, 0x65, 0x87, 0x65, 0x97,+    0x65, 0xa4, 0x65, 0xb9, 0x65, 0xe0, 0x65, 0xe5,+    0x65, 0xf0, 0x66, 0x08, 0x67, 0x28, 0x67, 0x20,+    0x6b, 0x62, 0x6b, 0x79, 0x6b, 0xb3, 0x6b, 0xcb,+    0x6b, 0xd4, 0x6b, 0xdb, 0x6b, 0x0f, 0x6c, 0x14,+    0x6c, 0x34, 0x6c, 0x6b, 0x70, 0x2a, 0x72, 0x36,+    0x72, 0x3b, 0x72, 0x3f, 0x72, 0x47, 0x72, 0x59,+    0x72, 0x5b, 0x72, 0xac, 0x72, 0x84, 0x73, 0x89,+    0x73, 0xdc, 0x74, 0xe6, 0x74, 0x18, 0x75, 0x1f,+    0x75, 0x28, 0x75, 0x30, 0x75, 0x8b, 0x75, 0x92,+    0x75, 0x76, 0x76, 0x7d, 0x76, 0xae, 0x76, 0xbf,+    0x76, 0xee, 0x76, 0xdb, 0x77, 0xe2, 0x77, 0xf3,+    0x77, 0x3a, 0x79, 0xb8, 0x79, 0xbe, 0x79, 0x74,+    0x7a, 0xcb, 0x7a, 0xf9, 0x7a, 0x73, 0x7c, 0xf8,+    0x7c, 0x36, 0x7f, 0x51, 0x7f, 0x8a, 0x7f, 0xbd,+    0x7f, 0x01, 0x80, 0x0c, 0x80, 0x12, 0x80, 0x33,+    0x80, 0x7f, 0x80, 0x89, 0x80, 0xe3, 0x81, 0x00,+    0x07, 0x10, 0x19, 0x29, 0x38, 0x3c, 0x8b, 0x8f,+    0x95, 0x4d, 0x86, 0x6b, 0x86, 0x40, 0x88, 0x4c,+    0x88, 0x63, 0x88, 0x7e, 0x89, 0x8b, 0x89, 0xd2,+    0x89, 0x00, 0x8a, 0x37, 0x8c, 0x46, 0x8c, 0x55,+    0x8c, 0x78, 0x8c, 0x9d, 0x8c, 0x64, 0x8d, 0x70,+    0x8d, 0xb3, 0x8d, 0xab, 0x8e, 0xca, 0x8e, 0x9b,+    0x8f, 0xb0, 0x8f, 0xb5, 0x8f, 0x91, 0x90, 0x49,+    0x91, 0xc6, 0x91, 0xcc, 0x91, 0xd1, 0x91, 0x77,+    0x95, 0x80, 0x95, 0x1c, 0x96, 0xb6, 0x96, 0xb9,+    0x96, 0xe8, 0x96, 0x51, 0x97, 0x5e, 0x97, 0x62,+    0x97, 0x69, 0x97, 0xcb, 0x97, 0xed, 0x97, 0xf3,+    0x97, 0x01, 0x98, 0xa8, 0x98, 0xdb, 0x98, 0xdf,+    0x98, 0x96, 0x99, 0x99, 0x99, 0xac, 0x99, 0xa8,+    0x9a, 0xd8, 0x9a, 0xdf, 0x9a, 0x25, 0x9b, 0x2f,+    0x9b, 0x32, 0x9b, 0x3c, 0x9b, 0x5a, 0x9b, 0xe5,+    0x9c, 0x75, 0x9e, 0x7f, 0x9e, 0xa5, 0x9e, 0x00,+    0x16, 0x1e, 0x28, 0x2c, 0x54, 0x58, 0x69, 0x6e,+    0x7b, 0x96, 0xa5, 0xad, 0xe8, 0xf7, 0xfb, 0x12,+    0x30, 0x00, 0x00, 0x41, 0x53, 0x44, 0x53, 0x45,+    0x53, 0x4b, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x4d, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x4f, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x51, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x53, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x55, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x57, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x59, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x5b, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x5d, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x5f, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0x61, 0x30, 0x99, 0x30, 0x64, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0x66, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0x68, 0x30, 0x99,+    0x30, 0x6f, 0x30, 0x99, 0x30, 0x72, 0x30, 0x99,+    0x30, 0x75, 0x30, 0x99, 0x30, 0x78, 0x30, 0x99,+    0x30, 0x7b, 0x30, 0x99, 0x30, 0x46, 0x30, 0x99,+    0x30, 0x20, 0x00, 0x99, 0x30, 0x9d, 0x30, 0x99,+    0x30, 0x88, 0x30, 0x8a, 0x30, 0xab, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xad, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x30, 0x99,+    0x30, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x30, 0x99,+    0x30, 0xc4, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0xc6, 0x30, 0x99, 0x30, 0x00, 0x00, 0x00,+    0x00, 0xc8, 0x30, 0x99, 0x30, 0xcf, 0x30, 0x99,+    0x30, 0xd2, 0x30, 0x99, 0x30, 0xd5, 0x30, 0x99,+    0x30, 0xd8, 0x30, 0x99, 0x30, 0xdb, 0x30, 0x99,+    0x30, 0xa6, 0x30, 0x99, 0x30, 0xef, 0x30, 0x99,+    0x30, 0xfd, 0x30, 0x99, 0x30, 0xb3, 0x30, 0xc8,+    0x30, 0x00, 0x11, 0x00, 0x01, 0xaa, 0x02, 0xac,+    0xad, 0x03, 0x04, 0x05, 0xb0, 0xb1, 0xb2, 0xb3,+    0xb4, 0xb5, 0x1a, 0x06, 0x07, 0x08, 0x21, 0x09,+    0x11, 0x61, 0x11, 0x14, 0x11, 0x4c, 0x00, 0x01,+    0xb3, 0xb4, 0xb8, 0xba, 0xbf, 0xc3, 0xc5, 0x08,+    0xc9, 0xcb, 0x09, 0x0a, 0x0c, 0x0e, 0x0f, 0x13,+    0x15, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1e, 0x22,+    0x2c, 0x33, 0x38, 0xdd, 0xde, 0x43, 0x44, 0x45,+    0x70, 0x71, 0x74, 0x7d, 0x7e, 0x80, 0x8a, 0x8d,+    0x00, 0x4e, 0x8c, 0x4e, 0x09, 0x4e, 0xdb, 0x56,+    0x0a, 0x4e, 0x2d, 0x4e, 0x0b, 0x4e, 0x32, 0x75,+    0x59, 0x4e, 0x19, 0x4e, 0x01, 0x4e, 0x29, 0x59,+    0x30, 0x57, 0xba, 0x4e, 0x28, 0x00, 0x29, 0x00,+    0x00, 0x11, 0x02, 0x11, 0x03, 0x11, 0x05, 0x11,+    0x06, 0x11, 0x07, 0x11, 0x09, 0x11, 0x0b, 0x11,+    0x0c, 0x11, 0x0e, 0x11, 0x0f, 0x11, 0x10, 0x11,+    0x11, 0x11, 0x12, 0x11, 0x28, 0x00, 0x00, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x02, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x05, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x09, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0b, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0e, 0x11,+    0x61, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0c, 0x11,+    0x6e, 0x11, 0x29, 0x00, 0x28, 0x00, 0x0b, 0x11,+    0x69, 0x11, 0x0c, 0x11, 0x65, 0x11, 0xab, 0x11,+    0x29, 0x00, 0x28, 0x00, 0x0b, 0x11, 0x69, 0x11,+    0x12, 0x11, 0x6e, 0x11, 0x29, 0x00, 0x28, 0x00,+    0x29, 0x00, 0x00, 0x4e, 0x8c, 0x4e, 0x09, 0x4e,+    0xdb, 0x56, 0x94, 0x4e, 0x6d, 0x51, 0x03, 0x4e,+    0x6b, 0x51, 0x5d, 0x4e, 0x41, 0x53, 0x08, 0x67,+    0x6b, 0x70, 0x34, 0x6c, 0x28, 0x67, 0xd1, 0x91,+    0x1f, 0x57, 0xe5, 0x65, 0x2a, 0x68, 0x09, 0x67,+    0x3e, 0x79, 0x0d, 0x54, 0x79, 0x72, 0xa1, 0x8c,+    0x5d, 0x79, 0xb4, 0x52, 0xe3, 0x4e, 0x7c, 0x54,+    0x66, 0x5b, 0xe3, 0x76, 0x01, 0x4f, 0xc7, 0x8c,+    0x54, 0x53, 0x6d, 0x79, 0x11, 0x4f, 0xea, 0x81,+    0xf3, 0x81, 0x4f, 0x55, 0x7c, 0x5e, 0x87, 0x65,+    0x8f, 0x7b, 0x50, 0x54, 0x45, 0x32, 0x00, 0x31,+    0x00, 0x33, 0x00, 0x30, 0x00, 0x00, 0x11, 0x00,+    0x02, 0x03, 0x05, 0x06, 0x07, 0x09, 0x0b, 0x0c,+    0x0e, 0x0f, 0x10, 0x11, 0x12, 0x00, 0x11, 0x00,+    0x61, 0x02, 0x61, 0x03, 0x61, 0x05, 0x61, 0x06,+    0x61, 0x07, 0x61, 0x09, 0x61, 0x0b, 0x61, 0x0c,+    0x61, 0x0e, 0x11, 0x61, 0x11, 0x00, 0x11, 0x0e,+    0x61, 0xb7, 0x00, 0x69, 0x0b, 0x11, 0x01, 0x63,+    0x00, 0x69, 0x0b, 0x11, 0x6e, 0x11, 0x00, 0x4e,+    0x8c, 0x4e, 0x09, 0x4e, 0xdb, 0x56, 0x94, 0x4e,+    0x6d, 0x51, 0x03, 0x4e, 0x6b, 0x51, 0x5d, 0x4e,+    0x41, 0x53, 0x08, 0x67, 0x6b, 0x70, 0x34, 0x6c,+    0x28, 0x67, 0xd1, 0x91, 0x1f, 0x57, 0xe5, 0x65,+    0x2a, 0x68, 0x09, 0x67, 0x3e, 0x79, 0x0d, 0x54,+    0x79, 0x72, 0xa1, 0x8c, 0x5d, 0x79, 0xb4, 0x52,+    0xd8, 0x79, 0x37, 0x75, 0x73, 0x59, 0x69, 0x90,+    0x2a, 0x51, 0x70, 0x53, 0xe8, 0x6c, 0x05, 0x98,+    0x11, 0x4f, 0x99, 0x51, 0x63, 0x6b, 0x0a, 0x4e,+    0x2d, 0x4e, 0x0b, 0x4e, 0xe6, 0x5d, 0xf3, 0x53,+    0x3b, 0x53, 0x97, 0x5b, 0x66, 0x5b, 0xe3, 0x76,+    0x01, 0x4f, 0xc7, 0x8c, 0x54, 0x53, 0x1c, 0x59,+    0x33, 0x00, 0x36, 0x00, 0x34, 0x00, 0x30, 0x00,+    0x35, 0x30, 0x31, 0x00, 0x08, 0x67, 0x31, 0x00,+    0x30, 0x00, 0x08, 0x67, 0x48, 0x67, 0x65, 0x72,+    0x67, 0x65, 0x56, 0x4c, 0x54, 0x44, 0xa2, 0x30,+    0x00, 0x02, 0x04, 0x06, 0x08, 0x09, 0x0b, 0x0d,+    0x0f, 0x11, 0x13, 0x15, 0x17, 0x19, 0x1b, 0x1d,+    0x1f, 0x22, 0x24, 0x26, 0x28, 0x29, 0x2a, 0x2b,+    0x2c, 0x2d, 0x30, 0x33, 0x36, 0x39, 0x3c, 0x3d,+    0x3e, 0x3f, 0x40, 0x42, 0x44, 0x46, 0x47, 0x48,+    0x49, 0x4a, 0x4b, 0x4d, 0x4e, 0x4f, 0x50, 0xe4,+    0x4e, 0x8c, 0x54, 0xa1, 0x30, 0x01, 0x30, 0x5b,+    0x27, 0x01, 0x4a, 0x34, 0x00, 0x01, 0x52, 0x39,+    0x01, 0xa2, 0x30, 0x00, 0x5a, 0x49, 0xa4, 0x30,+    0x00, 0x27, 0x4f, 0x0c, 0xa4, 0x30, 0x00, 0x4f,+    0x1d, 0x02, 0x05, 0x4f, 0xa8, 0x30, 0x00, 0x11,+    0x07, 0x54, 0x21, 0xa8, 0x30, 0x00, 0x54, 0x03,+    0x54, 0xa4, 0x30, 0x06, 0x4f, 0x15, 0x06, 0x58,+    0x3c, 0x07, 0x00, 0x46, 0xab, 0x30, 0x00, 0x3e,+    0x18, 0x1d, 0x00, 0x42, 0x3f, 0x51, 0xac, 0x30,+    0x00, 0x41, 0x47, 0x00, 0x47, 0x32, 0xae, 0x30,+    0xac, 0x30, 0xae, 0x30, 0x00, 0x1d, 0x4e, 0xad,+    0x30, 0x00, 0x38, 0x3d, 0x4f, 0x01, 0x3e, 0x13,+    0x4f, 0xad, 0x30, 0xed, 0x30, 0xad, 0x30, 0x00,+    0x40, 0x03, 0x3c, 0x33, 0xad, 0x30, 0x00, 0x40,+    0x34, 0x4f, 0x1b, 0x3e, 0xad, 0x30, 0x00, 0x40,+    0x42, 0x16, 0x1b, 0xb0, 0x30, 0x00, 0x39, 0x30,+    0xa4, 0x30, 0x0c, 0x45, 0x3c, 0x24, 0x4f, 0x0b,+    0x47, 0x18, 0x00, 0x49, 0xaf, 0x30, 0x00, 0x3e,+    0x4d, 0x1e, 0xb1, 0x30, 0x00, 0x4b, 0x08, 0x02,+    0x3a, 0x19, 0x02, 0x4b, 0x2c, 0xa4, 0x30, 0x11,+    0x00, 0x0b, 0x47, 0xb5, 0x30, 0x00, 0x3e, 0x0c,+    0x47, 0x2b, 0xb0, 0x30, 0x07, 0x3a, 0x43, 0x00,+    0xb9, 0x30, 0x02, 0x3a, 0x08, 0x02, 0x3a, 0x0f,+    0x07, 0x43, 0x00, 0xb7, 0x30, 0x10, 0x00, 0x12,+    0x34, 0x11, 0x3c, 0x13, 0x17, 0xa4, 0x30, 0x2a,+    0x1f, 0x24, 0x2b, 0x00, 0x20, 0xbb, 0x30, 0x16,+    0x41, 0x00, 0x38, 0x0d, 0xc4, 0x30, 0x0d, 0x38,+    0x00, 0xd0, 0x30, 0x00, 0x2c, 0x1c, 0x1b, 0xa2,+    0x30, 0x32, 0x00, 0x17, 0x26, 0x49, 0xaf, 0x30,+    0x25, 0x00, 0x3c, 0xb3, 0x30, 0x21, 0x00, 0x20,+    0x38, 0xa1, 0x30, 0x34, 0x00, 0x48, 0x22, 0x28,+    0xa3, 0x30, 0x32, 0x00, 0x59, 0x25, 0xa7, 0x30,+    0x2f, 0x1c, 0x10, 0x00, 0x44, 0xd5, 0x30, 0x00,+    0x14, 0x1e, 0xaf, 0x30, 0x29, 0x00, 0x10, 0x4d,+    0x3c, 0xda, 0x30, 0xbd, 0x30, 0xb8, 0x30, 0x22,+    0x13, 0x1a, 0x20, 0x33, 0x0c, 0x22, 0x3b, 0x01,+    0x22, 0x44, 0x00, 0x21, 0x44, 0x07, 0xa4, 0x30,+    0x39, 0x00, 0x4f, 0x24, 0xc8, 0x30, 0x14, 0x23,+    0x00, 0xdb, 0x30, 0xf3, 0x30, 0xc9, 0x30, 0x14,+    0x2a, 0x00, 0x12, 0x33, 0x22, 0x12, 0x33, 0x2a,+    0xa4, 0x30, 0x3a, 0x00, 0x0b, 0x49, 0xa4, 0x30,+    0x3a, 0x00, 0x47, 0x3a, 0x1f, 0x2b, 0x3a, 0x47,+    0x0b, 0xb7, 0x30, 0x27, 0x3c, 0x00, 0x30, 0x3c,+    0xaf, 0x30, 0x30, 0x00, 0x3e, 0x44, 0xdf, 0x30,+    0xea, 0x30, 0xd0, 0x30, 0x0f, 0x1a, 0x00, 0x2c,+    0x1b, 0xe1, 0x30, 0xac, 0x30, 0xac, 0x30, 0x35,+    0x00, 0x1c, 0x47, 0x35, 0x50, 0x1c, 0x3f, 0xa2,+    0x30, 0x42, 0x5a, 0x27, 0x42, 0x5a, 0x49, 0x44,+    0x00, 0x51, 0xc3, 0x30, 0x27, 0x00, 0x05, 0x28,+    0xea, 0x30, 0xe9, 0x30, 0xd4, 0x30, 0x17, 0x00,+    0x28, 0xd6, 0x30, 0x15, 0x26, 0x00, 0x15, 0xec,+    0x30, 0xe0, 0x30, 0xb2, 0x30, 0x3a, 0x41, 0x16,+    0x00, 0x41, 0xc3, 0x30, 0x2c, 0x00, 0x05, 0x30,+    0x00, 0xb9, 0x70, 0x31, 0x00, 0x30, 0x00, 0xb9,+    0x70, 0x32, 0x00, 0x30, 0x00, 0xb9, 0x70, 0x68,+    0x50, 0x61, 0x64, 0x61, 0x41, 0x55, 0x62, 0x61,+    0x72, 0x6f, 0x56, 0x70, 0x63, 0x64, 0x6d, 0x64,+    0x00, 0x6d, 0x00, 0xb2, 0x00, 0x49, 0x00, 0x55,+    0x00, 0x73, 0x5e, 0x10, 0x62, 0x2d, 0x66, 0x8c,+    0x54, 0x27, 0x59, 0x63, 0x6b, 0x0e, 0x66, 0xbb,+    0x6c, 0x2a, 0x68, 0x0f, 0x5f, 0x1a, 0x4f, 0x3e,+    0x79, 0x70, 0x00, 0x41, 0x6e, 0x00, 0x41, 0xbc,+    0x03, 0x41, 0x6d, 0x00, 0x41, 0x6b, 0x00, 0x41,+    0x4b, 0x00, 0x42, 0x4d, 0x00, 0x42, 0x47, 0x00,+    0x42, 0x63, 0x61, 0x6c, 0x6b, 0x63, 0x61, 0x6c,+    0x70, 0x00, 0x46, 0x6e, 0x00, 0x46, 0xbc, 0x03,+    0x46, 0xbc, 0x03, 0x67, 0x6d, 0x00, 0x67, 0x6b,+    0x00, 0x67, 0x48, 0x00, 0x7a, 0x6b, 0x48, 0x7a,+    0x4d, 0x48, 0x7a, 0x47, 0x48, 0x7a, 0x54, 0x48,+    0x7a, 0xbc, 0x03, 0x13, 0x21, 0x6d, 0x00, 0x13,+    0x21, 0x64, 0x00, 0x13, 0x21, 0x6b, 0x00, 0x13,+    0x21, 0x66, 0x00, 0x6d, 0x6e, 0x00, 0x6d, 0xbc,+    0x03, 0x6d, 0x6d, 0x00, 0x6d, 0x63, 0x00, 0x6d,+    0x6b, 0x00, 0x6d, 0x63, 0x00, 0x0a, 0x0a, 0x4f,+    0x00, 0x0a, 0x4f, 0x6d, 0x00, 0xb2, 0x00, 0x63,+    0x00, 0x08, 0x0a, 0x4f, 0x0a, 0x0a, 0x50, 0x00,+    0x0a, 0x50, 0x6d, 0x00, 0xb3, 0x00, 0x6b, 0x00,+    0x6d, 0x00, 0xb3, 0x00, 0x6d, 0x00, 0x15, 0x22,+    0x73, 0x00, 0x6d, 0x00, 0x15, 0x22, 0x73, 0x00,+    0xb2, 0x00, 0x50, 0x61, 0x6b, 0x50, 0x61, 0x4d,+    0x50, 0x61, 0x47, 0x50, 0x61, 0x72, 0x61, 0x64,+    0x72, 0x61, 0x64, 0xd1, 0x73, 0x72, 0x00, 0x61,+    0x00, 0x64, 0x00, 0x15, 0x22, 0x73, 0x00, 0xb2,+    0x00, 0x70, 0x00, 0x73, 0x6e, 0x00, 0x73, 0xbc,+    0x03, 0x73, 0x6d, 0x00, 0x73, 0x70, 0x00, 0x56,+    0x6e, 0x00, 0x56, 0xbc, 0x03, 0x56, 0x6d, 0x00,+    0x56, 0x6b, 0x00, 0x56, 0x4d, 0x00, 0x56, 0x70,+    0x00, 0x57, 0x6e, 0x00, 0x57, 0xbc, 0x03, 0x57,+    0x6d, 0x00, 0x57, 0x6b, 0x00, 0x57, 0x4d, 0x00,+    0x57, 0x6b, 0x00, 0xa9, 0x03, 0x4d, 0x00, 0xa9,+    0x03, 0x61, 0x2e, 0x6d, 0x2e, 0x42, 0x71, 0x63,+    0x63, 0x63, 0x64, 0x43, 0xd1, 0x6b, 0x67, 0x43,+    0x6f, 0x2e, 0x64, 0x42, 0x47, 0x79, 0x68, 0x61,+    0x48, 0x50, 0x69, 0x6e, 0x4b, 0x4b, 0x4b, 0x4d,+    0x6b, 0x74, 0x6c, 0x6d, 0x6c, 0x6e, 0x6c, 0x6f,+    0x67, 0x6c, 0x78, 0x6d, 0x62, 0x6d, 0x69, 0x6c,+    0x6d, 0x6f, 0x6c, 0x50, 0x48, 0x70, 0x2e, 0x6d,+    0x2e, 0x50, 0x50, 0x4d, 0x50, 0x52, 0x73, 0x72,+    0x53, 0x76, 0x57, 0x62, 0x56, 0xd1, 0x6d, 0x41,+    0xd1, 0x6d, 0x31, 0x00, 0xe5, 0x65, 0x31, 0x00,+    0x30, 0x00, 0xe5, 0x65, 0x32, 0x00, 0x30, 0x00,+    0xe5, 0x65, 0x33, 0x00, 0x30, 0x00, 0xe5, 0x65,+    0x67, 0x61, 0x6c, 0x4a, 0x04, 0x4c, 0x04, 0x26,+    0x01, 0x53, 0x01, 0x27, 0xa7, 0x37, 0xab, 0x6b,+    0x02, 0x52, 0xab, 0x48, 0x8c, 0xf4, 0x66, 0xca,+    0x8e, 0xc8, 0x8c, 0xd1, 0x6e, 0x32, 0x4e, 0xe5,+    0x53, 0x9c, 0x9f, 0x9c, 0x9f, 0x51, 0x59, 0xd1,+    0x91, 0x87, 0x55, 0x48, 0x59, 0xf6, 0x61, 0x69,+    0x76, 0x85, 0x7f, 0x3f, 0x86, 0xba, 0x87, 0xf8,+    0x88, 0x8f, 0x90, 0x02, 0x6a, 0x1b, 0x6d, 0xd9,+    0x70, 0xde, 0x73, 0x3d, 0x84, 0x6a, 0x91, 0xf1,+    0x99, 0x82, 0x4e, 0x75, 0x53, 0x04, 0x6b, 0x1b,+    0x72, 0x2d, 0x86, 0x1e, 0x9e, 0x50, 0x5d, 0xeb,+    0x6f, 0xcd, 0x85, 0x64, 0x89, 0xc9, 0x62, 0xd8,+    0x81, 0x1f, 0x88, 0xca, 0x5e, 0x17, 0x67, 0x6a,+    0x6d, 0xfc, 0x72, 0xce, 0x90, 0x86, 0x4f, 0xb7,+    0x51, 0xde, 0x52, 0xc4, 0x64, 0xd3, 0x6a, 0x10,+    0x72, 0xe7, 0x76, 0x01, 0x80, 0x06, 0x86, 0x5c,+    0x86, 0xef, 0x8d, 0x32, 0x97, 0x6f, 0x9b, 0xfa,+    0x9d, 0x8c, 0x78, 0x7f, 0x79, 0xa0, 0x7d, 0xc9,+    0x83, 0x04, 0x93, 0x7f, 0x9e, 0xd6, 0x8a, 0xdf,+    0x58, 0x04, 0x5f, 0x60, 0x7c, 0x7e, 0x80, 0x62,+    0x72, 0xca, 0x78, 0xc2, 0x8c, 0xf7, 0x96, 0xd8,+    0x58, 0x62, 0x5c, 0x13, 0x6a, 0xda, 0x6d, 0x0f,+    0x6f, 0x2f, 0x7d, 0x37, 0x7e, 0x4b, 0x96, 0xd2,+    0x52, 0x8b, 0x80, 0xdc, 0x51, 0xcc, 0x51, 0x1c,+    0x7a, 0xbe, 0x7d, 0xf1, 0x83, 0x75, 0x96, 0x80,+    0x8b, 0xcf, 0x62, 0x02, 0x6a, 0xfe, 0x8a, 0x39,+    0x4e, 0xe7, 0x5b, 0x12, 0x60, 0x87, 0x73, 0x70,+    0x75, 0x17, 0x53, 0xfb, 0x78, 0xbf, 0x4f, 0xa9,+    0x5f, 0x0d, 0x4e, 0xcc, 0x6c, 0x78, 0x65, 0x22,+    0x7d, 0xc3, 0x53, 0x5e, 0x58, 0x01, 0x77, 0x49,+    0x84, 0xaa, 0x8a, 0xba, 0x6b, 0xb0, 0x8f, 0x88,+    0x6c, 0xfe, 0x62, 0xe5, 0x82, 0xa0, 0x63, 0x65,+    0x75, 0xae, 0x4e, 0x69, 0x51, 0xc9, 0x51, 0x81,+    0x68, 0xe7, 0x7c, 0x6f, 0x82, 0xd2, 0x8a, 0xcf,+    0x91, 0xf5, 0x52, 0x42, 0x54, 0x73, 0x59, 0xec,+    0x5e, 0xc5, 0x65, 0xfe, 0x6f, 0x2a, 0x79, 0xad,+    0x95, 0x6a, 0x9a, 0x97, 0x9e, 0xce, 0x9e, 0x9b,+    0x52, 0xc6, 0x66, 0x77, 0x6b, 0x62, 0x8f, 0x74,+    0x5e, 0x90, 0x61, 0x00, 0x62, 0x9a, 0x64, 0x23,+    0x6f, 0x49, 0x71, 0x89, 0x74, 0xca, 0x79, 0xf4,+    0x7d, 0x6f, 0x80, 0x26, 0x8f, 0xee, 0x84, 0x23,+    0x90, 0x4a, 0x93, 0x17, 0x52, 0xa3, 0x52, 0xbd,+    0x54, 0xc8, 0x70, 0xc2, 0x88, 0xaa, 0x8a, 0xc9,+    0x5e, 0xf5, 0x5f, 0x7b, 0x63, 0xae, 0x6b, 0x3e,+    0x7c, 0x75, 0x73, 0xe4, 0x4e, 0xf9, 0x56, 0xe7,+    0x5b, 0xba, 0x5d, 0x1c, 0x60, 0xb2, 0x73, 0x69,+    0x74, 0x9a, 0x7f, 0x46, 0x80, 0x34, 0x92, 0xf6,+    0x96, 0x48, 0x97, 0x18, 0x98, 0x8b, 0x4f, 0xae,+    0x79, 0xb4, 0x91, 0xb8, 0x96, 0xe1, 0x60, 0x86,+    0x4e, 0xda, 0x50, 0xee, 0x5b, 0x3f, 0x5c, 0x99,+    0x65, 0x02, 0x6a, 0xce, 0x71, 0x42, 0x76, 0xfc,+    0x84, 0x7c, 0x90, 0x8d, 0x9f, 0x88, 0x66, 0x2e,+    0x96, 0x89, 0x52, 0x7b, 0x67, 0xf3, 0x67, 0x41,+    0x6d, 0x9c, 0x6e, 0x09, 0x74, 0x59, 0x75, 0x6b,+    0x78, 0x10, 0x7d, 0x5e, 0x98, 0x6d, 0x51, 0x2e,+    0x62, 0x78, 0x96, 0x2b, 0x50, 0x19, 0x5d, 0xea,+    0x6d, 0x2a, 0x8f, 0x8b, 0x5f, 0x44, 0x61, 0x17,+    0x68, 0x87, 0x73, 0x86, 0x96, 0x29, 0x52, 0x0f,+    0x54, 0x65, 0x5c, 0x13, 0x66, 0x4e, 0x67, 0xa8,+    0x68, 0xe5, 0x6c, 0x06, 0x74, 0xe2, 0x75, 0x79,+    0x7f, 0xcf, 0x88, 0xe1, 0x88, 0xcc, 0x91, 0xe2,+    0x96, 0x3f, 0x53, 0xba, 0x6e, 0x1d, 0x54, 0xd0,+    0x71, 0x98, 0x74, 0xfa, 0x85, 0xa3, 0x96, 0x57,+    0x9c, 0x9f, 0x9e, 0x97, 0x67, 0xcb, 0x6d, 0xe8,+    0x81, 0xcb, 0x7a, 0x20, 0x7b, 0x92, 0x7c, 0xc0,+    0x72, 0x99, 0x70, 0x58, 0x8b, 0xc0, 0x4e, 0x36,+    0x83, 0x3a, 0x52, 0x07, 0x52, 0xa6, 0x5e, 0xd3,+    0x62, 0xd6, 0x7c, 0x85, 0x5b, 0x1e, 0x6d, 0xb4,+    0x66, 0x3b, 0x8f, 0x4c, 0x88, 0x4d, 0x96, 0x8b,+    0x89, 0xd3, 0x5e, 0x40, 0x51, 0xc0, 0x55, 0x00,+    0x00, 0x00, 0x00, 0x5a, 0x58, 0x00, 0x00, 0x74,+    0x66, 0x00, 0x00, 0x00, 0x00, 0xde, 0x51, 0x2a,+    0x73, 0xca, 0x76, 0x3c, 0x79, 0x5e, 0x79, 0x65,+    0x79, 0x8f, 0x79, 0x56, 0x97, 0xbe, 0x7c, 0xbd,+    0x7f, 0x00, 0x00, 0x12, 0x86, 0x00, 0x00, 0xf8,+    0x8a, 0x00, 0x00, 0x00, 0x00, 0x38, 0x90, 0xfd,+    0x90, 0xef, 0x98, 0xfc, 0x98, 0x28, 0x99, 0xb4,+    0x9d, 0xde, 0x90, 0xb7, 0x96, 0xae, 0x4f, 0xe7,+    0x50, 0x4d, 0x51, 0xc9, 0x52, 0xe4, 0x52, 0x51,+    0x53, 0x9d, 0x55, 0x06, 0x56, 0x68, 0x56, 0x40,+    0x58, 0xa8, 0x58, 0x64, 0x5c, 0x6e, 0x5c, 0x94,+    0x60, 0x68, 0x61, 0x8e, 0x61, 0xf2, 0x61, 0x4f,+    0x65, 0xe2, 0x65, 0x91, 0x66, 0x85, 0x68, 0x77,+    0x6d, 0x1a, 0x6e, 0x22, 0x6f, 0x6e, 0x71, 0x2b,+    0x72, 0x22, 0x74, 0x91, 0x78, 0x3e, 0x79, 0x49,+    0x79, 0x48, 0x79, 0x50, 0x79, 0x56, 0x79, 0x5d,+    0x79, 0x8d, 0x79, 0x8e, 0x79, 0x40, 0x7a, 0x81,+    0x7a, 0xc0, 0x7b, 0xf4, 0x7d, 0x09, 0x7e, 0x41,+    0x7e, 0x72, 0x7f, 0x05, 0x80, 0xed, 0x81, 0x79,+    0x82, 0x79, 0x82, 0x57, 0x84, 0x10, 0x89, 0x96,+    0x89, 0x01, 0x8b, 0x39, 0x8b, 0xd3, 0x8c, 0x08,+    0x8d, 0xb6, 0x8f, 0x38, 0x90, 0xe3, 0x96, 0xff,+    0x97, 0x3b, 0x98, 0x75, 0x60, 0xee, 0x42, 0x18,+    0x82, 0x02, 0x26, 0x4e, 0xb5, 0x51, 0x68, 0x51,+    0x80, 0x4f, 0x45, 0x51, 0x80, 0x51, 0xc7, 0x52,+    0xfa, 0x52, 0x9d, 0x55, 0x55, 0x55, 0x99, 0x55,+    0xe2, 0x55, 0x5a, 0x58, 0xb3, 0x58, 0x44, 0x59,+    0x54, 0x59, 0x62, 0x5a, 0x28, 0x5b, 0xd2, 0x5e,+    0xd9, 0x5e, 0x69, 0x5f, 0xad, 0x5f, 0xd8, 0x60,+    0x4e, 0x61, 0x08, 0x61, 0x8e, 0x61, 0x60, 0x61,+    0xf2, 0x61, 0x34, 0x62, 0xc4, 0x63, 0x1c, 0x64,+    0x52, 0x64, 0x56, 0x65, 0x74, 0x66, 0x17, 0x67,+    0x1b, 0x67, 0x56, 0x67, 0x79, 0x6b, 0xba, 0x6b,+    0x41, 0x6d, 0xdb, 0x6e, 0xcb, 0x6e, 0x22, 0x6f,+    0x1e, 0x70, 0x6e, 0x71, 0xa7, 0x77, 0x35, 0x72,+    0xaf, 0x72, 0x2a, 0x73, 0x71, 0x74, 0x06, 0x75,+    0x3b, 0x75, 0x1d, 0x76, 0x1f, 0x76, 0xca, 0x76,+    0xdb, 0x76, 0xf4, 0x76, 0x4a, 0x77, 0x40, 0x77,+    0xcc, 0x78, 0xb1, 0x7a, 0xc0, 0x7b, 0x7b, 0x7c,+    0x5b, 0x7d, 0xf4, 0x7d, 0x3e, 0x7f, 0x05, 0x80,+    0x52, 0x83, 0xef, 0x83, 0x79, 0x87, 0x41, 0x89,+    0x86, 0x89, 0x96, 0x89, 0xbf, 0x8a, 0xf8, 0x8a,+    0xcb, 0x8a, 0x01, 0x8b, 0xfe, 0x8a, 0xed, 0x8a,+    0x39, 0x8b, 0x8a, 0x8b, 0x08, 0x8d, 0x38, 0x8f,+    0x72, 0x90, 0x99, 0x91, 0x76, 0x92, 0x7c, 0x96,+    0xe3, 0x96, 0x56, 0x97, 0xdb, 0x97, 0xff, 0x97,+    0x0b, 0x98, 0x3b, 0x98, 0x12, 0x9b, 0x9c, 0x9f,+    0x4a, 0x28, 0x44, 0x28, 0xd5, 0x33, 0x9d, 0x3b,+    0x18, 0x40, 0x39, 0x40, 0x49, 0x52, 0xd0, 0x5c,+    0xd3, 0x7e, 0x43, 0x9f, 0x8e, 0x9f, 0x2a, 0xa0,+    0x02, 0x66, 0x66, 0x66, 0x69, 0x66, 0x6c, 0x66,+    0x66, 0x69, 0x66, 0x66, 0x6c, 0x7f, 0x01, 0x74,+    0x73, 0x00, 0x74, 0x65, 0x05, 0x0f, 0x11, 0x0f,+    0x00, 0x0f, 0x06, 0x19, 0x11, 0x0f, 0x08, 0xd9,+    0x05, 0xb4, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf2,+    0x05, 0xb7, 0x05, 0xd0, 0x05, 0x12, 0x00, 0x03,+    0x04, 0x0b, 0x0c, 0x0d, 0x18, 0x1a, 0xe9, 0x05,+    0xc1, 0x05, 0xe9, 0x05, 0xc2, 0x05, 0x49, 0xfb,+    0xc1, 0x05, 0x49, 0xfb, 0xc2, 0x05, 0xd0, 0x05,+    0xb7, 0x05, 0xd0, 0x05, 0xb8, 0x05, 0xd0, 0x05,+    0xbc, 0x05, 0xd8, 0x05, 0xbc, 0x05, 0xde, 0x05,+    0xbc, 0x05, 0xe0, 0x05, 0xbc, 0x05, 0xe3, 0x05,+    0xbc, 0x05, 0xb9, 0x05, 0x2d, 0x03, 0x2e, 0x03,+    0x2f, 0x03, 0x30, 0x03, 0x31, 0x03, 0x1c, 0x00,+    0x18, 0x06, 0x22, 0x06, 0x2b, 0x06, 0xd0, 0x05,+    0xdc, 0x05, 0x71, 0x06, 0x00, 0x00, 0x0a, 0x0a,+    0x0a, 0x0a, 0x0d, 0x0d, 0x0d, 0x0d, 0x0f, 0x0f,+    0x0f, 0x0f, 0x09, 0x09, 0x09, 0x09, 0x0e, 0x0e,+    0x0e, 0x0e, 0x08, 0x08, 0x08, 0x08, 0x33, 0x33,+    0x33, 0x33, 0x35, 0x35, 0x35, 0x35, 0x13, 0x13,+    0x13, 0x13, 0x12, 0x12, 0x12, 0x12, 0x15, 0x15,+    0x15, 0x15, 0x16, 0x16, 0x16, 0x16, 0x1c, 0x1c,+    0x1b, 0x1b, 0x1d, 0x1d, 0x17, 0x17, 0x27, 0x27,+    0x20, 0x20, 0x38, 0x38, 0x38, 0x38, 0x3e, 0x3e,+    0x3e, 0x3e, 0x42, 0x42, 0x42, 0x42, 0x40, 0x40,+    0x40, 0x40, 0x49, 0x49, 0x4a, 0x4a, 0x4a, 0x4a,+    0x4f, 0x4f, 0x50, 0x50, 0x50, 0x50, 0x4d, 0x4d,+    0x4d, 0x4d, 0x61, 0x61, 0x62, 0x62, 0x49, 0x06,+    0x64, 0x64, 0x64, 0x64, 0x7e, 0x7e, 0x7d, 0x7d,+    0x7f, 0x7f, 0x2e, 0x82, 0x82, 0x7c, 0x7c, 0x80,+    0x80, 0x87, 0x87, 0x87, 0x87, 0x00, 0x00, 0x26,+    0x06, 0x00, 0x01, 0x00, 0x01, 0x00, 0xaf, 0x00,+    0xaf, 0x00, 0x22, 0x00, 0x22, 0x00, 0xa1, 0x00,+    0xa1, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa2, 0x00,+    0xa2, 0x00, 0xaa, 0x00, 0xaa, 0x00, 0xaa, 0x00,+    0x23, 0x00, 0x23, 0x00, 0x23, 0xcc, 0x06, 0x00,+    0x00, 0x00, 0x00, 0x26, 0x06, 0x00, 0x06, 0x00,+    0x07, 0x00, 0x1f, 0x00, 0x23, 0x00, 0x24, 0x02,+    0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x1f, 0x02,+    0x23, 0x02, 0x24, 0x04, 0x06, 0x04, 0x07, 0x04,+    0x08, 0x04, 0x1f, 0x04, 0x23, 0x04, 0x24, 0x05,+    0x06, 0x05, 0x1f, 0x05, 0x23, 0x05, 0x24, 0x06,+    0x07, 0x06, 0x1f, 0x07, 0x06, 0x07, 0x1f, 0x08,+    0x06, 0x08, 0x07, 0x08, 0x1f, 0x0d, 0x06, 0x0d,+    0x07, 0x0d, 0x08, 0x0d, 0x1f, 0x0f, 0x07, 0x0f,+    0x1f, 0x10, 0x06, 0x10, 0x07, 0x10, 0x08, 0x10,+    0x1f, 0x11, 0x07, 0x11, 0x1f, 0x12, 0x1f, 0x13,+    0x06, 0x13, 0x1f, 0x14, 0x06, 0x14, 0x1f, 0x1b,+    0x06, 0x1b, 0x07, 0x1b, 0x08, 0x1b, 0x1f, 0x1b,+    0x23, 0x1b, 0x24, 0x1c, 0x07, 0x1c, 0x1f, 0x1c,+    0x23, 0x1c, 0x24, 0x1d, 0x01, 0x1d, 0x06, 0x1d,+    0x07, 0x1d, 0x08, 0x1d, 0x1e, 0x1d, 0x1f, 0x1d,+    0x23, 0x1d, 0x24, 0x1e, 0x06, 0x1e, 0x07, 0x1e,+    0x08, 0x1e, 0x1f, 0x1e, 0x23, 0x1e, 0x24, 0x1f,+    0x06, 0x1f, 0x07, 0x1f, 0x08, 0x1f, 0x1f, 0x1f,+    0x23, 0x1f, 0x24, 0x20, 0x06, 0x20, 0x07, 0x20,+    0x08, 0x20, 0x1f, 0x20, 0x23, 0x20, 0x24, 0x21,+    0x06, 0x21, 0x1f, 0x21, 0x23, 0x21, 0x24, 0x24,+    0x06, 0x24, 0x07, 0x24, 0x08, 0x24, 0x1f, 0x24,+    0x23, 0x24, 0x24, 0x0a, 0x4a, 0x0b, 0x4a, 0x23,+    0x4a, 0x20, 0x00, 0x4c, 0x06, 0x51, 0x06, 0x51,+    0x06, 0xff, 0x00, 0x1f, 0x26, 0x06, 0x00, 0x0b,+    0x00, 0x0c, 0x00, 0x1f, 0x00, 0x20, 0x00, 0x23,+    0x00, 0x24, 0x02, 0x0b, 0x02, 0x0c, 0x02, 0x1f,+    0x02, 0x20, 0x02, 0x23, 0x02, 0x24, 0x04, 0x0b,+    0x04, 0x0c, 0x04, 0x1f, 0x26, 0x06, 0x04, 0x20,+    0x04, 0x23, 0x04, 0x24, 0x05, 0x0b, 0x05, 0x0c,+    0x05, 0x1f, 0x05, 0x20, 0x05, 0x23, 0x05, 0x24,+    0x1b, 0x23, 0x1b, 0x24, 0x1c, 0x23, 0x1c, 0x24,+    0x1d, 0x01, 0x1d, 0x1e, 0x1d, 0x1f, 0x1d, 0x23,+    0x1d, 0x24, 0x1e, 0x1f, 0x1e, 0x23, 0x1e, 0x24,+    0x1f, 0x01, 0x1f, 0x1f, 0x20, 0x0b, 0x20, 0x0c,+    0x20, 0x1f, 0x20, 0x20, 0x20, 0x23, 0x20, 0x24,+    0x23, 0x4a, 0x24, 0x0b, 0x24, 0x0c, 0x24, 0x1f,+    0x24, 0x20, 0x24, 0x23, 0x24, 0x24, 0x00, 0x06,+    0x00, 0x07, 0x00, 0x08, 0x00, 0x1f, 0x00, 0x21,+    0x02, 0x06, 0x02, 0x07, 0x02, 0x08, 0x02, 0x1f,+    0x02, 0x21, 0x04, 0x06, 0x04, 0x07, 0x04, 0x08,+    0x04, 0x1f, 0x04, 0x21, 0x05, 0x1f, 0x06, 0x07,+    0x06, 0x1f, 0x07, 0x06, 0x07, 0x1f, 0x08, 0x06,+    0x08, 0x1f, 0x0d, 0x06, 0x0d, 0x07, 0x0d, 0x08,+    0x0d, 0x1f, 0x0f, 0x07, 0x0f, 0x08, 0x0f, 0x1f,+    0x10, 0x06, 0x10, 0x07, 0x10, 0x08, 0x10, 0x1f,+    0x11, 0x07, 0x12, 0x1f, 0x13, 0x06, 0x13, 0x1f,+    0x14, 0x06, 0x14, 0x1f, 0x1b, 0x06, 0x1b, 0x07,+    0x1b, 0x08, 0x1b, 0x1f, 0x1c, 0x07, 0x1c, 0x1f,+    0x1d, 0x06, 0x1d, 0x07, 0x1d, 0x08, 0x1d, 0x1e,+    0x1d, 0x1f, 0x1e, 0x06, 0x1e, 0x07, 0x1e, 0x08,+    0x1e, 0x1f, 0x1e, 0x21, 0x1f, 0x06, 0x1f, 0x07,+    0x1f, 0x08, 0x1f, 0x1f, 0x20, 0x06, 0x20, 0x07,+    0x20, 0x08, 0x20, 0x1f, 0x20, 0x21, 0x21, 0x06,+    0x21, 0x1f, 0x21, 0x4a, 0x24, 0x06, 0x24, 0x07,+    0x24, 0x08, 0x24, 0x1f, 0x24, 0x21, 0x00, 0x1f,+    0x00, 0x21, 0x02, 0x1f, 0x02, 0x21, 0x04, 0x1f,+    0x04, 0x21, 0x05, 0x1f, 0x05, 0x21, 0x0d, 0x1f,+    0x0d, 0x21, 0x0e, 0x1f, 0x0e, 0x21, 0x1d, 0x1e,+    0x1d, 0x1f, 0x1e, 0x1f, 0x20, 0x1f, 0x20, 0x21,+    0x24, 0x1f, 0x24, 0x21, 0x40, 0x06, 0x4e, 0x06,+    0x51, 0x06, 0x27, 0x06, 0x10, 0x22, 0x10, 0x23,+    0x12, 0x22, 0x12, 0x23, 0x13, 0x22, 0x13, 0x23,+    0x0c, 0x22, 0x0c, 0x23, 0x0d, 0x22, 0x0d, 0x23,+    0x06, 0x22, 0x06, 0x23, 0x05, 0x22, 0x05, 0x23,+    0x07, 0x22, 0x07, 0x23, 0x0e, 0x22, 0x0e, 0x23,+    0x0f, 0x22, 0x0f, 0x23, 0x0d, 0x05, 0x0d, 0x06,+    0x0d, 0x07, 0x0d, 0x1e, 0x0d, 0x0a, 0x0c, 0x0a,+    0x0e, 0x0a, 0x0f, 0x0a, 0x10, 0x22, 0x10, 0x23,+    0x12, 0x22, 0x12, 0x23, 0x13, 0x22, 0x13, 0x23,+    0x0c, 0x22, 0x0c, 0x23, 0x0d, 0x22, 0x0d, 0x23,+    0x06, 0x22, 0x06, 0x23, 0x05, 0x22, 0x05, 0x23,+    0x07, 0x22, 0x07, 0x23, 0x0e, 0x22, 0x0e, 0x23,+    0x0f, 0x22, 0x0f, 0x23, 0x0d, 0x05, 0x0d, 0x06,+    0x0d, 0x07, 0x0d, 0x1e, 0x0d, 0x0a, 0x0c, 0x0a,+    0x0e, 0x0a, 0x0f, 0x0a, 0x0d, 0x05, 0x0d, 0x06,+    0x0d, 0x07, 0x0d, 0x1e, 0x0c, 0x20, 0x0d, 0x20,+    0x10, 0x1e, 0x0c, 0x05, 0x0c, 0x06, 0x0c, 0x07,+    0x0d, 0x05, 0x0d, 0x06, 0x0d, 0x07, 0x10, 0x1e,+    0x11, 0x1e, 0x00, 0x24, 0x00, 0x24, 0x2a, 0x06,+    0x00, 0x02, 0x1b, 0x00, 0x03, 0x02, 0x00, 0x03,+    0x02, 0x00, 0x03, 0x1b, 0x00, 0x04, 0x1b, 0x00,+    0x1b, 0x02, 0x00, 0x1b, 0x03, 0x00, 0x1b, 0x04,+    0x02, 0x1b, 0x03, 0x02, 0x1b, 0x03, 0x03, 0x1b,+    0x20, 0x03, 0x1b, 0x1f, 0x09, 0x03, 0x02, 0x09,+    0x02, 0x03, 0x09, 0x02, 0x1f, 0x09, 0x1b, 0x03,+    0x09, 0x1b, 0x03, 0x09, 0x1b, 0x02, 0x09, 0x1b,+    0x1b, 0x09, 0x1b, 0x1b, 0x0b, 0x03, 0x03, 0x0b,+    0x03, 0x03, 0x0b, 0x1b, 0x1b, 0x0a, 0x03, 0x1b,+    0x0a, 0x03, 0x1b, 0x0a, 0x02, 0x20, 0x0a, 0x1b,+    0x04, 0x0a, 0x1b, 0x04, 0x0a, 0x1b, 0x1b, 0x0a,+    0x1b, 0x1b, 0x0c, 0x03, 0x1f, 0x0c, 0x04, 0x1b,+    0x0c, 0x04, 0x1b, 0x0d, 0x1b, 0x03, 0x0d, 0x1b,+    0x03, 0x0d, 0x1b, 0x1b, 0x0d, 0x1b, 0x20, 0x0f,+    0x02, 0x1b, 0x0f, 0x1b, 0x1b, 0x0f, 0x1b, 0x1b,+    0x0f, 0x1b, 0x1f, 0x10, 0x1b, 0x1b, 0x10, 0x1b,+    0x20, 0x10, 0x1b, 0x1f, 0x17, 0x04, 0x1b, 0x17,+    0x04, 0x1b, 0x18, 0x1b, 0x03, 0x18, 0x1b, 0x1b,+    0x1a, 0x03, 0x1b, 0x1a, 0x03, 0x20, 0x1a, 0x03,+    0x1f, 0x1a, 0x02, 0x02, 0x1a, 0x02, 0x02, 0x1a,+    0x04, 0x1b, 0x1a, 0x04, 0x1b, 0x1a, 0x1b, 0x03,+    0x1a, 0x1b, 0x03, 0x1b, 0x03, 0x02, 0x1b, 0x03,+    0x1b, 0x1b, 0x03, 0x20, 0x1b, 0x02, 0x03, 0x1b,+    0x02, 0x1b, 0x1b, 0x04, 0x02, 0x1b, 0x04, 0x1b,+    0x28, 0x06, 0x1d, 0x04, 0x06, 0x1f, 0x1d, 0x04,+    0x1f, 0x1d, 0x1d, 0x1e, 0x05, 0x1d, 0x1e, 0x05,+    0x21, 0x1e, 0x04, 0x1d, 0x1e, 0x04, 0x1d, 0x1e,+    0x04, 0x21, 0x1e, 0x1d, 0x22, 0x1e, 0x1d, 0x21,+    0x22, 0x1d, 0x1d, 0x22, 0x1d, 0x1d, 0x00, 0x06,+    0x22, 0x02, 0x04, 0x22, 0x02, 0x04, 0x21, 0x02,+    0x06, 0x22, 0x02, 0x06, 0x21, 0x02, 0x1d, 0x22,+    0x02, 0x1d, 0x21, 0x04, 0x1d, 0x22, 0x04, 0x05,+    0x21, 0x04, 0x1d, 0x21, 0x0b, 0x06, 0x21, 0x0d,+    0x05, 0x22, 0x0c, 0x05, 0x22, 0x0e, 0x05, 0x22,+    0x1c, 0x04, 0x22, 0x1c, 0x1d, 0x22, 0x22, 0x05,+    0x22, 0x22, 0x04, 0x22, 0x22, 0x1d, 0x22, 0x1d,+    0x1d, 0x22, 0x1a, 0x1d, 0x22, 0x1e, 0x05, 0x22,+    0x1a, 0x1d, 0x05, 0x1c, 0x05, 0x1d, 0x11, 0x1d,+    0x22, 0x1b, 0x1d, 0x22, 0x1e, 0x04, 0x05, 0x1d,+    0x06, 0x22, 0x1c, 0x04, 0x1d, 0x1b, 0x1d, 0x1d,+    0x1c, 0x04, 0x1d, 0x1e, 0x04, 0x05, 0x04, 0x05,+    0x22, 0x05, 0x04, 0x22, 0x1d, 0x04, 0x22, 0x19,+    0x1d, 0x22, 0x00, 0x05, 0x22, 0x1b, 0x1d, 0x1d,+    0x11, 0x04, 0x1d, 0x0d, 0x1d, 0x1d, 0x0b, 0x06,+    0x22, 0x1e, 0x04, 0x22, 0x35, 0x06, 0x00, 0x0f,+    0x9d, 0x0d, 0x0f, 0x9d, 0x27, 0x06, 0x00, 0x1d,+    0x1d, 0x20, 0x00, 0x1c, 0x01, 0x0a, 0x1e, 0x06,+    0x1e, 0x08, 0x0e, 0x1d, 0x12, 0x1e, 0x0a, 0x0c,+    0x21, 0x1d, 0x12, 0x1d, 0x23, 0x20, 0x21, 0x0c,+    0x1d, 0x1e, 0x35, 0x06, 0x00, 0x0f, 0x14, 0x27,+    0x06, 0x0e, 0x1d, 0x22, 0xff, 0x00, 0x1d, 0x1d,+    0x20, 0xff, 0x12, 0x1d, 0x23, 0x20, 0xff, 0x21,+    0x0c, 0x1d, 0x1e, 0x27, 0x06, 0x05, 0x1d, 0xff,+    0x05, 0x1d, 0x00, 0x1d, 0x20, 0x27, 0x06, 0x0a,+    0xa5, 0x00, 0x1d, 0x2c, 0x00, 0x01, 0x30, 0x02,+    0x30, 0x3a, 0x00, 0x3b, 0x00, 0x21, 0x00, 0x3f,+    0x00, 0x16, 0x30, 0x17, 0x30, 0x26, 0x20, 0x13,+    0x20, 0x12, 0x01, 0x00, 0x5f, 0x5f, 0x28, 0x29,+    0x7b, 0x7d, 0x08, 0x30, 0x0c, 0x0d, 0x08, 0x09,+    0x02, 0x03, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07,+    0x5b, 0x00, 0x5d, 0x00, 0x3e, 0x20, 0x3e, 0x20,+    0x3e, 0x20, 0x3e, 0x20, 0x5f, 0x00, 0x5f, 0x00,+    0x5f, 0x00, 0x2c, 0x00, 0x01, 0x30, 0x2e, 0x00,+    0x00, 0x00, 0x3b, 0x00, 0x3a, 0x00, 0x3f, 0x00,+    0x21, 0x00, 0x14, 0x20, 0x28, 0x00, 0x29, 0x00,+    0x7b, 0x00, 0x7d, 0x00, 0x14, 0x30, 0x15, 0x30,+    0x23, 0x26, 0x2a, 0x2b, 0x2d, 0x3c, 0x3e, 0x3d,+    0x00, 0x5c, 0x24, 0x25, 0x40, 0x40, 0x06, 0xff,+    0x0b, 0x00, 0x0b, 0xff, 0x0c, 0x20, 0x00, 0x4d,+    0x06, 0x40, 0x06, 0xff, 0x0e, 0x00, 0x0e, 0xff,+    0x0f, 0x00, 0x0f, 0xff, 0x10, 0x00, 0x10, 0xff,+    0x11, 0x00, 0x11, 0xff, 0x12, 0x00, 0x12, 0x21,+    0x06, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,+    0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x06, 0x06,+    0x07, 0x07, 0x07, 0x07, 0x08, 0x08, 0x09, 0x09,+    0x09, 0x09, 0x0a, 0x0a, 0x0a, 0x0a, 0x0b, 0x0b,+    0x0b, 0x0b, 0x0c, 0x0c, 0x0c, 0x0c, 0x0d, 0x0d,+    0x0d, 0x0d, 0x0e, 0x0e, 0x0f, 0x0f, 0x10, 0x10,+    0x11, 0x11, 0x12, 0x12, 0x12, 0x12, 0x13, 0x13,+    0x13, 0x13, 0x14, 0x14, 0x14, 0x14, 0x15, 0x15,+    0x15, 0x15, 0x16, 0x16, 0x16, 0x16, 0x17, 0x17,+    0x17, 0x17, 0x18, 0x18, 0x18, 0x18, 0x19, 0x19,+    0x19, 0x19, 0x20, 0x20, 0x20, 0x20, 0x21, 0x21,+    0x21, 0x21, 0x22, 0x22, 0x22, 0x22, 0x23, 0x23,+    0x23, 0x23, 0x24, 0x24, 0x24, 0x24, 0x25, 0x25,+    0x25, 0x25, 0x26, 0x26, 0x26, 0x26, 0x27, 0x27,+    0x28, 0x28, 0x29, 0x29, 0x29, 0x29, 0x22, 0x06,+    0x22, 0x00, 0x22, 0x00, 0x22, 0x01, 0x22, 0x01,+    0x22, 0x03, 0x22, 0x03, 0x22, 0x05, 0x22, 0x05,+    0x21, 0x00, 0x85, 0x29, 0x01, 0x30, 0x01, 0x0b,+    0x0c, 0x00, 0xfa, 0xf1, 0xa0, 0xa2, 0xa4, 0xa6,+    0xa8, 0xe2, 0xe4, 0xe6, 0xc2, 0xfb, 0xa1, 0xa3,+    0xa5, 0xa7, 0xa9, 0xaa, 0xac, 0xae, 0xb0, 0xb2,+    0xb4, 0xb6, 0xb8, 0xba, 0xbc, 0xbe, 0xc0, 0xc3,+    0xc5, 0xc7, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce,+    0xd1, 0xd4, 0xd7, 0xda, 0xdd, 0xde, 0xdf, 0xe0,+    0xe1, 0xe3, 0xe5, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,+    0xec, 0xee, 0xf2, 0x98, 0x99, 0x31, 0x31, 0x4f,+    0x31, 0x55, 0x31, 0x5b, 0x31, 0x61, 0x31, 0xa2,+    0x00, 0xa3, 0x00, 0xac, 0x00, 0xaf, 0x00, 0xa6,+    0x00, 0xa5, 0x00, 0xa9, 0x20, 0x00, 0x00, 0x02,+    0x25, 0x90, 0x21, 0x91, 0x21, 0x92, 0x21, 0x93,+    0x21, 0xa0, 0x25, 0xcb, 0x25, 0x99, 0x10, 0xba,+    0x10, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x10, 0xba,+    0x10, 0x05, 0x05, 0xa5, 0x10, 0xba, 0x10, 0x05,+    0x31, 0x11, 0x27, 0x11, 0x32, 0x11, 0x27, 0x11,+    0x55, 0x47, 0x13, 0x3e, 0x13, 0x47, 0x13, 0x57,+    0x13, 0x55, 0xb9, 0x14, 0xba, 0x14, 0xb9, 0x14,+    0xb0, 0x14, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x14,+    0xbd, 0x14, 0x55, 0x50, 0xb8, 0x15, 0xaf, 0x15,+    0xb9, 0x15, 0xaf, 0x15, 0x55, 0x35, 0x19, 0x30,+    0x19, 0x05, 0x57, 0xd1, 0x65, 0xd1, 0x58, 0xd1,+    0x65, 0xd1, 0x5f, 0xd1, 0x6e, 0xd1, 0x5f, 0xd1,+    0x6f, 0xd1, 0x5f, 0xd1, 0x70, 0xd1, 0x5f, 0xd1,+    0x71, 0xd1, 0x5f, 0xd1, 0x72, 0xd1, 0x55, 0x55,+    0x55, 0x05, 0xb9, 0xd1, 0x65, 0xd1, 0xba, 0xd1,+    0x65, 0xd1, 0xbb, 0xd1, 0x6e, 0xd1, 0xbc, 0xd1,+    0x6e, 0xd1, 0xbb, 0xd1, 0x6f, 0xd1, 0xbc, 0xd1,+    0x6f, 0xd1, 0x55, 0x55, 0x55, 0x41, 0x00, 0x61,+    0x00, 0x41, 0x00, 0x61, 0x00, 0x69, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x41, 0x00, 0x43, 0x44, 0x00,+    0x00, 0x47, 0x00, 0x00, 0x4a, 0x4b, 0x00, 0x00,+    0x4e, 0x4f, 0x50, 0x51, 0x00, 0x53, 0x54, 0x55,+    0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63,+    0x64, 0x00, 0x66, 0x68, 0x00, 0x70, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x41, 0x42, 0x00, 0x44, 0x45,+    0x46, 0x47, 0x4a, 0x00, 0x53, 0x00, 0x61, 0x00,+    0x41, 0x42, 0x00, 0x44, 0x45, 0x46, 0x47, 0x00,+    0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x00, 0x4f, 0x53,+    0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x41, 0x00, 0x61, 0x00, 0x41,+    0x00, 0x61, 0x00, 0x31, 0x01, 0x37, 0x02, 0x91,+    0x03, 0xa3, 0x03, 0xb1, 0x03, 0xd1, 0x03, 0x24,+    0x00, 0x1f, 0x04, 0x20, 0x05, 0x91, 0x03, 0xa3,+    0x03, 0xb1, 0x03, 0xd1, 0x03, 0x24, 0x00, 0x1f,+    0x04, 0x20, 0x05, 0x91, 0x03, 0xa3, 0x03, 0xb1,+    0x03, 0xd1, 0x03, 0x24, 0x00, 0x1f, 0x04, 0x20,+    0x05, 0x91, 0x03, 0xa3, 0x03, 0xb1, 0x03, 0xd1,+    0x03, 0x24, 0x00, 0x1f, 0x04, 0x20, 0x05, 0x91,+    0x03, 0xa3, 0x03, 0xb1, 0x03, 0xd1, 0x03, 0x24,+    0x00, 0x1f, 0x04, 0x20, 0x05, 0x0b, 0x0c, 0x30,+    0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30,+    0x00, 0x27, 0x06, 0x00, 0x01, 0x05, 0x08, 0x2a,+    0x06, 0x1e, 0x08, 0x03, 0x0d, 0x20, 0x19, 0x1a,+    0x1b, 0x1c, 0x09, 0x0f, 0x17, 0x0b, 0x18, 0x07,+    0x0a, 0x00, 0x01, 0x04, 0x06, 0x0c, 0x0e, 0x10,+    0x44, 0x90, 0x77, 0x45, 0x28, 0x06, 0x2c, 0x06,+    0x00, 0x00, 0x47, 0x06, 0x33, 0x06, 0x17, 0x10,+    0x11, 0x12, 0x13, 0x00, 0x06, 0x0e, 0x02, 0x0f,+    0x34, 0x06, 0x2a, 0x06, 0x2b, 0x06, 0x2e, 0x06,+    0x00, 0x00, 0x36, 0x06, 0x00, 0x00, 0x3a, 0x06,+    0x2d, 0x06, 0x00, 0x00, 0x4a, 0x06, 0x00, 0x00,+    0x44, 0x06, 0x00, 0x00, 0x46, 0x06, 0x33, 0x06,+    0x39, 0x06, 0x00, 0x00, 0x35, 0x06, 0x42, 0x06,+    0x00, 0x00, 0x34, 0x06, 0x00, 0x00, 0x00, 0x00,+    0x2e, 0x06, 0x00, 0x00, 0x36, 0x06, 0x00, 0x00,+    0x3a, 0x06, 0x00, 0x00, 0xba, 0x06, 0x00, 0x00,+    0x6f, 0x06, 0x00, 0x00, 0x28, 0x06, 0x2c, 0x06,+    0x00, 0x00, 0x47, 0x06, 0x00, 0x00, 0x00, 0x00,+    0x2d, 0x06, 0x37, 0x06, 0x4a, 0x06, 0x43, 0x06,+    0x00, 0x00, 0x45, 0x06, 0x46, 0x06, 0x33, 0x06,+    0x39, 0x06, 0x41, 0x06, 0x35, 0x06, 0x42, 0x06,+    0x00, 0x00, 0x34, 0x06, 0x2a, 0x06, 0x2b, 0x06,+    0x2e, 0x06, 0x00, 0x00, 0x36, 0x06, 0x38, 0x06,+    0x3a, 0x06, 0x6e, 0x06, 0x00, 0x00, 0xa1, 0x06,+    0x27, 0x06, 0x00, 0x01, 0x05, 0x08, 0x20, 0x21,+    0x0b, 0x06, 0x10, 0x23, 0x2a, 0x06, 0x1a, 0x1b,+    0x1c, 0x09, 0x0f, 0x17, 0x0b, 0x18, 0x07, 0x0a,+    0x00, 0x01, 0x04, 0x06, 0x0c, 0x0e, 0x10, 0x28,+    0x06, 0x2c, 0x06, 0x2f, 0x06, 0x00, 0x00, 0x48,+    0x06, 0x32, 0x06, 0x2d, 0x06, 0x37, 0x06, 0x4a,+    0x06, 0x2a, 0x06, 0x1a, 0x1b, 0x1c, 0x09, 0x0f,+    0x17, 0x0b, 0x18, 0x07, 0x0a, 0x00, 0x01, 0x04,+    0x06, 0x0c, 0x0e, 0x10, 0x30, 0x2e, 0x30, 0x00,+    0x2c, 0x00, 0x28, 0x00, 0x41, 0x00, 0x29, 0x00,+    0x14, 0x30, 0x53, 0x00, 0x15, 0x30, 0x43, 0x52,+    0x43, 0x44, 0x57, 0x5a, 0x41, 0x00, 0x48, 0x56,+    0x4d, 0x56, 0x53, 0x44, 0x53, 0x53, 0x50, 0x50,+    0x56, 0x57, 0x43, 0x4d, 0x43, 0x4d, 0x44, 0x4d,+    0x52, 0x44, 0x4a, 0x4b, 0x30, 0x30, 0x00, 0x68,+    0x68, 0x4b, 0x62, 0x57, 0x5b, 0xcc, 0x53, 0xc7,+    0x30, 0x8c, 0x4e, 0x1a, 0x59, 0xe3, 0x89, 0x29,+    0x59, 0xa4, 0x4e, 0x20, 0x66, 0x21, 0x71, 0x99,+    0x65, 0x4d, 0x52, 0x8c, 0x5f, 0x8d, 0x51, 0xb0,+    0x65, 0x1d, 0x52, 0x42, 0x7d, 0x1f, 0x75, 0xa9,+    0x8c, 0xf0, 0x58, 0x39, 0x54, 0x14, 0x6f, 0x95,+    0x62, 0x55, 0x63, 0x00, 0x4e, 0x09, 0x4e, 0x4a,+    0x90, 0xe6, 0x5d, 0x2d, 0x4e, 0xf3, 0x53, 0x07,+    0x63, 0x70, 0x8d, 0x53, 0x62, 0x81, 0x79, 0x7a,+    0x7a, 0x08, 0x54, 0x80, 0x6e, 0x09, 0x67, 0x08,+    0x67, 0x33, 0x75, 0x72, 0x52, 0xb6, 0x55, 0x4d,+    0x91, 0x14, 0x30, 0x15, 0x30, 0x2c, 0x67, 0x09,+    0x4e, 0x8c, 0x4e, 0x89, 0x5b, 0xb9, 0x70, 0x53,+    0x62, 0xd7, 0x76, 0xdd, 0x52, 0x57, 0x65, 0x97,+    0x5f, 0xef, 0x53, 0x30, 0x00, 0x38, 0x4e, 0x05,+    0x00, 0x09, 0x22, 0x01, 0x60, 0x4f, 0xae, 0x4f,+    0xbb, 0x4f, 0x02, 0x50, 0x7a, 0x50, 0x99, 0x50,+    0xe7, 0x50, 0xcf, 0x50, 0x9e, 0x34, 0x3a, 0x06,+    0x4d, 0x51, 0x54, 0x51, 0x64, 0x51, 0x77, 0x51,+    0x1c, 0x05, 0xb9, 0x34, 0x67, 0x51, 0x8d, 0x51,+    0x4b, 0x05, 0x97, 0x51, 0xa4, 0x51, 0xcc, 0x4e,+    0xac, 0x51, 0xb5, 0x51, 0xdf, 0x91, 0xf5, 0x51,+    0x03, 0x52, 0xdf, 0x34, 0x3b, 0x52, 0x46, 0x52,+    0x72, 0x52, 0x77, 0x52, 0x15, 0x35, 0x02, 0x00,+    0x20, 0x80, 0x80, 0x00, 0x08, 0x00, 0x00, 0xc7,+    0x52, 0x00, 0x02, 0x1d, 0x33, 0x3e, 0x3f, 0x50,+    0x82, 0x8a, 0x93, 0xac, 0xb6, 0xb8, 0xb8, 0xb8,+    0x2c, 0x0a, 0x70, 0x70, 0xca, 0x53, 0xdf, 0x53,+    0x63, 0x0b, 0xeb, 0x53, 0xf1, 0x53, 0x06, 0x54,+    0x9e, 0x54, 0x38, 0x54, 0x48, 0x54, 0x68, 0x54,+    0xa2, 0x54, 0xf6, 0x54, 0x10, 0x55, 0x53, 0x55,+    0x63, 0x55, 0x84, 0x55, 0x84, 0x55, 0x99, 0x55,+    0xab, 0x55, 0xb3, 0x55, 0xc2, 0x55, 0x16, 0x57,+    0x06, 0x56, 0x17, 0x57, 0x51, 0x56, 0x74, 0x56,+    0x07, 0x52, 0xee, 0x58, 0xce, 0x57, 0xf4, 0x57,+    0x0d, 0x58, 0x8b, 0x57, 0x32, 0x58, 0x31, 0x58,+    0xac, 0x58, 0xe4, 0x14, 0xf2, 0x58, 0xf7, 0x58,+    0x06, 0x59, 0x1a, 0x59, 0x22, 0x59, 0x62, 0x59,+    0xa8, 0x16, 0xea, 0x16, 0xec, 0x59, 0x1b, 0x5a,+    0x27, 0x5a, 0xd8, 0x59, 0x66, 0x5a, 0xee, 0x36,+    0xfc, 0x36, 0x08, 0x5b, 0x3e, 0x5b, 0x3e, 0x5b,+    0xc8, 0x19, 0xc3, 0x5b, 0xd8, 0x5b, 0xe7, 0x5b,+    0xf3, 0x5b, 0x18, 0x1b, 0xff, 0x5b, 0x06, 0x5c,+    0x53, 0x5f, 0x22, 0x5c, 0x81, 0x37, 0x60, 0x5c,+    0x6e, 0x5c, 0xc0, 0x5c, 0x8d, 0x5c, 0xe4, 0x1d,+    0x43, 0x5d, 0xe6, 0x1d, 0x6e, 0x5d, 0x6b, 0x5d,+    0x7c, 0x5d, 0xe1, 0x5d, 0xe2, 0x5d, 0x2f, 0x38,+    0xfd, 0x5d, 0x28, 0x5e, 0x3d, 0x5e, 0x69, 0x5e,+    0x62, 0x38, 0x83, 0x21, 0x7c, 0x38, 0xb0, 0x5e,+    0xb3, 0x5e, 0xb6, 0x5e, 0xca, 0x5e, 0x92, 0xa3,+    0xfe, 0x5e, 0x31, 0x23, 0x31, 0x23, 0x01, 0x82,+    0x22, 0x5f, 0x22, 0x5f, 0xc7, 0x38, 0xb8, 0x32,+    0xda, 0x61, 0x62, 0x5f, 0x6b, 0x5f, 0xe3, 0x38,+    0x9a, 0x5f, 0xcd, 0x5f, 0xd7, 0x5f, 0xf9, 0x5f,+    0x81, 0x60, 0x3a, 0x39, 0x1c, 0x39, 0x94, 0x60,+    0xd4, 0x26, 0xc7, 0x60, 0x02, 0x02, 0x00, 0x00,+    0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a,+    0x00, 0x00, 0x02, 0x08, 0x00, 0x80, 0x08, 0x00,+    0x00, 0x08, 0x80, 0x28, 0x80, 0x02, 0x00, 0x00,+    0x02, 0x48, 0x61, 0x00, 0x04, 0x06, 0x04, 0x32,+    0x46, 0x6a, 0x5c, 0x67, 0x96, 0xaa, 0xae, 0xc8,+    0xd3, 0x5d, 0x62, 0x00, 0x54, 0x77, 0xf3, 0x0c,+    0x2b, 0x3d, 0x63, 0xfc, 0x62, 0x68, 0x63, 0x83,+    0x63, 0xe4, 0x63, 0xf1, 0x2b, 0x22, 0x64, 0xc5,+    0x63, 0xa9, 0x63, 0x2e, 0x3a, 0x69, 0x64, 0x7e,+    0x64, 0x9d, 0x64, 0x77, 0x64, 0x6c, 0x3a, 0x4f,+    0x65, 0x6c, 0x65, 0x0a, 0x30, 0xe3, 0x65, 0xf8,+    0x66, 0x49, 0x66, 0x19, 0x3b, 0x91, 0x66, 0x08,+    0x3b, 0xe4, 0x3a, 0x92, 0x51, 0x95, 0x51, 0x00,+    0x67, 0x9c, 0x66, 0xad, 0x80, 0xd9, 0x43, 0x17,+    0x67, 0x1b, 0x67, 0x21, 0x67, 0x5e, 0x67, 0x53,+    0x67, 0xc3, 0x33, 0x49, 0x3b, 0xfa, 0x67, 0x85,+    0x67, 0x52, 0x68, 0x85, 0x68, 0x6d, 0x34, 0x8e,+    0x68, 0x1f, 0x68, 0x14, 0x69, 0x9d, 0x3b, 0x42,+    0x69, 0xa3, 0x69, 0xea, 0x69, 0xa8, 0x6a, 0xa3,+    0x36, 0xdb, 0x6a, 0x18, 0x3c, 0x21, 0x6b, 0xa7,+    0x38, 0x54, 0x6b, 0x4e, 0x3c, 0x72, 0x6b, 0x9f,+    0x6b, 0xba, 0x6b, 0xbb, 0x6b, 0x8d, 0x3a, 0x0b,+    0x1d, 0xfa, 0x3a, 0x4e, 0x6c, 0xbc, 0x3c, 0xbf,+    0x6c, 0xcd, 0x6c, 0x67, 0x6c, 0x16, 0x6d, 0x3e,+    0x6d, 0x77, 0x6d, 0x41, 0x6d, 0x69, 0x6d, 0x78,+    0x6d, 0x85, 0x6d, 0x1e, 0x3d, 0x34, 0x6d, 0x2f,+    0x6e, 0x6e, 0x6e, 0x33, 0x3d, 0xcb, 0x6e, 0xc7,+    0x6e, 0xd1, 0x3e, 0xf9, 0x6d, 0x6e, 0x6f, 0x5e,+    0x3f, 0x8e, 0x3f, 0xc6, 0x6f, 0x39, 0x70, 0x1e,+    0x70, 0x1b, 0x70, 0x96, 0x3d, 0x4a, 0x70, 0x7d,+    0x70, 0x77, 0x70, 0xad, 0x70, 0x25, 0x05, 0x45,+    0x71, 0x63, 0x42, 0x9c, 0x71, 0xab, 0x43, 0x28,+    0x72, 0x35, 0x72, 0x50, 0x72, 0x08, 0x46, 0x80,+    0x72, 0x95, 0x72, 0x35, 0x47, 0x02, 0x20, 0x00,+    0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x08, 0x80,+    0x00, 0x00, 0x02, 0x02, 0x80, 0x8a, 0x00, 0x00,+    0x20, 0x00, 0x08, 0x0a, 0x00, 0x80, 0x88, 0x80,+    0x20, 0x14, 0x48, 0x7a, 0x73, 0x8b, 0x73, 0xac,+    0x3e, 0xa5, 0x73, 0xb8, 0x3e, 0xb8, 0x3e, 0x47,+    0x74, 0x5c, 0x74, 0x71, 0x74, 0x85, 0x74, 0xca,+    0x74, 0x1b, 0x3f, 0x24, 0x75, 0x36, 0x4c, 0x3e,+    0x75, 0x92, 0x4c, 0x70, 0x75, 0x9f, 0x21, 0x10,+    0x76, 0xa1, 0x4f, 0xb8, 0x4f, 0x44, 0x50, 0xfc,+    0x3f, 0x08, 0x40, 0xf4, 0x76, 0xf3, 0x50, 0xf2,+    0x50, 0x19, 0x51, 0x33, 0x51, 0x1e, 0x77, 0x1f,+    0x77, 0x1f, 0x77, 0x4a, 0x77, 0x39, 0x40, 0x8b,+    0x77, 0x46, 0x40, 0x96, 0x40, 0x1d, 0x54, 0x4e,+    0x78, 0x8c, 0x78, 0xcc, 0x78, 0xe3, 0x40, 0x26,+    0x56, 0x56, 0x79, 0x9a, 0x56, 0xc5, 0x56, 0x8f,+    0x79, 0xeb, 0x79, 0x2f, 0x41, 0x40, 0x7a, 0x4a,+    0x7a, 0x4f, 0x7a, 0x7c, 0x59, 0xa7, 0x5a, 0xa7,+    0x5a, 0xee, 0x7a, 0x02, 0x42, 0xab, 0x5b, 0xc6,+    0x7b, 0xc9, 0x7b, 0x27, 0x42, 0x80, 0x5c, 0xd2,+    0x7c, 0xa0, 0x42, 0xe8, 0x7c, 0xe3, 0x7c, 0x00,+    0x7d, 0x86, 0x5f, 0x63, 0x7d, 0x01, 0x43, 0xc7,+    0x7d, 0x02, 0x7e, 0x45, 0x7e, 0x34, 0x43, 0x28,+    0x62, 0x47, 0x62, 0x59, 0x43, 0xd9, 0x62, 0x7a,+    0x7f, 0x3e, 0x63, 0x95, 0x7f, 0xfa, 0x7f, 0x05,+    0x80, 0xda, 0x64, 0x23, 0x65, 0x60, 0x80, 0xa8,+    0x65, 0x70, 0x80, 0x5f, 0x33, 0xd5, 0x43, 0xb2,+    0x80, 0x03, 0x81, 0x0b, 0x44, 0x3e, 0x81, 0xb5,+    0x5a, 0xa7, 0x67, 0xb5, 0x67, 0x93, 0x33, 0x9c,+    0x33, 0x01, 0x82, 0x04, 0x82, 0x9e, 0x8f, 0x6b,+    0x44, 0x91, 0x82, 0x8b, 0x82, 0x9d, 0x82, 0xb3,+    0x52, 0xb1, 0x82, 0xb3, 0x82, 0xbd, 0x82, 0xe6,+    0x82, 0x3c, 0x6b, 0xe5, 0x82, 0x1d, 0x83, 0x63,+    0x83, 0xad, 0x83, 0x23, 0x83, 0xbd, 0x83, 0xe7,+    0x83, 0x57, 0x84, 0x53, 0x83, 0xca, 0x83, 0xcc,+    0x83, 0xdc, 0x83, 0x36, 0x6c, 0x6b, 0x6d, 0x02,+    0x00, 0x00, 0x20, 0x22, 0x2a, 0xa0, 0x0a, 0x00,+    0x20, 0x80, 0x28, 0x00, 0xa8, 0x20, 0x20, 0x00,+    0x02, 0x80, 0x22, 0x02, 0x8a, 0x08, 0x00, 0xaa,+    0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x28, 0xd5,+    0x6c, 0x2b, 0x45, 0xf1, 0x84, 0xf3, 0x84, 0x16,+    0x85, 0xca, 0x73, 0x64, 0x85, 0x2c, 0x6f, 0x5d,+    0x45, 0x61, 0x45, 0xb1, 0x6f, 0xd2, 0x70, 0x6b,+    0x45, 0x50, 0x86, 0x5c, 0x86, 0x67, 0x86, 0x69,+    0x86, 0xa9, 0x86, 0x88, 0x86, 0x0e, 0x87, 0xe2,+    0x86, 0x79, 0x87, 0x28, 0x87, 0x6b, 0x87, 0x86,+    0x87, 0xd7, 0x45, 0xe1, 0x87, 0x01, 0x88, 0xf9,+    0x45, 0x60, 0x88, 0x63, 0x88, 0x67, 0x76, 0xd7,+    0x88, 0xde, 0x88, 0x35, 0x46, 0xfa, 0x88, 0xbb,+    0x34, 0xae, 0x78, 0x66, 0x79, 0xbe, 0x46, 0xc7,+    0x46, 0xa0, 0x8a, 0xed, 0x8a, 0x8a, 0x8b, 0x55,+    0x8c, 0xa8, 0x7c, 0xab, 0x8c, 0xc1, 0x8c, 0x1b,+    0x8d, 0x77, 0x8d, 0x2f, 0x7f, 0x04, 0x08, 0xcb,+    0x8d, 0xbc, 0x8d, 0xf0, 0x8d, 0xde, 0x08, 0xd4,+    0x8e, 0x38, 0x8f, 0xd2, 0x85, 0xed, 0x85, 0x94,+    0x90, 0xf1, 0x90, 0x11, 0x91, 0x2e, 0x87, 0x1b,+    0x91, 0x38, 0x92, 0xd7, 0x92, 0xd8, 0x92, 0x7c,+    0x92, 0xf9, 0x93, 0x15, 0x94, 0xfa, 0x8b, 0x8b,+    0x95, 0x95, 0x49, 0xb7, 0x95, 0x77, 0x8d, 0xe6,+    0x49, 0xc3, 0x96, 0xb2, 0x5d, 0x23, 0x97, 0x45,+    0x91, 0x1a, 0x92, 0x6e, 0x4a, 0x76, 0x4a, 0xe0,+    0x97, 0x0a, 0x94, 0xb2, 0x4a, 0x96, 0x94, 0x0b,+    0x98, 0x0b, 0x98, 0x29, 0x98, 0xb6, 0x95, 0xe2,+    0x98, 0x33, 0x4b, 0x29, 0x99, 0xa7, 0x99, 0xc2,+    0x99, 0xfe, 0x99, 0xce, 0x4b, 0x30, 0x9b, 0x12,+    0x9b, 0x40, 0x9c, 0xfd, 0x9c, 0xce, 0x4c, 0xed,+    0x4c, 0x67, 0x9d, 0xce, 0xa0, 0xf8, 0x4c, 0x05,+    0xa1, 0x0e, 0xa2, 0x91, 0xa2, 0xbb, 0x9e, 0x56,+    0x4d, 0xf9, 0x9e, 0xfe, 0x9e, 0x05, 0x9f, 0x0f,+    0x9f, 0x16, 0x9f, 0x3b, 0x9f, 0x00, 0xa6, 0x02,+    0x88, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,+    0x28, 0x00, 0x08, 0xa0, 0x80, 0xa0, 0x80, 0x00,+    0x80, 0x80, 0x00, 0x0a, 0x88, 0x80, 0x00, 0x80,+    0x00, 0x20, 0x2a, 0x00, 0x80,+};++static const uint16_t unicode_comp_table[945] = {+    0x4a01, 0x49c0, 0x4a02, 0x0280, 0x0281, 0x0282, 0x0283, 0x02c0,+    0x02c2, 0x0a00, 0x0284, 0x2442, 0x0285, 0x07c0, 0x0980, 0x0982,+    0x2440, 0x2280, 0x02c4, 0x2282, 0x2284, 0x2286, 0x02c6, 0x02c8,+    0x02ca, 0x02cc, 0x0287, 0x228a, 0x02ce, 0x228c, 0x2290, 0x2292,+    0x228e, 0x0288, 0x0289, 0x028a, 0x2482, 0x0300, 0x0302, 0x0304,+    0x028b, 0x2480, 0x0308, 0x0984, 0x0986, 0x2458, 0x0a02, 0x0306,+    0x2298, 0x229a, 0x229e, 0x0900, 0x030a, 0x22a0, 0x030c, 0x030e,+    0x0840, 0x0310, 0x0312, 0x22a2, 0x22a6, 0x09c0, 0x22a4, 0x22a8,+    0x22aa, 0x028c, 0x028d, 0x028e, 0x0340, 0x0342, 0x0344, 0x0380,+    0x028f, 0x248e, 0x07c2, 0x0988, 0x098a, 0x2490, 0x0346, 0x22ac,+    0x0400, 0x22b0, 0x0842, 0x22b2, 0x0402, 0x22b4, 0x0440, 0x0444,+    0x22b6, 0x0442, 0x22c2, 0x22c0, 0x22c4, 0x22c6, 0x22c8, 0x0940,+    0x04c0, 0x0291, 0x22ca, 0x04c4, 0x22cc, 0x04c2, 0x22d0, 0x22ce,+    0x0292, 0x0293, 0x0294, 0x0295, 0x0540, 0x0542, 0x0a08, 0x0296,+    0x2494, 0x0544, 0x07c4, 0x098c, 0x098e, 0x06c0, 0x2492, 0x0844,+    0x2308, 0x230a, 0x0580, 0x230c, 0x0584, 0x0990, 0x0992, 0x230e,+    0x0582, 0x2312, 0x0586, 0x0588, 0x2314, 0x058c, 0x2316, 0x0998,+    0x058a, 0x231e, 0x0590, 0x2320, 0x099a, 0x058e, 0x2324, 0x2322,+    0x0299, 0x029a, 0x029b, 0x05c0, 0x05c2, 0x05c4, 0x029c, 0x24ac,+    0x05c6, 0x05c8, 0x07c6, 0x0994, 0x0996, 0x0700, 0x24aa, 0x2326,+    0x05ca, 0x232a, 0x2328, 0x2340, 0x2342, 0x2344, 0x2346, 0x05cc,+    0x234a, 0x2348, 0x234c, 0x234e, 0x2350, 0x24b8, 0x029d, 0x05ce,+    0x24be, 0x0a0c, 0x2352, 0x0600, 0x24bc, 0x24ba, 0x0640, 0x2354,+    0x0642, 0x0644, 0x2356, 0x2358, 0x02a0, 0x02a1, 0x02a2, 0x02a3,+    0x02c1, 0x02c3, 0x0a01, 0x02a4, 0x2443, 0x02a5, 0x07c1, 0x0981,+    0x0983, 0x2441, 0x2281, 0x02c5, 0x2283, 0x2285, 0x2287, 0x02c7,+    0x02c9, 0x02cb, 0x02cd, 0x02a7, 0x228b, 0x02cf, 0x228d, 0x2291,+    0x2293, 0x228f, 0x02a8, 0x02a9, 0x02aa, 0x2483, 0x0301, 0x0303,+    0x0305, 0x02ab, 0x2481, 0x0309, 0x0985, 0x0987, 0x2459, 0x0a03,+    0x0307, 0x2299, 0x229b, 0x229f, 0x0901, 0x030b, 0x22a1, 0x030d,+    0x030f, 0x0841, 0x0311, 0x0313, 0x22a3, 0x22a7, 0x09c1, 0x22a5,+    0x22a9, 0x22ab, 0x2380, 0x02ac, 0x02ad, 0x02ae, 0x0341, 0x0343,+    0x0345, 0x02af, 0x248f, 0x07c3, 0x0989, 0x098b, 0x2491, 0x0347,+    0x22ad, 0x0401, 0x0884, 0x22b1, 0x0843, 0x22b3, 0x0403, 0x22b5,+    0x0441, 0x0445, 0x22b7, 0x0443, 0x22c3, 0x22c1, 0x22c5, 0x22c7,+    0x22c9, 0x0941, 0x04c1, 0x02b1, 0x22cb, 0x04c5, 0x22cd, 0x04c3,+    0x22d1, 0x22cf, 0x02b2, 0x02b3, 0x02b4, 0x02b5, 0x0541, 0x0543,+    0x0a09, 0x02b6, 0x2495, 0x0545, 0x07c5, 0x098d, 0x098f, 0x06c1,+    0x2493, 0x0845, 0x2309, 0x230b, 0x0581, 0x230d, 0x0585, 0x0991,+    0x0993, 0x230f, 0x0583, 0x2313, 0x0587, 0x0589, 0x2315, 0x058d,+    0x2317, 0x0999, 0x058b, 0x231f, 0x2381, 0x0591, 0x2321, 0x099b,+    0x058f, 0x2325, 0x2323, 0x02b9, 0x02ba, 0x02bb, 0x05c1, 0x05c3,+    0x05c5, 0x02bc, 0x24ad, 0x05c7, 0x05c9, 0x07c7, 0x0995, 0x0997,+    0x0701, 0x24ab, 0x2327, 0x05cb, 0x232b, 0x2329, 0x2341, 0x2343,+    0x2345, 0x2347, 0x05cd, 0x234b, 0x2349, 0x2382, 0x234d, 0x234f,+    0x2351, 0x24b9, 0x02bd, 0x05cf, 0x24bf, 0x0a0d, 0x2353, 0x02bf,+    0x24bd, 0x2383, 0x24bb, 0x0641, 0x2355, 0x0643, 0x0645, 0x2357,+    0x2359, 0x3101, 0x0c80, 0x2e00, 0x2446, 0x2444, 0x244a, 0x2448,+    0x0800, 0x0942, 0x0944, 0x0804, 0x2288, 0x2486, 0x2484, 0x248a,+    0x2488, 0x22ae, 0x2498, 0x2496, 0x249c, 0x249a, 0x2300, 0x0a06,+    0x2302, 0x0a04, 0x0946, 0x07ce, 0x07ca, 0x07c8, 0x07cc, 0x2447,+    0x2445, 0x244b, 0x2449, 0x0801, 0x0943, 0x0945, 0x0805, 0x2289,+    0x2487, 0x2485, 0x248b, 0x2489, 0x22af, 0x2499, 0x2497, 0x249d,+    0x249b, 0x2301, 0x0a07, 0x2303, 0x0a05, 0x0947, 0x07cf, 0x07cb,+    0x07c9, 0x07cd, 0x2450, 0x244e, 0x2454, 0x2452, 0x2451, 0x244f,+    0x2455, 0x2453, 0x2294, 0x2296, 0x2295, 0x2297, 0x2304, 0x2306,+    0x2305, 0x2307, 0x2318, 0x2319, 0x231a, 0x231b, 0x232c, 0x232d,+    0x232e, 0x232f, 0x2400, 0x24a2, 0x24a0, 0x24a6, 0x24a4, 0x24a8,+    0x24a3, 0x24a1, 0x24a7, 0x24a5, 0x24a9, 0x24b0, 0x24ae, 0x24b4,+    0x24b2, 0x24b6, 0x24b1, 0x24af, 0x24b5, 0x24b3, 0x24b7, 0x0882,+    0x0880, 0x0881, 0x0802, 0x0803, 0x229c, 0x229d, 0x0a0a, 0x0a0b,+    0x0883, 0x0b40, 0x2c8a, 0x0c81, 0x2c89, 0x2c88, 0x2540, 0x2541,+    0x2d00, 0x2e07, 0x0d00, 0x2640, 0x2641, 0x2e80, 0x0d01, 0x26c8,+    0x26c9, 0x2f00, 0x2f84, 0x0d02, 0x2f83, 0x2f82, 0x0d40, 0x26d8,+    0x26d9, 0x3186, 0x0d04, 0x2740, 0x2741, 0x3100, 0x3086, 0x0d06,+    0x3085, 0x3084, 0x0d41, 0x2840, 0x3200, 0x0d07, 0x284f, 0x2850,+    0x3280, 0x2c84, 0x2e03, 0x2857, 0x0d42, 0x2c81, 0x2c80, 0x24c0,+    0x24c1, 0x2c86, 0x2c83, 0x28c0, 0x0d43, 0x25c0, 0x25c1, 0x2940,+    0x0d44, 0x26c0, 0x26c1, 0x2e05, 0x2e02, 0x29c0, 0x0d45, 0x2f05,+    0x2f04, 0x0d80, 0x26d0, 0x26d1, 0x2f80, 0x2a40, 0x0d82, 0x26e0,+    0x26e1, 0x3080, 0x3081, 0x2ac0, 0x0d83, 0x3004, 0x3003, 0x0d81,+    0x27c0, 0x27c1, 0x3082, 0x2b40, 0x0d84, 0x2847, 0x2848, 0x3184,+    0x3181, 0x2f06, 0x0d08, 0x2f81, 0x3005, 0x0d46, 0x3083, 0x3182,+    0x0e00, 0x0e01, 0x0f40, 0x1180, 0x1182, 0x0f03, 0x0f00, 0x11c0,+    0x0f01, 0x1140, 0x1202, 0x1204, 0x0f81, 0x1240, 0x0fc0, 0x1242,+    0x0f80, 0x1244, 0x1284, 0x0f82, 0x1286, 0x1288, 0x128a, 0x12c0,+    0x1282, 0x1181, 0x1183, 0x1043, 0x1040, 0x11c1, 0x1041, 0x1141,+    0x1203, 0x1205, 0x10c1, 0x1241, 0x1000, 0x1243, 0x10c0, 0x1245,+    0x1285, 0x10c2, 0x1287, 0x1289, 0x128b, 0x12c1, 0x1283, 0x1080,+    0x1100, 0x1101, 0x1200, 0x1201, 0x1280, 0x1281, 0x1340, 0x1341,+    0x1343, 0x1342, 0x1344, 0x13c2, 0x1400, 0x13c0, 0x1440, 0x1480,+    0x14c0, 0x1540, 0x1541, 0x1740, 0x1700, 0x1741, 0x17c0, 0x1800,+    0x1802, 0x1801, 0x1840, 0x1880, 0x1900, 0x18c0, 0x18c1, 0x1901,+    0x1940, 0x1942, 0x1941, 0x1980, 0x19c0, 0x19c2, 0x19c1, 0x1c80,+    0x1cc0, 0x1dc0, 0x1f80, 0x2000, 0x2002, 0x2004, 0x2006, 0x2008,+    0x2040, 0x2080, 0x2082, 0x20c0, 0x20c1, 0x2100, 0x22b8, 0x22b9,+    0x2310, 0x2311, 0x231c, 0x231d, 0x244c, 0x2456, 0x244d, 0x2457,+    0x248c, 0x248d, 0x249e, 0x249f, 0x2500, 0x2502, 0x2504, 0x2bc0,+    0x2501, 0x2503, 0x2505, 0x2bc1, 0x2bc2, 0x2bc3, 0x2bc4, 0x2bc5,+    0x2bc6, 0x2bc7, 0x2580, 0x2582, 0x2584, 0x2bc8, 0x2581, 0x2583,+    0x2585, 0x2bc9, 0x2bca, 0x2bcb, 0x2bcc, 0x2bcd, 0x2bce, 0x2bcf,+    0x2600, 0x2602, 0x2601, 0x2603, 0x2680, 0x2682, 0x2681, 0x2683,+    0x26c2, 0x26c4, 0x26c6, 0x2c00, 0x26c3, 0x26c5, 0x26c7, 0x2c01,+    0x2c02, 0x2c03, 0x2c04, 0x2c05, 0x2c06, 0x2c07, 0x26ca, 0x26cc,+    0x26ce, 0x2c08, 0x26cb, 0x26cd, 0x26cf, 0x2c09, 0x2c0a, 0x2c0b,+    0x2c0c, 0x2c0d, 0x2c0e, 0x2c0f, 0x26d2, 0x26d4, 0x26d6, 0x26d3,+    0x26d5, 0x26d7, 0x26da, 0x26dc, 0x26de, 0x26db, 0x26dd, 0x26df,+    0x2700, 0x2702, 0x2701, 0x2703, 0x2780, 0x2782, 0x2781, 0x2783,+    0x2800, 0x2802, 0x2804, 0x2801, 0x2803, 0x2805, 0x2842, 0x2844,+    0x2846, 0x2849, 0x284b, 0x284d, 0x2c40, 0x284a, 0x284c, 0x284e,+    0x2c41, 0x2c42, 0x2c43, 0x2c44, 0x2c45, 0x2c46, 0x2c47, 0x2851,+    0x2853, 0x2855, 0x2c48, 0x2852, 0x2854, 0x2856, 0x2c49, 0x2c4a,+    0x2c4b, 0x2c4c, 0x2c4d, 0x2c4e, 0x2c4f, 0x2c82, 0x2e01, 0x3180,+    0x2c87, 0x2f01, 0x2f02, 0x2f03, 0x2e06, 0x3185, 0x3000, 0x3001,+    0x3002, 0x4640, 0x4641, 0x4680, 0x46c0, 0x46c2, 0x46c1, 0x4700,+    0x4740, 0x4780, 0x47c0, 0x47c2, 0x4900, 0x4940, 0x4980, 0x4982,+    0x4a00, 0x49c2, 0x4a03, 0x4a04, 0x4a40, 0x4a41, 0x4a80, 0x4a81,+    0x4ac0, 0x4ac1, 0x4bc0, 0x4bc1, 0x4b00, 0x4b01, 0x4b40, 0x4b41,+    0x4bc2, 0x4bc3, 0x4b80, 0x4b81, 0x4b82, 0x4b83, 0x4c00, 0x4c01,+    0x4c02, 0x4c03, 0x5600, 0x5440, 0x5442, 0x5444, 0x5446, 0x5448,+    0x544a, 0x544c, 0x544e, 0x5450, 0x5452, 0x5454, 0x5456, 0x5480,+    0x5482, 0x5484, 0x54c0, 0x54c1, 0x5500, 0x5501, 0x5540, 0x5541,+    0x5580, 0x5581, 0x55c0, 0x55c1, 0x5680, 0x58c0, 0x5700, 0x5702,+    0x5704, 0x5706, 0x5708, 0x570a, 0x570c, 0x570e, 0x5710, 0x5712,+    0x5714, 0x5716, 0x5740, 0x5742, 0x5744, 0x5780, 0x5781, 0x57c0,+    0x57c1, 0x5800, 0x5801, 0x5840, 0x5841, 0x5880, 0x5881, 0x5900,+    0x5901, 0x5902, 0x5903, 0x5940, 0x8e80, 0x8e82, 0x8ec0, 0x8f00,+    0x8f01, 0x8f40, 0x8f41, 0x8f81, 0x8f80, 0x8f83, 0x8fc0, 0x8fc1,+    0x9000,+};++typedef enum {+    UNICODE_GC_Cn,+    UNICODE_GC_Lu,+    UNICODE_GC_Ll,+    UNICODE_GC_Lt,+    UNICODE_GC_Lm,+    UNICODE_GC_Lo,+    UNICODE_GC_Mn,+    UNICODE_GC_Mc,+    UNICODE_GC_Me,+    UNICODE_GC_Nd,+    UNICODE_GC_Nl,+    UNICODE_GC_No,+    UNICODE_GC_Sm,+    UNICODE_GC_Sc,+    UNICODE_GC_Sk,+    UNICODE_GC_So,+    UNICODE_GC_Pc,+    UNICODE_GC_Pd,+    UNICODE_GC_Ps,+    UNICODE_GC_Pe,+    UNICODE_GC_Pi,+    UNICODE_GC_Pf,+    UNICODE_GC_Po,+    UNICODE_GC_Zs,+    UNICODE_GC_Zl,+    UNICODE_GC_Zp,+    UNICODE_GC_Cc,+    UNICODE_GC_Cf,+    UNICODE_GC_Cs,+    UNICODE_GC_Co,+    UNICODE_GC_LC,+    UNICODE_GC_L,+    UNICODE_GC_M,+    UNICODE_GC_N,+    UNICODE_GC_S,+    UNICODE_GC_P,+    UNICODE_GC_Z,+    UNICODE_GC_C,+    UNICODE_GC_COUNT,+} UnicodeGCEnum;++static const char unicode_gc_name_table[] =+    "Cn,Unassigned"            "\0"+    "Lu,Uppercase_Letter"      "\0"+    "Ll,Lowercase_Letter"      "\0"+    "Lt,Titlecase_Letter"      "\0"+    "Lm,Modifier_Letter"       "\0"+    "Lo,Other_Letter"          "\0"+    "Mn,Nonspacing_Mark"       "\0"+    "Mc,Spacing_Mark"          "\0"+    "Me,Enclosing_Mark"        "\0"+    "Nd,Decimal_Number,digit"  "\0"+    "Nl,Letter_Number"         "\0"+    "No,Other_Number"          "\0"+    "Sm,Math_Symbol"           "\0"+    "Sc,Currency_Symbol"       "\0"+    "Sk,Modifier_Symbol"       "\0"+    "So,Other_Symbol"          "\0"+    "Pc,Connector_Punctuation" "\0"+    "Pd,Dash_Punctuation"      "\0"+    "Ps,Open_Punctuation"      "\0"+    "Pe,Close_Punctuation"     "\0"+    "Pi,Initial_Punctuation"   "\0"+    "Pf,Final_Punctuation"     "\0"+    "Po,Other_Punctuation"     "\0"+    "Zs,Space_Separator"       "\0"+    "Zl,Line_Separator"        "\0"+    "Zp,Paragraph_Separator"   "\0"+    "Cc,Control,cntrl"         "\0"+    "Cf,Format"                "\0"+    "Cs,Surrogate"             "\0"+    "Co,Private_Use"           "\0"+    "LC,Cased_Letter"          "\0"+    "L,Letter"                 "\0"+    "M,Mark,Combining_Mark"    "\0"+    "N,Number"                 "\0"+    "S,Symbol"                 "\0"+    "P,Punctuation,punct"      "\0"+    "Z,Separator"              "\0"+    "C,Other"                  "\0"+;++static const uint8_t unicode_gc_table[3790] = {+    0xfa, 0x18, 0x17, 0x56, 0x0d, 0x56, 0x12, 0x13,+    0x16, 0x0c, 0x16, 0x11, 0x36, 0xe9, 0x02, 0x36,+    0x4c, 0x36, 0xe1, 0x12, 0x12, 0x16, 0x13, 0x0e,+    0x10, 0x0e, 0xe2, 0x12, 0x12, 0x0c, 0x13, 0x0c,+    0xfa, 0x19, 0x17, 0x16, 0x6d, 0x0f, 0x16, 0x0e,+    0x0f, 0x05, 0x14, 0x0c, 0x1b, 0x0f, 0x0e, 0x0f,+    0x0c, 0x2b, 0x0e, 0x02, 0x36, 0x0e, 0x0b, 0x05,+    0x15, 0x4b, 0x16, 0xe1, 0x0f, 0x0c, 0xc1, 0xe2,+    0x10, 0x0c, 0xe2, 0x00, 0xff, 0x30, 0x02, 0xff,+    0x08, 0x02, 0xff, 0x27, 0xbf, 0x22, 0x21, 0x02,+    0x5f, 0x5f, 0x21, 0x22, 0x61, 0x02, 0x21, 0x02,+    0x41, 0x42, 0x21, 0x02, 0x21, 0x02, 0x9f, 0x7f,+    0x02, 0x5f, 0x5f, 0x21, 0x02, 0x5f, 0x3f, 0x02,+    0x05, 0x3f, 0x22, 0x65, 0x01, 0x03, 0x02, 0x01,+    0x03, 0x02, 0x01, 0x03, 0x02, 0xff, 0x08, 0x02,+    0xff, 0x0a, 0x02, 0x01, 0x03, 0x02, 0x5f, 0x21,+    0x02, 0xff, 0x32, 0xa2, 0x21, 0x02, 0x21, 0x22,+    0x5f, 0x41, 0x02, 0xff, 0x00, 0xe2, 0x3c, 0x05,+    0xe2, 0x13, 0xe4, 0x0a, 0x6e, 0xe4, 0x04, 0xee,+    0x06, 0x84, 0xce, 0x04, 0x0e, 0x04, 0xee, 0x09,+    0xe6, 0x68, 0x7f, 0x04, 0x0e, 0x3f, 0x20, 0x04,+    0x42, 0x16, 0x01, 0x60, 0x2e, 0x01, 0x16, 0x41,+    0x00, 0x01, 0x00, 0x21, 0x02, 0xe1, 0x09, 0x00,+    0xe1, 0x01, 0xe2, 0x1b, 0x3f, 0x02, 0x41, 0x42,+    0xff, 0x10, 0x62, 0x3f, 0x0c, 0x5f, 0x3f, 0x02,+    0xe1, 0x2b, 0xe2, 0x28, 0xff, 0x1a, 0x0f, 0x86,+    0x28, 0xff, 0x2f, 0xff, 0x06, 0x02, 0xff, 0x58,+    0x00, 0xe1, 0x1e, 0x20, 0x04, 0xb6, 0xe2, 0x21,+    0x16, 0x11, 0x20, 0x2f, 0x0d, 0x00, 0xe6, 0x25,+    0x11, 0x06, 0x16, 0x26, 0x16, 0x26, 0x16, 0x06,+    0xe0, 0x00, 0xe5, 0x13, 0x60, 0x65, 0x36, 0xe0,+    0x03, 0xbb, 0x4c, 0x36, 0x0d, 0x36, 0x2f, 0xe6,+    0x03, 0x16, 0x1b, 0x00, 0x36, 0xe5, 0x18, 0x04,+    0xe5, 0x02, 0xe6, 0x0d, 0xe9, 0x02, 0x76, 0x25,+    0x06, 0xe5, 0x5b, 0x16, 0x05, 0xc6, 0x1b, 0x0f,+    0xa6, 0x24, 0x26, 0x0f, 0x66, 0x25, 0xe9, 0x02,+    0x45, 0x2f, 0x05, 0xf6, 0x06, 0x00, 0x1b, 0x05,+    0x06, 0xe5, 0x16, 0xe6, 0x13, 0x20, 0xe5, 0x51,+    0xe6, 0x03, 0x05, 0xe0, 0x06, 0xe9, 0x02, 0xe5,+    0x19, 0xe6, 0x01, 0x24, 0x0f, 0x56, 0x04, 0x20,+    0x06, 0x2d, 0xe5, 0x0e, 0x66, 0x04, 0xe6, 0x01,+    0x04, 0x46, 0x04, 0x86, 0x20, 0xf6, 0x07, 0x00,+    0xe5, 0x11, 0x46, 0x20, 0x16, 0x00, 0xe5, 0x03,+    0xe0, 0x2d, 0xe5, 0x0d, 0x00, 0xe5, 0x0a, 0xe0,+    0x03, 0xe6, 0x07, 0x1b, 0xe6, 0x18, 0x07, 0xe5,+    0x2e, 0x06, 0x07, 0x06, 0x05, 0x47, 0xe6, 0x00,+    0x67, 0x06, 0x27, 0x05, 0xc6, 0xe5, 0x02, 0x26,+    0x36, 0xe9, 0x02, 0x16, 0x04, 0xe5, 0x07, 0x06,+    0x27, 0x00, 0xe5, 0x00, 0x20, 0x25, 0x20, 0xe5,+    0x0e, 0x00, 0xc5, 0x00, 0x05, 0x40, 0x65, 0x20,+    0x06, 0x05, 0x47, 0x66, 0x20, 0x27, 0x20, 0x27,+    0x06, 0x05, 0xe0, 0x00, 0x07, 0x60, 0x25, 0x00,+    0x45, 0x26, 0x20, 0xe9, 0x02, 0x25, 0x2d, 0xab,+    0x0f, 0x0d, 0x05, 0x16, 0x06, 0x20, 0x26, 0x07,+    0x00, 0xa5, 0x60, 0x25, 0x20, 0xe5, 0x0e, 0x00,+    0xc5, 0x00, 0x25, 0x00, 0x25, 0x00, 0x25, 0x20,+    0x06, 0x00, 0x47, 0x26, 0x60, 0x26, 0x20, 0x46,+    0x40, 0x06, 0xc0, 0x65, 0x00, 0x05, 0xc0, 0xe9,+    0x02, 0x26, 0x45, 0x06, 0x16, 0xe0, 0x02, 0x26,+    0x07, 0x00, 0xe5, 0x01, 0x00, 0x45, 0x00, 0xe5,+    0x0e, 0x00, 0xc5, 0x00, 0x25, 0x00, 0x85, 0x20,+    0x06, 0x05, 0x47, 0x86, 0x00, 0x26, 0x07, 0x00,+    0x27, 0x06, 0x20, 0x05, 0xe0, 0x07, 0x25, 0x26,+    0x20, 0xe9, 0x02, 0x16, 0x0d, 0xc0, 0x05, 0xa6,+    0x00, 0x06, 0x27, 0x00, 0xe5, 0x00, 0x20, 0x25,+    0x20, 0xe5, 0x0e, 0x00, 0xc5, 0x00, 0x25, 0x00,+    0x85, 0x20, 0x06, 0x05, 0x07, 0x06, 0x07, 0x66,+    0x20, 0x27, 0x20, 0x27, 0x06, 0xc0, 0x26, 0x07,+    0x60, 0x25, 0x00, 0x45, 0x26, 0x20, 0xe9, 0x02,+    0x0f, 0x05, 0xab, 0xe0, 0x02, 0x06, 0x05, 0x00,+    0xa5, 0x40, 0x45, 0x00, 0x65, 0x40, 0x25, 0x00,+    0x05, 0x00, 0x25, 0x40, 0x25, 0x40, 0x45, 0x40,+    0xe5, 0x04, 0x60, 0x27, 0x06, 0x27, 0x40, 0x47,+    0x00, 0x47, 0x06, 0x20, 0x05, 0xa0, 0x07, 0xe0,+    0x06, 0xe9, 0x02, 0x4b, 0xaf, 0x0d, 0x0f, 0x80,+    0x06, 0x47, 0x06, 0xe5, 0x00, 0x00, 0x45, 0x00,+    0xe5, 0x0f, 0x00, 0xe5, 0x08, 0x40, 0x05, 0x46,+    0x67, 0x00, 0x46, 0x00, 0x66, 0xc0, 0x26, 0x00,+    0x45, 0x80, 0x25, 0x26, 0x20, 0xe9, 0x02, 0xc0,+    0x16, 0xcb, 0x0f, 0x05, 0x06, 0x27, 0x16, 0xe5,+    0x00, 0x00, 0x45, 0x00, 0xe5, 0x0f, 0x00, 0xe5,+    0x02, 0x00, 0x85, 0x20, 0x06, 0x05, 0x07, 0x06,+    0x87, 0x00, 0x06, 0x27, 0x00, 0x27, 0x26, 0xc0,+    0x27, 0xc0, 0x05, 0x00, 0x25, 0x26, 0x20, 0xe9,+    0x02, 0x00, 0x25, 0xe0, 0x05, 0x26, 0x27, 0xe5,+    0x01, 0x00, 0x45, 0x00, 0xe5, 0x21, 0x26, 0x05,+    0x47, 0x66, 0x00, 0x47, 0x00, 0x47, 0x06, 0x05,+    0x0f, 0x60, 0x45, 0x07, 0xcb, 0x45, 0x26, 0x20,+    0xe9, 0x02, 0xeb, 0x01, 0x0f, 0xa5, 0x00, 0x06,+    0x27, 0x00, 0xe5, 0x0a, 0x40, 0xe5, 0x10, 0x00,+    0xe5, 0x01, 0x00, 0x05, 0x20, 0xc5, 0x40, 0x06,+    0x60, 0x47, 0x46, 0x00, 0x06, 0x00, 0xe7, 0x00,+    0xa0, 0xe9, 0x02, 0x20, 0x27, 0x16, 0xe0, 0x04,+    0xe5, 0x28, 0x06, 0x25, 0xc6, 0x60, 0x0d, 0xa5,+    0x04, 0xe6, 0x00, 0x16, 0xe9, 0x02, 0x36, 0xe0,+    0x1d, 0x25, 0x00, 0x05, 0x00, 0x85, 0x00, 0xe5,+    0x10, 0x00, 0x05, 0x00, 0xe5, 0x02, 0x06, 0x25,+    0xe6, 0x01, 0x05, 0x20, 0x85, 0x00, 0x04, 0x00,+    0xa6, 0x20, 0xe9, 0x02, 0x20, 0x65, 0xe0, 0x18,+    0x05, 0x4f, 0xf6, 0x07, 0x0f, 0x16, 0x4f, 0x26,+    0xaf, 0xe9, 0x02, 0xeb, 0x02, 0x0f, 0x06, 0x0f,+    0x06, 0x0f, 0x06, 0x12, 0x13, 0x12, 0x13, 0x27,+    0xe5, 0x00, 0x00, 0xe5, 0x1c, 0x60, 0xe6, 0x06,+    0x07, 0x86, 0x16, 0x26, 0x85, 0xe6, 0x03, 0x00,+    0xe6, 0x1c, 0x00, 0xef, 0x00, 0x06, 0xaf, 0x00,+    0x2f, 0x96, 0x6f, 0x36, 0xe0, 0x1d, 0xe5, 0x23,+    0x27, 0x66, 0x07, 0xa6, 0x07, 0x26, 0x27, 0x26,+    0x05, 0xe9, 0x02, 0xb6, 0xa5, 0x27, 0x26, 0x65,+    0x46, 0x05, 0x47, 0x25, 0xc7, 0x45, 0x66, 0xe5,+    0x05, 0x06, 0x27, 0x26, 0xa7, 0x06, 0x05, 0x07,+    0xe9, 0x02, 0x47, 0x06, 0x2f, 0xe1, 0x1e, 0x00,+    0x01, 0x80, 0x01, 0x20, 0xe2, 0x23, 0x16, 0x04,+    0x42, 0xe5, 0x80, 0xc1, 0x00, 0x65, 0x20, 0xc5,+    0x00, 0x05, 0x00, 0x65, 0x20, 0xe5, 0x21, 0x00,+    0x65, 0x20, 0xe5, 0x19, 0x00, 0x65, 0x20, 0xc5,+    0x00, 0x05, 0x00, 0x65, 0x20, 0xe5, 0x07, 0x00,+    0xe5, 0x31, 0x00, 0x65, 0x20, 0xe5, 0x3b, 0x20,+    0x46, 0xf6, 0x01, 0xeb, 0x0c, 0x40, 0xe5, 0x08,+    0xef, 0x02, 0xa0, 0xe1, 0x4e, 0x20, 0xa2, 0x20,+    0x11, 0xe5, 0x81, 0xe4, 0x0f, 0x16, 0xe5, 0x09,+    0x17, 0xe5, 0x12, 0x12, 0x13, 0x40, 0xe5, 0x43,+    0x56, 0x4a, 0xe5, 0x00, 0xc0, 0xe5, 0x05, 0x00,+    0x65, 0x46, 0xe0, 0x03, 0xe5, 0x0a, 0x46, 0x36,+    0xe0, 0x01, 0xe5, 0x0a, 0x26, 0xe0, 0x04, 0xe5,+    0x05, 0x00, 0x45, 0x00, 0x26, 0xe0, 0x04, 0xe5,+    0x2c, 0x26, 0x07, 0xc6, 0xe7, 0x00, 0x06, 0x27,+    0xe6, 0x03, 0x56, 0x04, 0x56, 0x0d, 0x05, 0x06,+    0x20, 0xe9, 0x02, 0xa0, 0xeb, 0x02, 0xa0, 0xb6,+    0x11, 0x76, 0x46, 0x1b, 0x00, 0xe9, 0x02, 0xa0,+    0xe5, 0x1b, 0x04, 0xe5, 0x2d, 0xc0, 0x85, 0x26,+    0xe5, 0x1a, 0x06, 0x05, 0x80, 0xe5, 0x3e, 0xe0,+    0x02, 0xe5, 0x17, 0x00, 0x46, 0x67, 0x26, 0x47,+    0x60, 0x27, 0x06, 0xa7, 0x46, 0x60, 0x0f, 0x40,+    0x36, 0xe9, 0x02, 0xe5, 0x16, 0x20, 0x85, 0xe0,+    0x03, 0xe5, 0x24, 0x60, 0xe5, 0x12, 0xa0, 0xe9,+    0x02, 0x0b, 0x40, 0xef, 0x1a, 0xe5, 0x0f, 0x26,+    0x27, 0x06, 0x20, 0x36, 0xe5, 0x2d, 0x07, 0x06,+    0x07, 0xc6, 0x00, 0x06, 0x07, 0x06, 0x27, 0xe6,+    0x00, 0xa7, 0xe6, 0x02, 0x20, 0x06, 0xe9, 0x02,+    0xa0, 0xe9, 0x02, 0xa0, 0xd6, 0x04, 0xb6, 0x20,+    0xe6, 0x06, 0x08, 0x26, 0xe0, 0x37, 0x66, 0x07,+    0xe5, 0x27, 0x06, 0x07, 0x86, 0x07, 0x06, 0x87,+    0x06, 0x27, 0xc5, 0x60, 0xe9, 0x02, 0xd6, 0xef,+    0x02, 0xe6, 0x01, 0xef, 0x01, 0x40, 0x26, 0x07,+    0xe5, 0x16, 0x07, 0x66, 0x27, 0x26, 0x07, 0x46,+    0x25, 0xe9, 0x02, 0xe5, 0x24, 0x06, 0x07, 0x26,+    0x47, 0x06, 0x07, 0x46, 0x27, 0xe0, 0x00, 0x76,+    0xe5, 0x1c, 0xe7, 0x00, 0xe6, 0x00, 0x27, 0x26,+    0x40, 0x96, 0xe9, 0x02, 0x40, 0x45, 0xe9, 0x02,+    0xe5, 0x16, 0xa4, 0x36, 0xe2, 0x01, 0xc0, 0xe1,+    0x23, 0x20, 0x41, 0xf6, 0x00, 0xe0, 0x00, 0x46,+    0x16, 0xe6, 0x05, 0x07, 0xc6, 0x65, 0x06, 0xa5,+    0x06, 0x25, 0x07, 0x26, 0x05, 0x80, 0xe2, 0x24,+    0xe4, 0x37, 0xe2, 0x05, 0x04, 0xe2, 0x1a, 0xe4,+    0x1d, 0xe6, 0x32, 0x00, 0x86, 0xff, 0x80, 0x0e,+    0xe2, 0x00, 0xff, 0x5a, 0xe2, 0x00, 0xe1, 0x00,+    0xa2, 0x20, 0xa1, 0x20, 0xe2, 0x00, 0xe1, 0x00,+    0xe2, 0x00, 0xe1, 0x00, 0xa2, 0x20, 0xa1, 0x20,+    0xe2, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,+    0x00, 0x3f, 0xc2, 0xe1, 0x00, 0xe2, 0x06, 0x20,+    0xe2, 0x00, 0xe3, 0x00, 0xe2, 0x00, 0xe3, 0x00,+    0xe2, 0x00, 0xe3, 0x00, 0x82, 0x00, 0x22, 0x61,+    0x03, 0x0e, 0x02, 0x4e, 0x42, 0x00, 0x22, 0x61,+    0x03, 0x4e, 0x62, 0x20, 0x22, 0x61, 0x00, 0x4e,+    0xe2, 0x00, 0x81, 0x4e, 0x20, 0x42, 0x00, 0x22,+    0x61, 0x03, 0x2e, 0x00, 0xf7, 0x03, 0x9b, 0xb1,+    0x36, 0x14, 0x15, 0x12, 0x34, 0x15, 0x12, 0x14,+    0xf6, 0x00, 0x18, 0x19, 0x9b, 0x17, 0xf6, 0x01,+    0x14, 0x15, 0x76, 0x30, 0x56, 0x0c, 0x12, 0x13,+    0xf6, 0x03, 0x0c, 0x16, 0x10, 0xf6, 0x02, 0x17,+    0x9b, 0x00, 0xfb, 0x02, 0x0b, 0x04, 0x20, 0xab,+    0x4c, 0x12, 0x13, 0x04, 0xeb, 0x02, 0x4c, 0x12,+    0x13, 0x00, 0xe4, 0x05, 0x40, 0xed, 0x18, 0xe0,+    0x08, 0xe6, 0x05, 0x68, 0x06, 0x48, 0xe6, 0x04,+    0xe0, 0x07, 0x2f, 0x01, 0x6f, 0x01, 0x2f, 0x02,+    0x41, 0x22, 0x41, 0x02, 0x0f, 0x01, 0x2f, 0x0c,+    0x81, 0xaf, 0x01, 0x0f, 0x01, 0x0f, 0x01, 0x0f,+    0x61, 0x0f, 0x02, 0x61, 0x02, 0x65, 0x02, 0x2f,+    0x22, 0x21, 0x8c, 0x3f, 0x42, 0x0f, 0x0c, 0x2f,+    0x02, 0x0f, 0xeb, 0x08, 0xea, 0x1b, 0x3f, 0x6a,+    0x0b, 0x2f, 0x60, 0x8c, 0x8f, 0x2c, 0x6f, 0x0c,+    0x2f, 0x0c, 0x2f, 0x0c, 0xcf, 0x0c, 0xef, 0x17,+    0x2c, 0x2f, 0x0c, 0x0f, 0x0c, 0xef, 0x17, 0xec,+    0x80, 0x84, 0xef, 0x00, 0x12, 0x13, 0x12, 0x13,+    0xef, 0x0c, 0x2c, 0xcf, 0x12, 0x13, 0xef, 0x49,+    0x0c, 0xef, 0x16, 0xec, 0x11, 0xef, 0x20, 0xac,+    0xef, 0x3d, 0xe0, 0x11, 0xef, 0x03, 0xe0, 0x0d,+    0xeb, 0x34, 0xef, 0x46, 0xeb, 0x0e, 0xef, 0x80,+    0x2f, 0x0c, 0xef, 0x01, 0x0c, 0xef, 0x2e, 0xec,+    0x00, 0xef, 0x67, 0x0c, 0xef, 0x80, 0x70, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0xeb, 0x16, 0xef,+    0x24, 0x8c, 0x12, 0x13, 0xec, 0x17, 0x12, 0x13,+    0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13,+    0xec, 0x08, 0xef, 0x80, 0x78, 0xec, 0x7b, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0xec, 0x37, 0x12,+    0x13, 0x12, 0x13, 0xec, 0x18, 0x12, 0x13, 0xec,+    0x80, 0x7a, 0xef, 0x28, 0xec, 0x0d, 0x2f, 0xac,+    0xef, 0x1f, 0x20, 0xef, 0x18, 0x00, 0xef, 0x61,+    0xe1, 0x27, 0x00, 0xe2, 0x27, 0x00, 0x5f, 0x21,+    0x22, 0xdf, 0x41, 0x02, 0x3f, 0x02, 0x3f, 0x82,+    0x24, 0x41, 0x02, 0xff, 0x5a, 0x02, 0xaf, 0x7f,+    0x46, 0x3f, 0x80, 0x76, 0x0b, 0x36, 0xe2, 0x1e,+    0x00, 0x02, 0x80, 0x02, 0x20, 0xe5, 0x30, 0xc0,+    0x04, 0x16, 0xe0, 0x06, 0x06, 0xe5, 0x0f, 0xe0,+    0x01, 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, 0xc5,+    0x00, 0xc5, 0x00, 0xc5, 0x00, 0xc5, 0x00, 0xc5,+    0x00, 0xe6, 0x18, 0x36, 0x14, 0x15, 0x14, 0x15,+    0x56, 0x14, 0x15, 0x16, 0x14, 0x15, 0xf6, 0x01,+    0x11, 0x36, 0x11, 0x16, 0x14, 0x15, 0x36, 0x14,+    0x15, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12,+    0x13, 0x96, 0x04, 0xf6, 0x02, 0x31, 0x76, 0x11,+    0x16, 0x12, 0xf6, 0x05, 0x2f, 0x16, 0xe0, 0x25,+    0xef, 0x12, 0x00, 0xef, 0x51, 0xe0, 0x04, 0xef,+    0x80, 0x4e, 0xe0, 0x12, 0xef, 0x04, 0x60, 0x17,+    0x56, 0x0f, 0x04, 0x05, 0x0a, 0x12, 0x13, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x2f,+    0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13,+    0x11, 0x12, 0x33, 0x0f, 0xea, 0x01, 0x66, 0x27,+    0x11, 0x84, 0x2f, 0x4a, 0x04, 0x05, 0x16, 0x2f,+    0x00, 0xe5, 0x4e, 0x20, 0x26, 0x2e, 0x24, 0x05,+    0x11, 0xe5, 0x52, 0x16, 0x44, 0x05, 0x80, 0xe5,+    0x23, 0x00, 0xe5, 0x56, 0x00, 0x2f, 0x6b, 0xef,+    0x02, 0xe5, 0x18, 0xef, 0x1c, 0xe0, 0x04, 0xe5,+    0x08, 0xef, 0x17, 0x00, 0xeb, 0x02, 0xef, 0x16,+    0xeb, 0x00, 0x0f, 0xeb, 0x07, 0xef, 0x18, 0xeb,+    0x02, 0xef, 0x1f, 0xeb, 0x07, 0xef, 0x80, 0xb8,+    0xe5, 0x99, 0x38, 0xef, 0x38, 0xe5, 0xc0, 0x11,+    0x75, 0x40, 0xe5, 0x0d, 0x04, 0xe5, 0x83, 0xef,+    0x40, 0xef, 0x2f, 0xe0, 0x01, 0xe5, 0x20, 0xa4,+    0x36, 0xe5, 0x80, 0x84, 0x04, 0x56, 0xe5, 0x08,+    0xe9, 0x02, 0x25, 0xe0, 0x0c, 0xff, 0x26, 0x05,+    0x06, 0x48, 0x16, 0xe6, 0x02, 0x16, 0x04, 0xff,+    0x14, 0x24, 0x26, 0xe5, 0x3e, 0xea, 0x02, 0x26,+    0xb6, 0xe0, 0x00, 0xee, 0x0f, 0xe4, 0x01, 0x2e,+    0xff, 0x06, 0x22, 0xff, 0x36, 0x04, 0xe2, 0x00,+    0x9f, 0xff, 0x02, 0x04, 0x2e, 0x7f, 0x05, 0x7f,+    0x22, 0xff, 0x0d, 0x61, 0x02, 0x81, 0x02, 0xff,+    0x02, 0x20, 0x5f, 0x41, 0x02, 0x3f, 0xe0, 0x22,+    0x3f, 0x05, 0x24, 0x02, 0xc5, 0x06, 0x45, 0x06,+    0x65, 0x06, 0xe5, 0x0f, 0x27, 0x26, 0x07, 0x6f,+    0x06, 0x40, 0xab, 0x2f, 0x0d, 0x0f, 0xa0, 0xe5,+    0x2c, 0x76, 0xe0, 0x00, 0x27, 0xe5, 0x2a, 0xe7,+    0x08, 0x26, 0xe0, 0x00, 0x36, 0xe9, 0x02, 0xa0,+    0xe6, 0x0a, 0xa5, 0x56, 0x05, 0x16, 0x25, 0x06,+    0xe9, 0x02, 0xe5, 0x14, 0xe6, 0x00, 0x36, 0xe5,+    0x0f, 0xe6, 0x03, 0x27, 0xe0, 0x03, 0x16, 0xe5,+    0x15, 0x40, 0x46, 0x07, 0xe5, 0x27, 0x06, 0x27,+    0x66, 0x27, 0x26, 0x47, 0xf6, 0x05, 0x00, 0x04,+    0xe9, 0x02, 0x60, 0x36, 0x85, 0x06, 0x04, 0xe5,+    0x01, 0xe9, 0x02, 0x85, 0x00, 0xe5, 0x21, 0xa6,+    0x27, 0x26, 0x27, 0x26, 0xe0, 0x01, 0x45, 0x06,+    0xe5, 0x00, 0x06, 0x07, 0x20, 0xe9, 0x02, 0x20,+    0x76, 0xe5, 0x08, 0x04, 0xa5, 0x4f, 0x05, 0x07,+    0x06, 0x07, 0xe5, 0x2a, 0x06, 0x05, 0x46, 0x25,+    0x26, 0x85, 0x26, 0x05, 0x06, 0x05, 0xe0, 0x10,+    0x25, 0x04, 0x36, 0xe5, 0x03, 0x07, 0x26, 0x27,+    0x36, 0x05, 0x24, 0x07, 0x06, 0xe0, 0x02, 0xa5,+    0x20, 0xa5, 0x20, 0xa5, 0xe0, 0x01, 0xc5, 0x00,+    0xc5, 0x00, 0xe2, 0x23, 0x0e, 0x64, 0xe2, 0x01,+    0x04, 0x2e, 0x60, 0xe2, 0x48, 0xe5, 0x1b, 0x27,+    0x06, 0x27, 0x06, 0x27, 0x16, 0x07, 0x06, 0x20,+    0xe9, 0x02, 0xa0, 0xe5, 0xab, 0x1c, 0xe0, 0x04,+    0xe5, 0x0f, 0x60, 0xe5, 0x29, 0x60, 0xfc, 0x87,+    0x78, 0xfd, 0x98, 0x78, 0xe5, 0x80, 0xe6, 0x20,+    0xe5, 0x62, 0xe0, 0x1e, 0xc2, 0xe0, 0x04, 0x82,+    0x80, 0x05, 0x06, 0xe5, 0x02, 0x0c, 0xe5, 0x05,+    0x00, 0x85, 0x00, 0x05, 0x00, 0x25, 0x00, 0x25,+    0x00, 0xe5, 0x64, 0xee, 0x08, 0xe0, 0x09, 0xe5,+    0x80, 0xe3, 0x13, 0x12, 0xe0, 0x08, 0xe5, 0x38,+    0x20, 0xe5, 0x2e, 0xe0, 0x20, 0xe5, 0x04, 0x0d,+    0x0f, 0x20, 0xe6, 0x08, 0xd6, 0x12, 0x13, 0x16,+    0xa0, 0xe6, 0x08, 0x16, 0x31, 0x30, 0x12, 0x13,+    0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x12, 0x13,+    0x12, 0x13, 0x12, 0x13, 0x12, 0x13, 0x36, 0x12,+    0x13, 0x76, 0x50, 0x56, 0x00, 0x76, 0x11, 0x12,+    0x13, 0x12, 0x13, 0x12, 0x13, 0x56, 0x0c, 0x11,+    0x4c, 0x00, 0x16, 0x0d, 0x36, 0x60, 0x85, 0x00,+    0xe5, 0x7f, 0x20, 0x1b, 0x00, 0x56, 0x0d, 0x56,+    0x12, 0x13, 0x16, 0x0c, 0x16, 0x11, 0x36, 0xe9,+    0x02, 0x36, 0x4c, 0x36, 0xe1, 0x12, 0x12, 0x16,+    0x13, 0x0e, 0x10, 0x0e, 0xe2, 0x12, 0x12, 0x0c,+    0x13, 0x0c, 0x12, 0x13, 0x16, 0x12, 0x13, 0x36,+    0xe5, 0x02, 0x04, 0xe5, 0x25, 0x24, 0xe5, 0x17,+    0x40, 0xa5, 0x20, 0xa5, 0x20, 0xa5, 0x20, 0x45,+    0x40, 0x2d, 0x0c, 0x0e, 0x0f, 0x2d, 0x00, 0x0f,+    0x6c, 0x2f, 0xe0, 0x02, 0x5b, 0x2f, 0x20, 0xe5,+    0x04, 0x00, 0xe5, 0x12, 0x00, 0xe5, 0x0b, 0x00,+    0x25, 0x00, 0xe5, 0x07, 0x20, 0xe5, 0x06, 0xe0,+    0x1a, 0xe5, 0x73, 0x80, 0x56, 0x60, 0xeb, 0x25,+    0x40, 0xef, 0x01, 0xea, 0x2d, 0x6b, 0xef, 0x09,+    0x2b, 0x4f, 0x00, 0xef, 0x05, 0x40, 0x0f, 0xe0,+    0x27, 0xef, 0x25, 0x06, 0xe0, 0x7a, 0xe5, 0x15,+    0x40, 0xe5, 0x29, 0xe0, 0x07, 0x06, 0xeb, 0x13,+    0x60, 0xe5, 0x18, 0x6b, 0xe0, 0x01, 0xe5, 0x0c,+    0x0a, 0xe5, 0x00, 0x0a, 0x80, 0xe5, 0x1e, 0x86,+    0x80, 0xe5, 0x16, 0x00, 0x16, 0xe5, 0x1c, 0x60,+    0xe5, 0x00, 0x16, 0x8a, 0xe0, 0x22, 0xe1, 0x20,+    0xe2, 0x20, 0xe5, 0x46, 0x20, 0xe9, 0x02, 0xa0,+    0xe1, 0x1c, 0x60, 0xe2, 0x1c, 0x60, 0xe5, 0x20,+    0xe0, 0x00, 0xe5, 0x2c, 0xe0, 0x03, 0x16, 0xe0,+    0x80, 0x08, 0xe5, 0x80, 0xaf, 0xe0, 0x01, 0xe5,+    0x0e, 0xe0, 0x02, 0xe5, 0x00, 0xe0, 0x80, 0x10,+    0xa5, 0x20, 0x05, 0x00, 0xe5, 0x24, 0x00, 0x25,+    0x40, 0x05, 0x20, 0xe5, 0x0f, 0x00, 0x16, 0xeb,+    0x00, 0xe5, 0x0f, 0x2f, 0xcb, 0xe5, 0x17, 0xe0,+    0x00, 0xeb, 0x01, 0xe0, 0x28, 0xe5, 0x0b, 0x00,+    0x25, 0x80, 0x8b, 0xe5, 0x0e, 0xab, 0x40, 0x16,+    0xe5, 0x12, 0x80, 0x16, 0xe0, 0x38, 0xe5, 0x30,+    0x60, 0x2b, 0x25, 0xeb, 0x08, 0x20, 0xeb, 0x26,+    0x05, 0x46, 0x00, 0x26, 0x80, 0x66, 0x65, 0x00,+    0x45, 0x00, 0xe5, 0x15, 0x20, 0x46, 0x60, 0x06,+    0xeb, 0x01, 0xc0, 0xf6, 0x01, 0xc0, 0xe5, 0x15,+    0x2b, 0x16, 0xe5, 0x15, 0x4b, 0xe0, 0x18, 0xe5,+    0x00, 0x0f, 0xe5, 0x14, 0x26, 0x60, 0x8b, 0xd6,+    0xe0, 0x01, 0xe5, 0x2e, 0x40, 0xd6, 0xe5, 0x0e,+    0x20, 0xeb, 0x00, 0xe5, 0x0b, 0x80, 0xeb, 0x00,+    0xe5, 0x0a, 0xc0, 0x76, 0xe0, 0x04, 0xcb, 0xe0,+    0x48, 0xe5, 0x41, 0xe0, 0x2f, 0xe1, 0x2b, 0xe0,+    0x05, 0xe2, 0x2b, 0xc0, 0xab, 0xe5, 0x1c, 0x66,+    0xe0, 0x00, 0xe9, 0x02, 0xe0, 0x80, 0x9e, 0xeb,+    0x17, 0x00, 0xe5, 0x22, 0x00, 0x26, 0x11, 0x20,+    0x25, 0xe0, 0x46, 0xe5, 0x15, 0xeb, 0x02, 0x05,+    0xe0, 0x00, 0xe5, 0x0e, 0xe6, 0x03, 0x6b, 0x96,+    0xe0, 0x4e, 0xe5, 0x0d, 0xcb, 0xe0, 0x0c, 0xe5,+    0x0f, 0xe0, 0x01, 0x07, 0x06, 0x07, 0xe5, 0x2d,+    0xe6, 0x07, 0xd6, 0x60, 0xeb, 0x0c, 0xe9, 0x02,+    0xe0, 0x07, 0x46, 0x07, 0xe5, 0x25, 0x47, 0x66,+    0x27, 0x26, 0x36, 0x1b, 0x76, 0xe0, 0x03, 0x1b,+    0x20, 0xe5, 0x11, 0xc0, 0xe9, 0x02, 0xa0, 0x46,+    0xe5, 0x1c, 0x86, 0x07, 0xe6, 0x00, 0x00, 0xe9,+    0x02, 0x76, 0x05, 0x27, 0x05, 0xe0, 0x00, 0xe5,+    0x1b, 0x06, 0x36, 0x05, 0xe0, 0x01, 0x26, 0x07,+    0xe5, 0x28, 0x47, 0xe6, 0x01, 0x27, 0x65, 0x76,+    0x66, 0x16, 0x07, 0x06, 0xe9, 0x02, 0x05, 0x16,+    0x05, 0x56, 0x00, 0xeb, 0x0c, 0xe0, 0x03, 0xe5,+    0x0a, 0x00, 0xe5, 0x11, 0x47, 0x46, 0x27, 0x06,+    0x07, 0x26, 0xb6, 0x06, 0xe0, 0x39, 0xc5, 0x00,+    0x05, 0x00, 0x65, 0x00, 0xe5, 0x07, 0x00, 0xe5,+    0x02, 0x16, 0xa0, 0xe5, 0x27, 0x06, 0x47, 0xe6,+    0x00, 0x80, 0xe9, 0x02, 0xa0, 0x26, 0x27, 0x00,+    0xe5, 0x00, 0x20, 0x25, 0x20, 0xe5, 0x0e, 0x00,+    0xc5, 0x00, 0x25, 0x00, 0x85, 0x00, 0x26, 0x05,+    0x27, 0x06, 0x67, 0x20, 0x27, 0x20, 0x47, 0x20,+    0x05, 0xa0, 0x07, 0x80, 0x85, 0x27, 0x20, 0xc6,+    0x40, 0x86, 0xe0, 0x80, 0x03, 0xe5, 0x2d, 0x47,+    0xe6, 0x00, 0x27, 0x46, 0x07, 0x06, 0x65, 0x96,+    0xe9, 0x02, 0x36, 0x00, 0x16, 0x06, 0x45, 0xe0,+    0x16, 0xe5, 0x28, 0x47, 0xa6, 0x07, 0x06, 0x67,+    0x26, 0x07, 0x26, 0x25, 0x16, 0x05, 0xe0, 0x00,+    0xe9, 0x02, 0xe0, 0x80, 0x1e, 0xe5, 0x27, 0x47,+    0x66, 0x20, 0x67, 0x26, 0x07, 0x26, 0xf6, 0x0f,+    0x65, 0x26, 0xe0, 0x1a, 0xe5, 0x28, 0x47, 0xe6,+    0x00, 0x27, 0x06, 0x07, 0x26, 0x56, 0x05, 0xe0,+    0x03, 0xe9, 0x02, 0xa0, 0xf6, 0x05, 0xe0, 0x0b,+    0xe5, 0x23, 0x06, 0x07, 0x06, 0x27, 0xa6, 0x07,+    0x06, 0x05, 0xc0, 0xe9, 0x02, 0xe0, 0x2e, 0xe5,+    0x13, 0x20, 0x46, 0x27, 0x66, 0x07, 0x86, 0x60,+    0xe9, 0x02, 0x2b, 0x56, 0x0f, 0xe0, 0x80, 0x38,+    0xe5, 0x24, 0x47, 0xe6, 0x01, 0x07, 0x26, 0x16,+    0xe0, 0x5c, 0xe1, 0x18, 0xe2, 0x18, 0xe9, 0x02,+    0xeb, 0x01, 0xe0, 0x04, 0xe5, 0x00, 0x20, 0x05,+    0x20, 0xe5, 0x00, 0x00, 0x25, 0x00, 0xe5, 0x10,+    0xa7, 0x00, 0x27, 0x20, 0x26, 0x07, 0x06, 0x05,+    0x07, 0x05, 0x07, 0x06, 0x56, 0xe0, 0x01, 0xe9,+    0x02, 0xe0, 0x3e, 0xe5, 0x00, 0x20, 0xe5, 0x1f,+    0x47, 0x66, 0x20, 0x26, 0x67, 0x06, 0x05, 0x16,+    0x05, 0x07, 0xe0, 0x13, 0x05, 0xe6, 0x02, 0xe5,+    0x20, 0xa6, 0x07, 0x05, 0x66, 0xf6, 0x00, 0x06,+    0xe0, 0x00, 0x05, 0xa6, 0x27, 0x46, 0xe5, 0x26,+    0xe6, 0x05, 0x07, 0x26, 0x56, 0x05, 0x96, 0xe0,+    0x15, 0xe5, 0x31, 0xe0, 0x80, 0x7f, 0xe5, 0x01,+    0x00, 0xe5, 0x1d, 0x07, 0xc6, 0x00, 0xa6, 0x07,+    0x06, 0x05, 0x96, 0xe0, 0x02, 0xe9, 0x02, 0xeb,+    0x0b, 0x40, 0x36, 0xe5, 0x16, 0x20, 0xe6, 0x0e,+    0x00, 0x07, 0xc6, 0x07, 0x26, 0x07, 0x26, 0xe0,+    0x41, 0xc5, 0x00, 0x25, 0x00, 0xe5, 0x1e, 0xa6,+    0x40, 0x06, 0x00, 0x26, 0x00, 0xc6, 0x05, 0x06,+    0xe0, 0x00, 0xe9, 0x02, 0xa0, 0xa5, 0x00, 0x25,+    0x00, 0xe5, 0x18, 0x87, 0x00, 0x26, 0x00, 0x27,+    0x06, 0x07, 0x06, 0x05, 0xc0, 0xe9, 0x02, 0xe0,+    0x80, 0xae, 0xe5, 0x0b, 0x26, 0x27, 0x36, 0xe0,+    0x80, 0x2f, 0x05, 0xe0, 0x07, 0xeb, 0x0d, 0xef,+    0x00, 0x6d, 0xef, 0x09, 0xe0, 0x05, 0x16, 0xe5,+    0x83, 0x12, 0xe0, 0x5e, 0xea, 0x67, 0x00, 0x96,+    0xe0, 0x03, 0xe5, 0x80, 0x3c, 0xe0, 0x8a, 0x34,+    0xe5, 0x83, 0xa7, 0x00, 0xfb, 0x01, 0xe0, 0x8f,+    0x3f, 0xe5, 0x81, 0xbf, 0xe0, 0xa1, 0x31, 0xe5,+    0x81, 0xb1, 0xc0, 0xe5, 0x17, 0x00, 0xe9, 0x02,+    0x60, 0x36, 0xe0, 0x58, 0xe5, 0x16, 0x20, 0x86,+    0x16, 0xe0, 0x02, 0xe5, 0x28, 0xc6, 0x96, 0x6f,+    0x64, 0x16, 0x0f, 0xe0, 0x02, 0xe9, 0x02, 0x00,+    0xcb, 0x00, 0xe5, 0x0d, 0x80, 0xe5, 0x0b, 0xe0,+    0x82, 0x28, 0xe1, 0x18, 0xe2, 0x18, 0xeb, 0x0f,+    0x76, 0xe0, 0x5d, 0xe5, 0x43, 0x60, 0x06, 0x05,+    0xe7, 0x2f, 0xc0, 0x66, 0xe4, 0x05, 0xe0, 0x38,+    0x24, 0x16, 0x04, 0x06, 0xe0, 0x03, 0x27, 0xe0,+    0x06, 0xe5, 0x97, 0x70, 0xe0, 0x00, 0xe5, 0x84,+    0x4e, 0xe0, 0x22, 0xe5, 0x01, 0xe0, 0xa2, 0x6f,+    0xe5, 0x80, 0x97, 0xe0, 0x29, 0x45, 0xe0, 0x09,+    0x65, 0xe0, 0x00, 0xe5, 0x81, 0x04, 0xe0, 0x88,+    0x7c, 0xe5, 0x63, 0x80, 0xe5, 0x05, 0x40, 0xe5,+    0x01, 0xc0, 0xe5, 0x02, 0x20, 0x0f, 0x26, 0x16,+    0x7b, 0xe0, 0x92, 0xd4, 0xef, 0x80, 0x6e, 0xe0,+    0x02, 0xef, 0x1f, 0x20, 0xef, 0x34, 0x27, 0x46,+    0x4f, 0xa7, 0xfb, 0x00, 0xe6, 0x00, 0x2f, 0xc6,+    0xef, 0x16, 0x66, 0xef, 0x33, 0xe0, 0x0f, 0xef,+    0x3a, 0x46, 0x0f, 0xe0, 0x80, 0x12, 0xeb, 0x0c,+    0xe0, 0x04, 0xef, 0x4f, 0xe0, 0x01, 0xeb, 0x11,+    0xe0, 0x7f, 0xe1, 0x12, 0xe2, 0x12, 0xe1, 0x12,+    0xc2, 0x00, 0xe2, 0x0a, 0xe1, 0x12, 0xe2, 0x12,+    0x01, 0x00, 0x21, 0x20, 0x01, 0x20, 0x21, 0x20,+    0x61, 0x00, 0xe1, 0x00, 0x62, 0x00, 0x02, 0x00,+    0xc2, 0x00, 0xe2, 0x03, 0xe1, 0x12, 0xe2, 0x12,+    0x21, 0x00, 0x61, 0x20, 0xe1, 0x00, 0x00, 0xc1,+    0x00, 0xe2, 0x12, 0x21, 0x00, 0x61, 0x00, 0x81,+    0x00, 0x01, 0x40, 0xc1, 0x00, 0xe2, 0x12, 0xe1,+    0x12, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x12, 0xe1,+    0x12, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x12, 0xe1,+    0x12, 0xe2, 0x12, 0xe1, 0x12, 0xe2, 0x14, 0x20,+    0xe1, 0x11, 0x0c, 0xe2, 0x11, 0x0c, 0xa2, 0xe1,+    0x11, 0x0c, 0xe2, 0x11, 0x0c, 0xa2, 0xe1, 0x11,+    0x0c, 0xe2, 0x11, 0x0c, 0xa2, 0xe1, 0x11, 0x0c,+    0xe2, 0x11, 0x0c, 0xa2, 0xe1, 0x11, 0x0c, 0xe2,+    0x11, 0x0c, 0xa2, 0x3f, 0x20, 0xe9, 0x2a, 0xef,+    0x81, 0x78, 0xe6, 0x2f, 0x6f, 0xe6, 0x2a, 0xef,+    0x00, 0x06, 0xef, 0x06, 0x06, 0x2f, 0x96, 0xe0,+    0x07, 0x86, 0x00, 0xe6, 0x07, 0xe0, 0x84, 0xc8,+    0xc6, 0x00, 0xe6, 0x09, 0x20, 0xc6, 0x00, 0x26,+    0x00, 0x86, 0xe0, 0x80, 0x4d, 0xe5, 0x25, 0x40,+    0xc6, 0xc4, 0x20, 0xe9, 0x02, 0x60, 0x05, 0x0f,+    0xe0, 0x80, 0xe8, 0xe5, 0x24, 0x66, 0xe9, 0x02,+    0x80, 0x0d, 0xe0, 0x84, 0x78, 0xe5, 0x80, 0x3d,+    0x20, 0xeb, 0x01, 0xc6, 0xe0, 0x21, 0xe1, 0x1a,+    0xe2, 0x1a, 0xc6, 0x04, 0x60, 0xe9, 0x02, 0x60,+    0x36, 0xe0, 0x82, 0x89, 0xeb, 0x33, 0x0f, 0x4b,+    0x0d, 0x6b, 0xe0, 0x44, 0xeb, 0x25, 0x0f, 0xeb,+    0x07, 0xe0, 0x80, 0x3a, 0x65, 0x00, 0xe5, 0x13,+    0x00, 0x25, 0x00, 0x05, 0x20, 0x05, 0x00, 0xe5,+    0x02, 0x00, 0x65, 0x00, 0x05, 0x00, 0x05, 0xa0,+    0x05, 0x60, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00,+    0x45, 0x00, 0x25, 0x00, 0x05, 0x20, 0x05, 0x00,+    0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00,+    0x25, 0x00, 0x05, 0x20, 0x65, 0x00, 0xc5, 0x00,+    0x65, 0x00, 0x65, 0x00, 0x05, 0x00, 0xe5, 0x02,+    0x00, 0xe5, 0x09, 0x80, 0x45, 0x00, 0x85, 0x00,+    0xe5, 0x09, 0xe0, 0x2c, 0x2c, 0xe0, 0x80, 0x86,+    0xef, 0x24, 0x60, 0xef, 0x5c, 0xe0, 0x04, 0xef,+    0x07, 0x20, 0xef, 0x07, 0x00, 0xef, 0x07, 0x00,+    0xef, 0x1d, 0xe0, 0x02, 0xeb, 0x05, 0xef, 0x80,+    0x19, 0xe0, 0x30, 0xef, 0x15, 0xe0, 0x05, 0xef,+    0x24, 0x60, 0xef, 0x01, 0xc0, 0x2f, 0xe0, 0x06,+    0xaf, 0xe0, 0x80, 0x12, 0xef, 0x80, 0x73, 0x8e,+    0xef, 0x82, 0x50, 0xe0, 0x00, 0xef, 0x05, 0x40,+    0xef, 0x05, 0x40, 0xef, 0x6c, 0xe0, 0x04, 0xef,+    0x51, 0xc0, 0xef, 0x04, 0xe0, 0x0c, 0xef, 0x04,+    0x60, 0xef, 0x30, 0xe0, 0x00, 0xef, 0x02, 0xa0,+    0xef, 0x20, 0xe0, 0x00, 0xef, 0x16, 0x20, 0x2f,+    0xe0, 0x46, 0xef, 0x71, 0x00, 0xef, 0x4a, 0x00,+    0xef, 0x7f, 0xe0, 0x04, 0xef, 0x06, 0x20, 0x8f,+    0x40, 0x4f, 0x80, 0xcf, 0xe0, 0x01, 0xef, 0x11,+    0xc0, 0xcf, 0xe0, 0x01, 0x4f, 0xe0, 0x05, 0xcf,+    0xe0, 0x21, 0xef, 0x80, 0x0b, 0x00, 0xef, 0x2f,+    0xe0, 0x1d, 0xe9, 0x02, 0xe0, 0x83, 0x7e, 0xe5,+    0xc0, 0x66, 0x56, 0xe0, 0x1a, 0xe5, 0x8f, 0xad,+    0xe0, 0x03, 0xe5, 0x80, 0x56, 0x20, 0xe5, 0x95,+    0xfa, 0xe0, 0x06, 0xe5, 0x9c, 0xa9, 0xe0, 0x8b,+    0x97, 0xe5, 0x81, 0x96, 0xe0, 0x85, 0x5a, 0xe5,+    0x92, 0xc3, 0xe0, 0xca, 0xac, 0x2e, 0x1b, 0xe0,+    0x16, 0xfb, 0x58, 0xe0, 0x78, 0xe6, 0x80, 0x68,+    0xe0, 0xc0, 0xbd, 0x88, 0xfd, 0xc0, 0xbf, 0x76,+    0x20, 0xfd, 0xc0, 0xbf, 0x76, 0x20,+};++typedef enum {+    UNICODE_SCRIPT_Unknown,+    UNICODE_SCRIPT_Adlam,+    UNICODE_SCRIPT_Ahom,+    UNICODE_SCRIPT_Anatolian_Hieroglyphs,+    UNICODE_SCRIPT_Arabic,+    UNICODE_SCRIPT_Armenian,+    UNICODE_SCRIPT_Avestan,+    UNICODE_SCRIPT_Balinese,+    UNICODE_SCRIPT_Bamum,+    UNICODE_SCRIPT_Bassa_Vah,+    UNICODE_SCRIPT_Batak,+    UNICODE_SCRIPT_Bengali,+    UNICODE_SCRIPT_Bhaiksuki,+    UNICODE_SCRIPT_Bopomofo,+    UNICODE_SCRIPT_Brahmi,+    UNICODE_SCRIPT_Braille,+    UNICODE_SCRIPT_Buginese,+    UNICODE_SCRIPT_Buhid,+    UNICODE_SCRIPT_Canadian_Aboriginal,+    UNICODE_SCRIPT_Carian,+    UNICODE_SCRIPT_Caucasian_Albanian,+    UNICODE_SCRIPT_Chakma,+    UNICODE_SCRIPT_Cham,+    UNICODE_SCRIPT_Cherokee,+    UNICODE_SCRIPT_Chorasmian,+    UNICODE_SCRIPT_Common,+    UNICODE_SCRIPT_Coptic,+    UNICODE_SCRIPT_Cuneiform,+    UNICODE_SCRIPT_Cypriot,+    UNICODE_SCRIPT_Cyrillic,+    UNICODE_SCRIPT_Deseret,+    UNICODE_SCRIPT_Devanagari,+    UNICODE_SCRIPT_Dives_Akuru,+    UNICODE_SCRIPT_Dogra,+    UNICODE_SCRIPT_Duployan,+    UNICODE_SCRIPT_Egyptian_Hieroglyphs,+    UNICODE_SCRIPT_Elbasan,+    UNICODE_SCRIPT_Elymaic,+    UNICODE_SCRIPT_Ethiopic,+    UNICODE_SCRIPT_Georgian,+    UNICODE_SCRIPT_Glagolitic,+    UNICODE_SCRIPT_Gothic,+    UNICODE_SCRIPT_Grantha,+    UNICODE_SCRIPT_Greek,+    UNICODE_SCRIPT_Gujarati,+    UNICODE_SCRIPT_Gunjala_Gondi,+    UNICODE_SCRIPT_Gurmukhi,+    UNICODE_SCRIPT_Han,+    UNICODE_SCRIPT_Hangul,+    UNICODE_SCRIPT_Hanifi_Rohingya,+    UNICODE_SCRIPT_Hanunoo,+    UNICODE_SCRIPT_Hatran,+    UNICODE_SCRIPT_Hebrew,+    UNICODE_SCRIPT_Hiragana,+    UNICODE_SCRIPT_Imperial_Aramaic,+    UNICODE_SCRIPT_Inherited,+    UNICODE_SCRIPT_Inscriptional_Pahlavi,+    UNICODE_SCRIPT_Inscriptional_Parthian,+    UNICODE_SCRIPT_Javanese,+    UNICODE_SCRIPT_Kaithi,+    UNICODE_SCRIPT_Kannada,+    UNICODE_SCRIPT_Katakana,+    UNICODE_SCRIPT_Kayah_Li,+    UNICODE_SCRIPT_Kharoshthi,+    UNICODE_SCRIPT_Khmer,+    UNICODE_SCRIPT_Khojki,+    UNICODE_SCRIPT_Khitan_Small_Script,+    UNICODE_SCRIPT_Khudawadi,+    UNICODE_SCRIPT_Lao,+    UNICODE_SCRIPT_Latin,+    UNICODE_SCRIPT_Lepcha,+    UNICODE_SCRIPT_Limbu,+    UNICODE_SCRIPT_Linear_A,+    UNICODE_SCRIPT_Linear_B,+    UNICODE_SCRIPT_Lisu,+    UNICODE_SCRIPT_Lycian,+    UNICODE_SCRIPT_Lydian,+    UNICODE_SCRIPT_Makasar,+    UNICODE_SCRIPT_Mahajani,+    UNICODE_SCRIPT_Malayalam,+    UNICODE_SCRIPT_Mandaic,+    UNICODE_SCRIPT_Manichaean,+    UNICODE_SCRIPT_Marchen,+    UNICODE_SCRIPT_Masaram_Gondi,+    UNICODE_SCRIPT_Medefaidrin,+    UNICODE_SCRIPT_Meetei_Mayek,+    UNICODE_SCRIPT_Mende_Kikakui,+    UNICODE_SCRIPT_Meroitic_Cursive,+    UNICODE_SCRIPT_Meroitic_Hieroglyphs,+    UNICODE_SCRIPT_Miao,+    UNICODE_SCRIPT_Modi,+    UNICODE_SCRIPT_Mongolian,+    UNICODE_SCRIPT_Mro,+    UNICODE_SCRIPT_Multani,+    UNICODE_SCRIPT_Myanmar,+    UNICODE_SCRIPT_Nabataean,+    UNICODE_SCRIPT_Nandinagari,+    UNICODE_SCRIPT_New_Tai_Lue,+    UNICODE_SCRIPT_Newa,+    UNICODE_SCRIPT_Nko,+    UNICODE_SCRIPT_Nushu,+    UNICODE_SCRIPT_Nyiakeng_Puachue_Hmong,+    UNICODE_SCRIPT_Ogham,+    UNICODE_SCRIPT_Ol_Chiki,+    UNICODE_SCRIPT_Old_Hungarian,+    UNICODE_SCRIPT_Old_Italic,+    UNICODE_SCRIPT_Old_North_Arabian,+    UNICODE_SCRIPT_Old_Permic,+    UNICODE_SCRIPT_Old_Persian,+    UNICODE_SCRIPT_Old_Sogdian,+    UNICODE_SCRIPT_Old_South_Arabian,+    UNICODE_SCRIPT_Old_Turkic,+    UNICODE_SCRIPT_Oriya,+    UNICODE_SCRIPT_Osage,+    UNICODE_SCRIPT_Osmanya,+    UNICODE_SCRIPT_Pahawh_Hmong,+    UNICODE_SCRIPT_Palmyrene,+    UNICODE_SCRIPT_Pau_Cin_Hau,+    UNICODE_SCRIPT_Phags_Pa,+    UNICODE_SCRIPT_Phoenician,+    UNICODE_SCRIPT_Psalter_Pahlavi,+    UNICODE_SCRIPT_Rejang,+    UNICODE_SCRIPT_Runic,+    UNICODE_SCRIPT_Samaritan,+    UNICODE_SCRIPT_Saurashtra,+    UNICODE_SCRIPT_Sharada,+    UNICODE_SCRIPT_Shavian,+    UNICODE_SCRIPT_Siddham,+    UNICODE_SCRIPT_SignWriting,+    UNICODE_SCRIPT_Sinhala,+    UNICODE_SCRIPT_Sogdian,+    UNICODE_SCRIPT_Sora_Sompeng,+    UNICODE_SCRIPT_Soyombo,+    UNICODE_SCRIPT_Sundanese,+    UNICODE_SCRIPT_Syloti_Nagri,+    UNICODE_SCRIPT_Syriac,+    UNICODE_SCRIPT_Tagalog,+    UNICODE_SCRIPT_Tagbanwa,+    UNICODE_SCRIPT_Tai_Le,+    UNICODE_SCRIPT_Tai_Tham,+    UNICODE_SCRIPT_Tai_Viet,+    UNICODE_SCRIPT_Takri,+    UNICODE_SCRIPT_Tamil,+    UNICODE_SCRIPT_Tangut,+    UNICODE_SCRIPT_Telugu,+    UNICODE_SCRIPT_Thaana,+    UNICODE_SCRIPT_Thai,+    UNICODE_SCRIPT_Tibetan,+    UNICODE_SCRIPT_Tifinagh,+    UNICODE_SCRIPT_Tirhuta,+    UNICODE_SCRIPT_Ugaritic,+    UNICODE_SCRIPT_Vai,+    UNICODE_SCRIPT_Wancho,+    UNICODE_SCRIPT_Warang_Citi,+    UNICODE_SCRIPT_Yezidi,+    UNICODE_SCRIPT_Yi,+    UNICODE_SCRIPT_Zanabazar_Square,+    UNICODE_SCRIPT_COUNT,+} UnicodeScriptEnum;++static const char unicode_script_name_table[] =+    "Adlam,Adlm"                  "\0"+    "Ahom,Ahom"                   "\0"+    "Anatolian_Hieroglyphs,Hluw"  "\0"+    "Arabic,Arab"                 "\0"+    "Armenian,Armn"               "\0"+    "Avestan,Avst"                "\0"+    "Balinese,Bali"               "\0"+    "Bamum,Bamu"                  "\0"+    "Bassa_Vah,Bass"              "\0"+    "Batak,Batk"                  "\0"+    "Bengali,Beng"                "\0"+    "Bhaiksuki,Bhks"              "\0"+    "Bopomofo,Bopo"               "\0"+    "Brahmi,Brah"                 "\0"+    "Braille,Brai"                "\0"+    "Buginese,Bugi"               "\0"+    "Buhid,Buhd"                  "\0"+    "Canadian_Aboriginal,Cans"    "\0"+    "Carian,Cari"                 "\0"+    "Caucasian_Albanian,Aghb"     "\0"+    "Chakma,Cakm"                 "\0"+    "Cham,Cham"                   "\0"+    "Cherokee,Cher"               "\0"+    "Chorasmian,Chrs"             "\0"+    "Common,Zyyy"                 "\0"+    "Coptic,Copt,Qaac"            "\0"+    "Cuneiform,Xsux"              "\0"+    "Cypriot,Cprt"                "\0"+    "Cyrillic,Cyrl"               "\0"+    "Deseret,Dsrt"                "\0"+    "Devanagari,Deva"             "\0"+    "Dives_Akuru,Diak"            "\0"+    "Dogra,Dogr"                  "\0"+    "Duployan,Dupl"               "\0"+    "Egyptian_Hieroglyphs,Egyp"   "\0"+    "Elbasan,Elba"                "\0"+    "Elymaic,Elym"                "\0"+    "Ethiopic,Ethi"               "\0"+    "Georgian,Geor"               "\0"+    "Glagolitic,Glag"             "\0"+    "Gothic,Goth"                 "\0"+    "Grantha,Gran"                "\0"+    "Greek,Grek"                  "\0"+    "Gujarati,Gujr"               "\0"+    "Gunjala_Gondi,Gong"          "\0"+    "Gurmukhi,Guru"               "\0"+    "Han,Hani"                    "\0"+    "Hangul,Hang"                 "\0"+    "Hanifi_Rohingya,Rohg"        "\0"+    "Hanunoo,Hano"                "\0"+    "Hatran,Hatr"                 "\0"+    "Hebrew,Hebr"                 "\0"+    "Hiragana,Hira"               "\0"+    "Imperial_Aramaic,Armi"       "\0"+    "Inherited,Zinh,Qaai"         "\0"+    "Inscriptional_Pahlavi,Phli"  "\0"+    "Inscriptional_Parthian,Prti" "\0"+    "Javanese,Java"               "\0"+    "Kaithi,Kthi"                 "\0"+    "Kannada,Knda"                "\0"+    "Katakana,Kana"               "\0"+    "Kayah_Li,Kali"               "\0"+    "Kharoshthi,Khar"             "\0"+    "Khmer,Khmr"                  "\0"+    "Khojki,Khoj"                 "\0"+    "Khitan_Small_Script,Kits"    "\0"+    "Khudawadi,Sind"              "\0"+    "Lao,Laoo"                    "\0"+    "Latin,Latn"                  "\0"+    "Lepcha,Lepc"                 "\0"+    "Limbu,Limb"                  "\0"+    "Linear_A,Lina"               "\0"+    "Linear_B,Linb"               "\0"+    "Lisu,Lisu"                   "\0"+    "Lycian,Lyci"                 "\0"+    "Lydian,Lydi"                 "\0"+    "Makasar,Maka"                "\0"+    "Mahajani,Mahj"               "\0"+    "Malayalam,Mlym"              "\0"+    "Mandaic,Mand"                "\0"+    "Manichaean,Mani"             "\0"+    "Marchen,Marc"                "\0"+    "Masaram_Gondi,Gonm"          "\0"+    "Medefaidrin,Medf"            "\0"+    "Meetei_Mayek,Mtei"           "\0"+    "Mende_Kikakui,Mend"          "\0"+    "Meroitic_Cursive,Merc"       "\0"+    "Meroitic_Hieroglyphs,Mero"   "\0"+    "Miao,Plrd"                   "\0"+    "Modi,Modi"                   "\0"+    "Mongolian,Mong"              "\0"+    "Mro,Mroo"                    "\0"+    "Multani,Mult"                "\0"+    "Myanmar,Mymr"                "\0"+    "Nabataean,Nbat"              "\0"+    "Nandinagari,Nand"            "\0"+    "New_Tai_Lue,Talu"            "\0"+    "Newa,Newa"                   "\0"+    "Nko,Nkoo"                    "\0"+    "Nushu,Nshu"                  "\0"+    "Nyiakeng_Puachue_Hmong,Hmnp" "\0"+    "Ogham,Ogam"                  "\0"+    "Ol_Chiki,Olck"               "\0"+    "Old_Hungarian,Hung"          "\0"+    "Old_Italic,Ital"             "\0"+    "Old_North_Arabian,Narb"      "\0"+    "Old_Permic,Perm"             "\0"+    "Old_Persian,Xpeo"            "\0"+    "Old_Sogdian,Sogo"            "\0"+    "Old_South_Arabian,Sarb"      "\0"+    "Old_Turkic,Orkh"             "\0"+    "Oriya,Orya"                  "\0"+    "Osage,Osge"                  "\0"+    "Osmanya,Osma"                "\0"+    "Pahawh_Hmong,Hmng"           "\0"+    "Palmyrene,Palm"              "\0"+    "Pau_Cin_Hau,Pauc"            "\0"+    "Phags_Pa,Phag"               "\0"+    "Phoenician,Phnx"             "\0"+    "Psalter_Pahlavi,Phlp"        "\0"+    "Rejang,Rjng"                 "\0"+    "Runic,Runr"                  "\0"+    "Samaritan,Samr"              "\0"+    "Saurashtra,Saur"             "\0"+    "Sharada,Shrd"                "\0"+    "Shavian,Shaw"                "\0"+    "Siddham,Sidd"                "\0"+    "SignWriting,Sgnw"            "\0"+    "Sinhala,Sinh"                "\0"+    "Sogdian,Sogd"                "\0"+    "Sora_Sompeng,Sora"           "\0"+    "Soyombo,Soyo"                "\0"+    "Sundanese,Sund"              "\0"+    "Syloti_Nagri,Sylo"           "\0"+    "Syriac,Syrc"                 "\0"+    "Tagalog,Tglg"                "\0"+    "Tagbanwa,Tagb"               "\0"+    "Tai_Le,Tale"                 "\0"+    "Tai_Tham,Lana"               "\0"+    "Tai_Viet,Tavt"               "\0"+    "Takri,Takr"                  "\0"+    "Tamil,Taml"                  "\0"+    "Tangut,Tang"                 "\0"+    "Telugu,Telu"                 "\0"+    "Thaana,Thaa"                 "\0"+    "Thai,Thai"                   "\0"+    "Tibetan,Tibt"                "\0"+    "Tifinagh,Tfng"               "\0"+    "Tirhuta,Tirh"                "\0"+    "Ugaritic,Ugar"               "\0"+    "Vai,Vaii"                    "\0"+    "Wancho,Wcho"                 "\0"+    "Warang_Citi,Wara"            "\0"+    "Yezidi,Yezi"                 "\0"+    "Yi,Yiii"                     "\0"+    "Zanabazar_Square,Zanb"       "\0"+;++static const uint8_t unicode_script_table[2609] = {+    0xc0, 0x19, 0x99, 0x45, 0x85, 0x19, 0x99, 0x45,+    0xae, 0x19, 0x80, 0x45, 0x8e, 0x19, 0x80, 0x45,+    0x84, 0x19, 0x96, 0x45, 0x80, 0x19, 0x9e, 0x45,+    0x80, 0x19, 0xe1, 0x60, 0x45, 0xa6, 0x19, 0x84,+    0x45, 0x84, 0x19, 0x81, 0x0d, 0x93, 0x19, 0xe0,+    0x0f, 0x37, 0x83, 0x2b, 0x80, 0x19, 0x82, 0x2b,+    0x01, 0x83, 0x2b, 0x80, 0x19, 0x80, 0x2b, 0x03,+    0x80, 0x2b, 0x80, 0x19, 0x80, 0x2b, 0x80, 0x19,+    0x82, 0x2b, 0x00, 0x80, 0x2b, 0x00, 0x93, 0x2b,+    0x00, 0xbe, 0x2b, 0x8d, 0x1a, 0x8f, 0x2b, 0xe0,+    0x24, 0x1d, 0x81, 0x37, 0xe0, 0x48, 0x1d, 0x00,+    0xa5, 0x05, 0x01, 0xb1, 0x05, 0x01, 0x82, 0x05,+    0x00, 0xb6, 0x34, 0x07, 0x9a, 0x34, 0x03, 0x85,+    0x34, 0x0a, 0x84, 0x04, 0x80, 0x19, 0x85, 0x04,+    0x80, 0x19, 0x8d, 0x04, 0x80, 0x19, 0x80, 0x04,+    0x00, 0x80, 0x04, 0x80, 0x19, 0x9f, 0x04, 0x80,+    0x19, 0x89, 0x04, 0x8a, 0x37, 0x99, 0x04, 0x80,+    0x37, 0xe0, 0x0b, 0x04, 0x80, 0x19, 0xa1, 0x04,+    0x8d, 0x87, 0x00, 0xbb, 0x87, 0x01, 0x82, 0x87,+    0xaf, 0x04, 0xb1, 0x91, 0x0d, 0xba, 0x63, 0x01,+    0x82, 0x63, 0xad, 0x7b, 0x01, 0x8e, 0x7b, 0x00,+    0x9b, 0x50, 0x01, 0x80, 0x50, 0x00, 0x8a, 0x87,+    0x34, 0x94, 0x04, 0x00, 0x91, 0x04, 0x0a, 0x8e,+    0x04, 0x80, 0x19, 0x9c, 0x04, 0xd0, 0x1f, 0x83,+    0x37, 0x8e, 0x1f, 0x81, 0x19, 0x99, 0x1f, 0x83,+    0x0b, 0x00, 0x87, 0x0b, 0x01, 0x81, 0x0b, 0x01,+    0x95, 0x0b, 0x00, 0x86, 0x0b, 0x00, 0x80, 0x0b,+    0x02, 0x83, 0x0b, 0x01, 0x88, 0x0b, 0x01, 0x81,+    0x0b, 0x01, 0x83, 0x0b, 0x07, 0x80, 0x0b, 0x03,+    0x81, 0x0b, 0x00, 0x84, 0x0b, 0x01, 0x98, 0x0b,+    0x01, 0x82, 0x2e, 0x00, 0x85, 0x2e, 0x03, 0x81,+    0x2e, 0x01, 0x95, 0x2e, 0x00, 0x86, 0x2e, 0x00,+    0x81, 0x2e, 0x00, 0x81, 0x2e, 0x00, 0x81, 0x2e,+    0x01, 0x80, 0x2e, 0x00, 0x84, 0x2e, 0x03, 0x81,+    0x2e, 0x01, 0x82, 0x2e, 0x02, 0x80, 0x2e, 0x06,+    0x83, 0x2e, 0x00, 0x80, 0x2e, 0x06, 0x90, 0x2e,+    0x09, 0x82, 0x2c, 0x00, 0x88, 0x2c, 0x00, 0x82,+    0x2c, 0x00, 0x95, 0x2c, 0x00, 0x86, 0x2c, 0x00,+    0x81, 0x2c, 0x00, 0x84, 0x2c, 0x01, 0x89, 0x2c,+    0x00, 0x82, 0x2c, 0x00, 0x82, 0x2c, 0x01, 0x80,+    0x2c, 0x0e, 0x83, 0x2c, 0x01, 0x8b, 0x2c, 0x06,+    0x86, 0x2c, 0x00, 0x82, 0x70, 0x00, 0x87, 0x70,+    0x01, 0x81, 0x70, 0x01, 0x95, 0x70, 0x00, 0x86,+    0x70, 0x00, 0x81, 0x70, 0x00, 0x84, 0x70, 0x01,+    0x88, 0x70, 0x01, 0x81, 0x70, 0x01, 0x82, 0x70,+    0x06, 0x82, 0x70, 0x03, 0x81, 0x70, 0x00, 0x84,+    0x70, 0x01, 0x91, 0x70, 0x09, 0x81, 0x8e, 0x00,+    0x85, 0x8e, 0x02, 0x82, 0x8e, 0x00, 0x83, 0x8e,+    0x02, 0x81, 0x8e, 0x00, 0x80, 0x8e, 0x00, 0x81,+    0x8e, 0x02, 0x81, 0x8e, 0x02, 0x82, 0x8e, 0x02,+    0x8b, 0x8e, 0x03, 0x84, 0x8e, 0x02, 0x82, 0x8e,+    0x00, 0x83, 0x8e, 0x01, 0x80, 0x8e, 0x05, 0x80,+    0x8e, 0x0d, 0x94, 0x8e, 0x04, 0x8c, 0x90, 0x00,+    0x82, 0x90, 0x00, 0x96, 0x90, 0x00, 0x8f, 0x90,+    0x02, 0x87, 0x90, 0x00, 0x82, 0x90, 0x00, 0x83,+    0x90, 0x06, 0x81, 0x90, 0x00, 0x82, 0x90, 0x04,+    0x83, 0x90, 0x01, 0x89, 0x90, 0x06, 0x88, 0x90,+    0x8c, 0x3c, 0x00, 0x82, 0x3c, 0x00, 0x96, 0x3c,+    0x00, 0x89, 0x3c, 0x00, 0x84, 0x3c, 0x01, 0x88,+    0x3c, 0x00, 0x82, 0x3c, 0x00, 0x83, 0x3c, 0x06,+    0x81, 0x3c, 0x06, 0x80, 0x3c, 0x00, 0x83, 0x3c,+    0x01, 0x89, 0x3c, 0x00, 0x81, 0x3c, 0x0c, 0x8c,+    0x4f, 0x00, 0x82, 0x4f, 0x00, 0xb2, 0x4f, 0x00,+    0x82, 0x4f, 0x00, 0x85, 0x4f, 0x03, 0x8f, 0x4f,+    0x01, 0x99, 0x4f, 0x00, 0x82, 0x81, 0x00, 0x91,+    0x81, 0x02, 0x97, 0x81, 0x00, 0x88, 0x81, 0x00,+    0x80, 0x81, 0x01, 0x86, 0x81, 0x02, 0x80, 0x81,+    0x03, 0x85, 0x81, 0x00, 0x80, 0x81, 0x00, 0x87,+    0x81, 0x05, 0x89, 0x81, 0x01, 0x82, 0x81, 0x0b,+    0xb9, 0x92, 0x03, 0x80, 0x19, 0x9b, 0x92, 0x24,+    0x81, 0x44, 0x00, 0x80, 0x44, 0x00, 0x84, 0x44,+    0x00, 0x97, 0x44, 0x00, 0x80, 0x44, 0x00, 0x96,+    0x44, 0x01, 0x84, 0x44, 0x00, 0x80, 0x44, 0x00,+    0x85, 0x44, 0x01, 0x89, 0x44, 0x01, 0x83, 0x44,+    0x1f, 0xc7, 0x93, 0x00, 0xa3, 0x93, 0x03, 0xa6,+    0x93, 0x00, 0xa3, 0x93, 0x00, 0x8e, 0x93, 0x00,+    0x86, 0x93, 0x83, 0x19, 0x81, 0x93, 0x24, 0xe0,+    0x3f, 0x5e, 0xa5, 0x27, 0x00, 0x80, 0x27, 0x04,+    0x80, 0x27, 0x01, 0xaa, 0x27, 0x80, 0x19, 0x83,+    0x27, 0xe0, 0x9f, 0x30, 0xc8, 0x26, 0x00, 0x83,+    0x26, 0x01, 0x86, 0x26, 0x00, 0x80, 0x26, 0x00,+    0x83, 0x26, 0x01, 0xa8, 0x26, 0x00, 0x83, 0x26,+    0x01, 0xa0, 0x26, 0x00, 0x83, 0x26, 0x01, 0x86,+    0x26, 0x00, 0x80, 0x26, 0x00, 0x83, 0x26, 0x01,+    0x8e, 0x26, 0x00, 0xb8, 0x26, 0x00, 0x83, 0x26,+    0x01, 0xc2, 0x26, 0x01, 0x9f, 0x26, 0x02, 0x99,+    0x26, 0x05, 0xd5, 0x17, 0x01, 0x85, 0x17, 0x01,+    0xe2, 0x1f, 0x12, 0x9c, 0x66, 0x02, 0xca, 0x7a,+    0x82, 0x19, 0x8a, 0x7a, 0x06, 0x8c, 0x88, 0x00,+    0x86, 0x88, 0x0a, 0x94, 0x32, 0x81, 0x19, 0x08,+    0x93, 0x11, 0x0b, 0x8c, 0x89, 0x00, 0x82, 0x89,+    0x00, 0x81, 0x89, 0x0b, 0xdd, 0x40, 0x01, 0x89,+    0x40, 0x05, 0x89, 0x40, 0x05, 0x81, 0x5b, 0x81,+    0x19, 0x80, 0x5b, 0x80, 0x19, 0x88, 0x5b, 0x00,+    0x89, 0x5b, 0x05, 0xd8, 0x5b, 0x06, 0xaa, 0x5b,+    0x04, 0xc5, 0x12, 0x09, 0x9e, 0x47, 0x00, 0x8b,+    0x47, 0x03, 0x8b, 0x47, 0x03, 0x80, 0x47, 0x02,+    0x8b, 0x47, 0x9d, 0x8a, 0x01, 0x84, 0x8a, 0x0a,+    0xab, 0x61, 0x03, 0x99, 0x61, 0x05, 0x8a, 0x61,+    0x02, 0x81, 0x61, 0x9f, 0x40, 0x9b, 0x10, 0x01,+    0x81, 0x10, 0xbe, 0x8b, 0x00, 0x9c, 0x8b, 0x01,+    0x8a, 0x8b, 0x05, 0x89, 0x8b, 0x05, 0x8d, 0x8b,+    0x01, 0x90, 0x37, 0x3e, 0xcb, 0x07, 0x03, 0xac,+    0x07, 0x02, 0xbf, 0x85, 0xb3, 0x0a, 0x07, 0x83,+    0x0a, 0xb7, 0x46, 0x02, 0x8e, 0x46, 0x02, 0x82,+    0x46, 0xaf, 0x67, 0x88, 0x1d, 0x06, 0xaa, 0x27,+    0x01, 0x82, 0x27, 0x87, 0x85, 0x07, 0x82, 0x37,+    0x80, 0x19, 0x8c, 0x37, 0x80, 0x19, 0x86, 0x37,+    0x83, 0x19, 0x80, 0x37, 0x85, 0x19, 0x80, 0x37,+    0x82, 0x19, 0x81, 0x37, 0x80, 0x19, 0x04, 0xa5,+    0x45, 0x84, 0x2b, 0x80, 0x1d, 0xb0, 0x45, 0x84,+    0x2b, 0x83, 0x45, 0x84, 0x2b, 0x8c, 0x45, 0x80,+    0x1d, 0xc5, 0x45, 0x80, 0x2b, 0xb9, 0x37, 0x00,+    0x84, 0x37, 0xe0, 0x9f, 0x45, 0x95, 0x2b, 0x01,+    0x85, 0x2b, 0x01, 0xa5, 0x2b, 0x01, 0x85, 0x2b,+    0x01, 0x87, 0x2b, 0x00, 0x80, 0x2b, 0x00, 0x80,+    0x2b, 0x00, 0x80, 0x2b, 0x00, 0x9e, 0x2b, 0x01,+    0xb4, 0x2b, 0x00, 0x8e, 0x2b, 0x00, 0x8d, 0x2b,+    0x01, 0x85, 0x2b, 0x00, 0x92, 0x2b, 0x01, 0x82,+    0x2b, 0x00, 0x88, 0x2b, 0x00, 0x8b, 0x19, 0x81,+    0x37, 0xd6, 0x19, 0x00, 0x8a, 0x19, 0x80, 0x45,+    0x01, 0x8a, 0x19, 0x80, 0x45, 0x8e, 0x19, 0x00,+    0x8c, 0x45, 0x02, 0x9f, 0x19, 0x0f, 0xa0, 0x37,+    0x0e, 0xa5, 0x19, 0x80, 0x2b, 0x82, 0x19, 0x81,+    0x45, 0x85, 0x19, 0x80, 0x45, 0x9a, 0x19, 0x80,+    0x45, 0x90, 0x19, 0xa8, 0x45, 0x82, 0x19, 0x03,+    0xe2, 0x36, 0x19, 0x18, 0x8a, 0x19, 0x14, 0xe3,+    0x3f, 0x19, 0xe0, 0x9f, 0x0f, 0xe2, 0x13, 0x19,+    0x01, 0x9f, 0x19, 0x00, 0xe0, 0x08, 0x19, 0xae,+    0x28, 0x00, 0xae, 0x28, 0x00, 0x9f, 0x45, 0xe0,+    0x13, 0x1a, 0x04, 0x86, 0x1a, 0xa5, 0x27, 0x00,+    0x80, 0x27, 0x04, 0x80, 0x27, 0x01, 0xb7, 0x94,+    0x06, 0x81, 0x94, 0x0d, 0x80, 0x94, 0x96, 0x26,+    0x08, 0x86, 0x26, 0x00, 0x86, 0x26, 0x00, 0x86,+    0x26, 0x00, 0x86, 0x26, 0x00, 0x86, 0x26, 0x00,+    0x86, 0x26, 0x00, 0x86, 0x26, 0x00, 0x86, 0x26,+    0x00, 0x9f, 0x1d, 0xd2, 0x19, 0x2c, 0x99, 0x2f,+    0x00, 0xd8, 0x2f, 0x0b, 0xe0, 0x75, 0x2f, 0x19,+    0x8b, 0x19, 0x03, 0x84, 0x19, 0x80, 0x2f, 0x80,+    0x19, 0x80, 0x2f, 0x98, 0x19, 0x88, 0x2f, 0x83,+    0x37, 0x81, 0x30, 0x87, 0x19, 0x83, 0x2f, 0x83,+    0x19, 0x00, 0xd5, 0x35, 0x01, 0x81, 0x37, 0x81,+    0x19, 0x82, 0x35, 0x80, 0x19, 0xd9, 0x3d, 0x81,+    0x19, 0x82, 0x3d, 0x04, 0xaa, 0x0d, 0x00, 0xdd,+    0x30, 0x00, 0x8f, 0x19, 0x9f, 0x0d, 0xa3, 0x19,+    0x0b, 0x8f, 0x3d, 0x9e, 0x30, 0x00, 0xbf, 0x19,+    0x9e, 0x30, 0xd0, 0x19, 0xae, 0x3d, 0x80, 0x19,+    0xd7, 0x3d, 0xe0, 0x47, 0x19, 0xf0, 0x09, 0x5f,+    0x2f, 0xbf, 0x19, 0xf0, 0x41, 0x9c, 0x2f, 0x02,+    0xe4, 0x2c, 0x9b, 0x02, 0xb6, 0x9b, 0x08, 0xaf,+    0x4a, 0xe0, 0xcb, 0x97, 0x13, 0xdf, 0x1d, 0xd7,+    0x08, 0x07, 0xa1, 0x19, 0xe0, 0x05, 0x45, 0x82,+    0x19, 0xb4, 0x45, 0x01, 0x88, 0x45, 0x29, 0x8a,+    0x45, 0xac, 0x86, 0x02, 0x89, 0x19, 0x05, 0xb7,+    0x76, 0x07, 0xc5, 0x7c, 0x07, 0x8b, 0x7c, 0x05,+    0x9f, 0x1f, 0xad, 0x3e, 0x80, 0x19, 0x80, 0x3e,+    0xa3, 0x79, 0x0a, 0x80, 0x79, 0x9c, 0x30, 0x02,+    0xcd, 0x3a, 0x00, 0x80, 0x19, 0x89, 0x3a, 0x03,+    0x81, 0x3a, 0x9e, 0x5e, 0x00, 0xb6, 0x16, 0x08,+    0x8d, 0x16, 0x01, 0x89, 0x16, 0x01, 0x83, 0x16,+    0x9f, 0x5e, 0xc2, 0x8c, 0x17, 0x84, 0x8c, 0x96,+    0x55, 0x09, 0x85, 0x26, 0x01, 0x85, 0x26, 0x01,+    0x85, 0x26, 0x08, 0x86, 0x26, 0x00, 0x86, 0x26,+    0x00, 0xaa, 0x45, 0x80, 0x19, 0x88, 0x45, 0x80,+    0x2b, 0x83, 0x45, 0x81, 0x19, 0x03, 0xcf, 0x17,+    0xad, 0x55, 0x01, 0x89, 0x55, 0x05, 0xf0, 0x1b,+    0x43, 0x30, 0x0b, 0x96, 0x30, 0x03, 0xb0, 0x30,+    0x70, 0x10, 0xa3, 0xe1, 0x0d, 0x2f, 0x01, 0xe0,+    0x09, 0x2f, 0x25, 0x86, 0x45, 0x0b, 0x84, 0x05,+    0x04, 0x99, 0x34, 0x00, 0x84, 0x34, 0x00, 0x80,+    0x34, 0x00, 0x81, 0x34, 0x00, 0x81, 0x34, 0x00,+    0x89, 0x34, 0xe0, 0x11, 0x04, 0x10, 0xe1, 0x0a,+    0x04, 0x81, 0x19, 0x0f, 0xbf, 0x04, 0x01, 0xb5,+    0x04, 0x27, 0x8d, 0x04, 0x01, 0x8f, 0x37, 0x89,+    0x19, 0x05, 0x8d, 0x37, 0x81, 0x1d, 0xa2, 0x19,+    0x00, 0x92, 0x19, 0x00, 0x83, 0x19, 0x03, 0x84,+    0x04, 0x00, 0xe0, 0x26, 0x04, 0x01, 0x80, 0x19,+    0x00, 0x9f, 0x19, 0x99, 0x45, 0x85, 0x19, 0x99,+    0x45, 0x8a, 0x19, 0x89, 0x3d, 0x80, 0x19, 0xac,+    0x3d, 0x81, 0x19, 0x9e, 0x30, 0x02, 0x85, 0x30,+    0x01, 0x85, 0x30, 0x01, 0x85, 0x30, 0x01, 0x82,+    0x30, 0x02, 0x86, 0x19, 0x00, 0x86, 0x19, 0x09,+    0x84, 0x19, 0x01, 0x8b, 0x49, 0x00, 0x99, 0x49,+    0x00, 0x92, 0x49, 0x00, 0x81, 0x49, 0x00, 0x8e,+    0x49, 0x01, 0x8d, 0x49, 0x21, 0xe0, 0x1a, 0x49,+    0x04, 0x82, 0x19, 0x03, 0xac, 0x19, 0x02, 0x88,+    0x19, 0xce, 0x2b, 0x00, 0x8c, 0x19, 0x02, 0x80,+    0x2b, 0x2e, 0xac, 0x19, 0x80, 0x37, 0x60, 0x21,+    0x9c, 0x4b, 0x02, 0xb0, 0x13, 0x0e, 0x80, 0x37,+    0x9a, 0x19, 0x03, 0xa3, 0x69, 0x08, 0x82, 0x69,+    0x9a, 0x29, 0x04, 0xaa, 0x6b, 0x04, 0x9d, 0x96,+    0x00, 0x80, 0x96, 0xa3, 0x6c, 0x03, 0x8d, 0x6c,+    0x29, 0xcf, 0x1e, 0xaf, 0x7e, 0x9d, 0x72, 0x01,+    0x89, 0x72, 0x05, 0xa3, 0x71, 0x03, 0xa3, 0x71,+    0x03, 0xa7, 0x24, 0x07, 0xb3, 0x14, 0x0a, 0x80,+    0x14, 0x60, 0x2f, 0xe0, 0xd6, 0x48, 0x08, 0x95,+    0x48, 0x09, 0x87, 0x48, 0x60, 0x37, 0x85, 0x1c,+    0x01, 0x80, 0x1c, 0x00, 0xab, 0x1c, 0x00, 0x81,+    0x1c, 0x02, 0x80, 0x1c, 0x01, 0x80, 0x1c, 0x95,+    0x36, 0x00, 0x88, 0x36, 0x9f, 0x74, 0x9e, 0x5f,+    0x07, 0x88, 0x5f, 0x2f, 0x92, 0x33, 0x00, 0x81,+    0x33, 0x04, 0x84, 0x33, 0x9b, 0x77, 0x02, 0x80,+    0x77, 0x99, 0x4c, 0x04, 0x80, 0x4c, 0x3f, 0x9f,+    0x58, 0x97, 0x57, 0x03, 0x93, 0x57, 0x01, 0xad,+    0x57, 0x83, 0x3f, 0x00, 0x81, 0x3f, 0x04, 0x87,+    0x3f, 0x00, 0x82, 0x3f, 0x00, 0x9c, 0x3f, 0x01,+    0x82, 0x3f, 0x03, 0x89, 0x3f, 0x06, 0x88, 0x3f,+    0x06, 0x9f, 0x6e, 0x9f, 0x6a, 0x1f, 0xa6, 0x51,+    0x03, 0x8b, 0x51, 0x08, 0xb5, 0x06, 0x02, 0x86,+    0x06, 0x95, 0x39, 0x01, 0x87, 0x39, 0x92, 0x38,+    0x04, 0x87, 0x38, 0x91, 0x78, 0x06, 0x83, 0x78,+    0x0b, 0x86, 0x78, 0x4f, 0xc8, 0x6f, 0x36, 0xb2,+    0x68, 0x0c, 0xb2, 0x68, 0x06, 0x85, 0x68, 0xa7,+    0x31, 0x07, 0x89, 0x31, 0x60, 0xc5, 0x9e, 0x04,+    0x00, 0xa9, 0x9a, 0x00, 0x82, 0x9a, 0x01, 0x81,+    0x9a, 0x4d, 0xa7, 0x6d, 0x07, 0xa9, 0x82, 0x55,+    0x9b, 0x18, 0x13, 0x96, 0x25, 0x08, 0xcd, 0x0e,+    0x03, 0x9d, 0x0e, 0x0e, 0x80, 0x0e, 0xc1, 0x3b,+    0x0a, 0x80, 0x3b, 0x01, 0x98, 0x83, 0x06, 0x89,+    0x83, 0x05, 0xb4, 0x15, 0x00, 0x91, 0x15, 0x07,+    0xa6, 0x4e, 0x08, 0xdf, 0x7d, 0x00, 0x93, 0x81,+    0x0a, 0x91, 0x41, 0x00, 0xab, 0x41, 0x40, 0x86,+    0x5d, 0x00, 0x80, 0x5d, 0x00, 0x83, 0x5d, 0x00,+    0x8e, 0x5d, 0x00, 0x8a, 0x5d, 0x05, 0xba, 0x43,+    0x04, 0x89, 0x43, 0x05, 0x83, 0x2a, 0x00, 0x87,+    0x2a, 0x01, 0x81, 0x2a, 0x01, 0x95, 0x2a, 0x00,+    0x86, 0x2a, 0x00, 0x81, 0x2a, 0x00, 0x84, 0x2a,+    0x00, 0x80, 0x37, 0x88, 0x2a, 0x01, 0x81, 0x2a,+    0x01, 0x82, 0x2a, 0x01, 0x80, 0x2a, 0x05, 0x80,+    0x2a, 0x04, 0x86, 0x2a, 0x01, 0x86, 0x2a, 0x02,+    0x84, 0x2a, 0x60, 0x2a, 0xdb, 0x62, 0x00, 0x84,+    0x62, 0x1d, 0xc7, 0x95, 0x07, 0x89, 0x95, 0x60,+    0x45, 0xb5, 0x7f, 0x01, 0xa5, 0x7f, 0x21, 0xc4,+    0x5a, 0x0a, 0x89, 0x5a, 0x05, 0x8c, 0x5b, 0x12,+    0xb8, 0x8d, 0x06, 0x89, 0x8d, 0x35, 0x9a, 0x02,+    0x01, 0x8e, 0x02, 0x03, 0x8f, 0x02, 0x60, 0x5f,+    0xbb, 0x21, 0x60, 0x03, 0xd2, 0x99, 0x0b, 0x80,+    0x99, 0x86, 0x20, 0x01, 0x80, 0x20, 0x01, 0x87,+    0x20, 0x00, 0x81, 0x20, 0x00, 0x9d, 0x20, 0x00,+    0x81, 0x20, 0x01, 0x8b, 0x20, 0x08, 0x89, 0x20,+    0x45, 0x87, 0x60, 0x01, 0xad, 0x60, 0x01, 0x8a,+    0x60, 0x1a, 0xc7, 0x9c, 0x07, 0xd2, 0x84, 0x1c,+    0xb8, 0x75, 0x60, 0xa6, 0x88, 0x0c, 0x00, 0xac,+    0x0c, 0x00, 0x8d, 0x0c, 0x09, 0x9c, 0x0c, 0x02,+    0x9f, 0x52, 0x01, 0x95, 0x52, 0x00, 0x8d, 0x52,+    0x48, 0x86, 0x53, 0x00, 0x81, 0x53, 0x00, 0xab,+    0x53, 0x02, 0x80, 0x53, 0x00, 0x81, 0x53, 0x00,+    0x88, 0x53, 0x07, 0x89, 0x53, 0x05, 0x85, 0x2d,+    0x00, 0x81, 0x2d, 0x00, 0xa4, 0x2d, 0x00, 0x81,+    0x2d, 0x00, 0x85, 0x2d, 0x06, 0x89, 0x2d, 0x60,+    0xd5, 0x98, 0x4d, 0x60, 0x56, 0x80, 0x4a, 0x0e,+    0xb1, 0x8e, 0x0c, 0x80, 0x8e, 0xe3, 0x39, 0x1b,+    0x60, 0x05, 0xe0, 0x0e, 0x1b, 0x00, 0x84, 0x1b,+    0x0a, 0xe0, 0x63, 0x1b, 0x6a, 0x5b, 0xe3, 0xce,+    0x23, 0x00, 0x88, 0x23, 0x6f, 0x66, 0xe1, 0xe6,+    0x03, 0x70, 0x11, 0x58, 0xe1, 0xd8, 0x08, 0x06,+    0x9e, 0x5c, 0x00, 0x89, 0x5c, 0x03, 0x81, 0x5c,+    0x5f, 0x9d, 0x09, 0x01, 0x85, 0x09, 0x09, 0xc5,+    0x73, 0x09, 0x89, 0x73, 0x00, 0x86, 0x73, 0x00,+    0x94, 0x73, 0x04, 0x92, 0x73, 0x62, 0x4f, 0xda,+    0x54, 0x60, 0x04, 0xca, 0x59, 0x03, 0xb8, 0x59,+    0x06, 0x90, 0x59, 0x3f, 0x80, 0x8f, 0x80, 0x64,+    0x81, 0x19, 0x80, 0x42, 0x0a, 0x81, 0x2f, 0x0d,+    0xf0, 0x07, 0x97, 0x8f, 0x07, 0xe2, 0x9f, 0x8f,+    0xe1, 0x75, 0x42, 0x29, 0x88, 0x8f, 0x70, 0x12,+    0x96, 0x80, 0x3d, 0xe0, 0xbd, 0x35, 0x30, 0x82,+    0x35, 0x10, 0x83, 0x3d, 0x07, 0xe1, 0x2b, 0x64,+    0x68, 0xa3, 0xe0, 0x0a, 0x22, 0x04, 0x8c, 0x22,+    0x02, 0x88, 0x22, 0x06, 0x89, 0x22, 0x01, 0x83,+    0x22, 0x83, 0x19, 0x70, 0x02, 0xfb, 0xe0, 0x95,+    0x19, 0x09, 0xa6, 0x19, 0x01, 0xbd, 0x19, 0x82,+    0x37, 0x90, 0x19, 0x87, 0x37, 0x81, 0x19, 0x86,+    0x37, 0x9d, 0x19, 0x83, 0x37, 0xba, 0x19, 0x16,+    0xc5, 0x2b, 0x60, 0x39, 0x93, 0x19, 0x0b, 0xd6,+    0x19, 0x08, 0x98, 0x19, 0x60, 0x26, 0xd4, 0x19,+    0x00, 0xc6, 0x19, 0x00, 0x81, 0x19, 0x01, 0x80,+    0x19, 0x01, 0x81, 0x19, 0x01, 0x83, 0x19, 0x00,+    0x8b, 0x19, 0x00, 0x80, 0x19, 0x00, 0x86, 0x19,+    0x00, 0xc0, 0x19, 0x00, 0x83, 0x19, 0x01, 0x87,+    0x19, 0x00, 0x86, 0x19, 0x00, 0x9b, 0x19, 0x00,+    0x83, 0x19, 0x00, 0x84, 0x19, 0x00, 0x80, 0x19,+    0x02, 0x86, 0x19, 0x00, 0xe0, 0xf3, 0x19, 0x01,+    0xe0, 0xc3, 0x19, 0x01, 0xb1, 0x19, 0xe2, 0x2b,+    0x80, 0x0e, 0x84, 0x80, 0x00, 0x8e, 0x80, 0x64,+    0xef, 0x86, 0x28, 0x00, 0x90, 0x28, 0x01, 0x86,+    0x28, 0x00, 0x81, 0x28, 0x00, 0x84, 0x28, 0x60,+    0x74, 0xac, 0x65, 0x02, 0x8d, 0x65, 0x01, 0x89,+    0x65, 0x03, 0x81, 0x65, 0x61, 0x0f, 0xb9, 0x98,+    0x04, 0x80, 0x98, 0x64, 0x9f, 0xe0, 0x64, 0x56,+    0x01, 0x8f, 0x56, 0x28, 0xcb, 0x01, 0x03, 0x89,+    0x01, 0x03, 0x81, 0x01, 0x62, 0xb0, 0xc3, 0x19,+    0x4b, 0xbc, 0x19, 0x60, 0x61, 0x83, 0x04, 0x00,+    0x9a, 0x04, 0x00, 0x81, 0x04, 0x00, 0x80, 0x04,+    0x01, 0x80, 0x04, 0x00, 0x89, 0x04, 0x00, 0x83,+    0x04, 0x00, 0x80, 0x04, 0x00, 0x80, 0x04, 0x05,+    0x80, 0x04, 0x03, 0x80, 0x04, 0x00, 0x80, 0x04,+    0x00, 0x80, 0x04, 0x00, 0x82, 0x04, 0x00, 0x81,+    0x04, 0x00, 0x80, 0x04, 0x01, 0x80, 0x04, 0x00,+    0x80, 0x04, 0x00, 0x80, 0x04, 0x00, 0x80, 0x04,+    0x00, 0x80, 0x04, 0x00, 0x81, 0x04, 0x00, 0x80,+    0x04, 0x01, 0x83, 0x04, 0x00, 0x86, 0x04, 0x00,+    0x83, 0x04, 0x00, 0x83, 0x04, 0x00, 0x80, 0x04,+    0x00, 0x89, 0x04, 0x00, 0x90, 0x04, 0x04, 0x82,+    0x04, 0x00, 0x84, 0x04, 0x00, 0x90, 0x04, 0x33,+    0x81, 0x04, 0x60, 0xad, 0xab, 0x19, 0x03, 0xe0,+    0x03, 0x19, 0x0b, 0x8e, 0x19, 0x01, 0x8e, 0x19,+    0x00, 0x8e, 0x19, 0x00, 0xa4, 0x19, 0x09, 0xe0,+    0x4d, 0x19, 0x37, 0x99, 0x19, 0x80, 0x35, 0x81,+    0x19, 0x0c, 0xab, 0x19, 0x03, 0x88, 0x19, 0x06,+    0x81, 0x19, 0x0d, 0x85, 0x19, 0x60, 0x39, 0xe3,+    0x77, 0x19, 0x07, 0x8c, 0x19, 0x02, 0x8c, 0x19,+    0x02, 0xe0, 0x13, 0x19, 0x0b, 0xd8, 0x19, 0x06,+    0x8b, 0x19, 0x13, 0x8b, 0x19, 0x03, 0xb7, 0x19,+    0x07, 0x89, 0x19, 0x05, 0xa7, 0x19, 0x07, 0x9d,+    0x19, 0x01, 0x81, 0x19, 0x4d, 0xe0, 0x18, 0x19,+    0x00, 0xd1, 0x19, 0x00, 0xe0, 0x26, 0x19, 0x0b,+    0x8d, 0x19, 0x01, 0x84, 0x19, 0x02, 0x82, 0x19,+    0x04, 0x86, 0x19, 0x08, 0x98, 0x19, 0x06, 0x86,+    0x19, 0x08, 0x82, 0x19, 0x0c, 0x86, 0x19, 0x28,+    0xe0, 0x32, 0x19, 0x00, 0xb6, 0x19, 0x24, 0x89,+    0x19, 0x63, 0xa5, 0xf0, 0x96, 0x7d, 0x2f, 0x21,+    0xef, 0xd4, 0x2f, 0x0a, 0xe0, 0x7d, 0x2f, 0x01,+    0xf0, 0x06, 0x21, 0x2f, 0x0d, 0xf0, 0x0c, 0xd0,+    0x2f, 0x6b, 0xbe, 0xe1, 0xbd, 0x2f, 0x65, 0x81,+    0xf0, 0x02, 0xea, 0x2f, 0x7a, 0xdc, 0x55, 0x80,+    0x19, 0x1d, 0xdf, 0x19, 0x60, 0x1f, 0xe0, 0x8f,+    0x37,+};++static const uint8_t unicode_script_ext_table[799] = {+    0x82, 0xc1, 0x00, 0x00, 0x01, 0x2b, 0x01, 0x00,+    0x00, 0x01, 0x2b, 0x1c, 0x00, 0x0c, 0x01, 0x45,+    0x80, 0x92, 0x00, 0x00, 0x02, 0x1d, 0x6b, 0x00,+    0x02, 0x1d, 0x28, 0x01, 0x02, 0x1d, 0x45, 0x00,+    0x02, 0x1d, 0x28, 0x81, 0x03, 0x00, 0x00, 0x05,+    0x04, 0x31, 0x87, 0x91, 0x9a, 0x0d, 0x00, 0x00,+    0x05, 0x04, 0x31, 0x87, 0x91, 0x9a, 0x00, 0x03,+    0x04, 0x87, 0x91, 0x01, 0x00, 0x00, 0x05, 0x04,+    0x31, 0x87, 0x91, 0x9a, 0x1f, 0x00, 0x00, 0x08,+    0x01, 0x04, 0x50, 0x51, 0x78, 0x31, 0x82, 0x87,+    0x09, 0x00, 0x0a, 0x02, 0x04, 0x87, 0x09, 0x00,+    0x09, 0x03, 0x04, 0x91, 0x9a, 0x05, 0x00, 0x00,+    0x02, 0x04, 0x87, 0x62, 0x00, 0x00, 0x02, 0x04,+    0x31, 0x81, 0xfb, 0x00, 0x00, 0x0d, 0x0b, 0x1f,+    0x2a, 0x2c, 0x2e, 0x3c, 0x45, 0x4f, 0x70, 0x7d,+    0x8e, 0x90, 0x95, 0x00, 0x0c, 0x0b, 0x1f, 0x2a,+    0x2c, 0x2e, 0x3c, 0x45, 0x4f, 0x70, 0x8e, 0x90,+    0x95, 0x10, 0x00, 0x00, 0x14, 0x0b, 0x1f, 0x21,+    0x2d, 0x53, 0x2a, 0x2c, 0x2e, 0x3c, 0x4e, 0x4f,+    0x60, 0x70, 0x43, 0x81, 0x86, 0x8d, 0x8e, 0x90,+    0x95, 0x00, 0x15, 0x0b, 0x1f, 0x21, 0x2d, 0x53,+    0x2a, 0x2c, 0x2e, 0x3c, 0x47, 0x4e, 0x4f, 0x60,+    0x70, 0x43, 0x81, 0x86, 0x8d, 0x8e, 0x90, 0x95,+    0x09, 0x04, 0x1f, 0x21, 0x3b, 0x4e, 0x75, 0x00,+    0x09, 0x03, 0x0b, 0x15, 0x86, 0x75, 0x00, 0x09,+    0x02, 0x2e, 0x5d, 0x75, 0x00, 0x09, 0x02, 0x2c,+    0x41, 0x80, 0x75, 0x00, 0x0d, 0x02, 0x2a, 0x8e,+    0x80, 0x71, 0x00, 0x09, 0x02, 0x3c, 0x60, 0x82,+    0xcf, 0x00, 0x09, 0x03, 0x15, 0x5e, 0x8a, 0x80,+    0x30, 0x00, 0x00, 0x02, 0x27, 0x45, 0x85, 0xb8,+    0x00, 0x01, 0x04, 0x11, 0x32, 0x89, 0x88, 0x80,+    0x4a, 0x00, 0x01, 0x02, 0x5b, 0x76, 0x00, 0x00,+    0x00, 0x02, 0x5b, 0x76, 0x84, 0x49, 0x00, 0x00,+    0x04, 0x0b, 0x1f, 0x2a, 0x3c, 0x00, 0x01, 0x1f,+    0x00, 0x04, 0x0b, 0x1f, 0x2a, 0x3c, 0x00, 0x02,+    0x1f, 0x2a, 0x00, 0x01, 0x1f, 0x01, 0x02, 0x0b,+    0x1f, 0x00, 0x02, 0x1f, 0x7d, 0x00, 0x02, 0x0b,+    0x1f, 0x00, 0x02, 0x1f, 0x7d, 0x00, 0x06, 0x1f,+    0x3c, 0x4f, 0x70, 0x8e, 0x90, 0x00, 0x01, 0x1f,+    0x01, 0x02, 0x1f, 0x7d, 0x01, 0x01, 0x1f, 0x00,+    0x02, 0x1f, 0x7d, 0x00, 0x02, 0x0b, 0x1f, 0x06,+    0x01, 0x1f, 0x00, 0x02, 0x1f, 0x60, 0x00, 0x02,+    0x0b, 0x1f, 0x01, 0x01, 0x1f, 0x00, 0x02, 0x0b,+    0x1f, 0x03, 0x01, 0x1f, 0x00, 0x08, 0x0b, 0x1f,+    0x2a, 0x3c, 0x60, 0x70, 0x90, 0x95, 0x00, 0x02,+    0x1f, 0x2a, 0x00, 0x03, 0x1f, 0x2a, 0x3c, 0x01,+    0x02, 0x0b, 0x1f, 0x00, 0x01, 0x0b, 0x01, 0x02,+    0x1f, 0x2a, 0x00, 0x01, 0x60, 0x80, 0x44, 0x00,+    0x01, 0x01, 0x2b, 0x35, 0x00, 0x00, 0x02, 0x1d,+    0x87, 0x81, 0xb5, 0x00, 0x00, 0x02, 0x45, 0x5b,+    0x80, 0x3f, 0x00, 0x00, 0x03, 0x1f, 0x2a, 0x45,+    0x8c, 0xd1, 0x00, 0x00, 0x02, 0x1d, 0x28, 0x81,+    0x3c, 0x00, 0x01, 0x06, 0x0d, 0x30, 0x2f, 0x35,+    0x3d, 0x9b, 0x00, 0x05, 0x0d, 0x30, 0x2f, 0x35,+    0x3d, 0x01, 0x00, 0x00, 0x01, 0x2f, 0x00, 0x00,+    0x09, 0x06, 0x0d, 0x30, 0x2f, 0x35, 0x3d, 0x9b,+    0x00, 0x00, 0x00, 0x05, 0x0d, 0x30, 0x2f, 0x35,+    0x3d, 0x07, 0x06, 0x0d, 0x30, 0x2f, 0x35, 0x3d,+    0x9b, 0x03, 0x05, 0x0d, 0x30, 0x2f, 0x35, 0x3d,+    0x09, 0x00, 0x03, 0x02, 0x0d, 0x2f, 0x01, 0x00,+    0x00, 0x05, 0x0d, 0x30, 0x2f, 0x35, 0x3d, 0x04,+    0x02, 0x35, 0x3d, 0x00, 0x00, 0x00, 0x05, 0x0d,+    0x30, 0x2f, 0x35, 0x3d, 0x03, 0x00, 0x01, 0x03,+    0x2f, 0x35, 0x3d, 0x01, 0x01, 0x2f, 0x58, 0x00,+    0x03, 0x02, 0x35, 0x3d, 0x02, 0x00, 0x00, 0x02,+    0x35, 0x3d, 0x59, 0x00, 0x00, 0x06, 0x0d, 0x30,+    0x2f, 0x35, 0x3d, 0x9b, 0x00, 0x02, 0x35, 0x3d,+    0x80, 0x12, 0x00, 0x0f, 0x01, 0x2f, 0x1f, 0x00,+    0x23, 0x01, 0x2f, 0x3b, 0x00, 0x27, 0x01, 0x2f,+    0x37, 0x00, 0x30, 0x01, 0x2f, 0x0e, 0x00, 0x0b,+    0x01, 0x2f, 0x32, 0x00, 0x00, 0x01, 0x2f, 0x57,+    0x00, 0x18, 0x01, 0x2f, 0x09, 0x00, 0x04, 0x01,+    0x2f, 0x5f, 0x00, 0x1e, 0x01, 0x2f, 0xc0, 0x31,+    0xef, 0x00, 0x00, 0x02, 0x1d, 0x28, 0x80, 0x0f,+    0x00, 0x07, 0x02, 0x2f, 0x45, 0x80, 0xa7, 0x00,+    0x02, 0x0e, 0x1f, 0x21, 0x2c, 0x2e, 0x41, 0x3c,+    0x3b, 0x4e, 0x4f, 0x5a, 0x60, 0x43, 0x8d, 0x95,+    0x02, 0x0d, 0x1f, 0x21, 0x2c, 0x2e, 0x41, 0x3c,+    0x3b, 0x4e, 0x5a, 0x60, 0x43, 0x8d, 0x95, 0x03,+    0x0b, 0x1f, 0x21, 0x2c, 0x2e, 0x41, 0x3b, 0x4e,+    0x5a, 0x43, 0x8d, 0x95, 0x80, 0x36, 0x00, 0x00,+    0x02, 0x0b, 0x1f, 0x00, 0x00, 0x00, 0x02, 0x1f,+    0x8e, 0x39, 0x00, 0x00, 0x03, 0x3e, 0x45, 0x5e,+    0x80, 0x1f, 0x00, 0x00, 0x02, 0x10, 0x3a, 0xc0,+    0x13, 0xa1, 0x00, 0x00, 0x02, 0x04, 0x91, 0x09,+    0x00, 0x00, 0x02, 0x04, 0x91, 0x46, 0x00, 0x01,+    0x05, 0x0d, 0x30, 0x2f, 0x35, 0x3d, 0x80, 0x99,+    0x00, 0x04, 0x06, 0x0d, 0x30, 0x2f, 0x35, 0x3d,+    0x9b, 0x09, 0x00, 0x00, 0x02, 0x35, 0x3d, 0x2c,+    0x00, 0x01, 0x02, 0x35, 0x3d, 0x80, 0xdf, 0x00,+    0x02, 0x02, 0x1c, 0x49, 0x03, 0x00, 0x2c, 0x03,+    0x1c, 0x48, 0x49, 0x02, 0x00, 0x08, 0x02, 0x1c,+    0x49, 0x81, 0x1f, 0x00, 0x1b, 0x02, 0x04, 0x1a,+    0x8f, 0x84, 0x00, 0x00, 0x02, 0x2a, 0x8e, 0x00,+    0x00, 0x00, 0x02, 0x2a, 0x8e, 0x36, 0x00, 0x01,+    0x02, 0x2a, 0x8e, 0x8c, 0x12, 0x00, 0x01, 0x02,+    0x2a, 0x8e, 0x00, 0x00, 0x00, 0x02, 0x2a, 0x8e,+    0xc0, 0x5c, 0x4b, 0x00, 0x03, 0x01, 0x22, 0x96,+    0x3b, 0x00, 0x11, 0x01, 0x2f, 0x9e, 0x5d, 0x00,+    0x01, 0x01, 0x2f, 0xce, 0xcd, 0x2d, 0x00,+};++static const uint8_t unicode_prop_Hyphen_table[28] = {+    0xac, 0x80, 0xfe, 0x80, 0x44, 0xdb, 0x80, 0x52,+    0x7a, 0x80, 0x48, 0x08, 0x81, 0x4e, 0x04, 0x80,+    0x42, 0xe2, 0x80, 0x60, 0xcd, 0x66, 0x80, 0x40,+    0xa8, 0x80, 0xd6, 0x80,+};++static const uint8_t unicode_prop_Other_Math_table[200] = {+    0xdd, 0x80, 0x43, 0x70, 0x11, 0x80, 0x99, 0x09,+    0x81, 0x5c, 0x1f, 0x80, 0x9a, 0x82, 0x8a, 0x80,+    0x9f, 0x83, 0x97, 0x81, 0x8d, 0x81, 0xc0, 0x8c,+    0x18, 0x11, 0x1c, 0x91, 0x03, 0x01, 0x89, 0x00,+    0x14, 0x28, 0x11, 0x09, 0x02, 0x05, 0x13, 0x24,+    0xca, 0x21, 0x18, 0x08, 0x08, 0x00, 0x21, 0x0b,+    0x0b, 0x91, 0x09, 0x00, 0x06, 0x00, 0x29, 0x41,+    0x21, 0x83, 0x40, 0xa7, 0x08, 0x80, 0x97, 0x80,+    0x90, 0x80, 0x41, 0xbc, 0x81, 0x8b, 0x88, 0x24,+    0x21, 0x09, 0x14, 0x8d, 0x00, 0x01, 0x85, 0x97,+    0x81, 0xb8, 0x00, 0x80, 0x9c, 0x83, 0x88, 0x81,+    0x41, 0x55, 0x81, 0x9e, 0x89, 0x41, 0x92, 0x95,+    0xbe, 0x83, 0x9f, 0x81, 0x60, 0xd4, 0x62, 0x00,+    0x03, 0x80, 0x40, 0xd2, 0x00, 0x80, 0x60, 0xd4,+    0xc0, 0xd4, 0x80, 0xc6, 0x01, 0x08, 0x09, 0x0b,+    0x80, 0x8b, 0x00, 0x06, 0x80, 0xc0, 0x03, 0x0f,+    0x06, 0x80, 0x9b, 0x03, 0x04, 0x00, 0x16, 0x80,+    0x41, 0x53, 0x81, 0x98, 0x80, 0x98, 0x80, 0x9e,+    0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x80, 0x9e,+    0x80, 0x98, 0x80, 0x9e, 0x80, 0x98, 0x07, 0x81,+    0xb1, 0x55, 0xff, 0x18, 0x9a, 0x01, 0x00, 0x08,+    0x80, 0x89, 0x03, 0x00, 0x00, 0x28, 0x18, 0x00,+    0x00, 0x02, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00,+    0x00, 0x01, 0x00, 0x0b, 0x06, 0x03, 0x03, 0x00,+    0x80, 0x89, 0x80, 0x90, 0x22, 0x04, 0x80, 0x90,+};++static const uint8_t unicode_prop_Other_Alphabetic_table[411] = {+    0x43, 0x44, 0x80, 0x42, 0x69, 0x8d, 0x00, 0x01,+    0x01, 0x00, 0xc7, 0x8a, 0xaf, 0x8c, 0x06, 0x8f,+    0x80, 0xe4, 0x33, 0x19, 0x0b, 0x80, 0xa2, 0x80,+    0x9d, 0x8f, 0xe5, 0x8a, 0xe4, 0x0a, 0x88, 0x02,+    0x03, 0x40, 0xa6, 0x8b, 0x16, 0x85, 0x93, 0xb5,+    0x09, 0x8e, 0x01, 0x22, 0x89, 0x81, 0x9c, 0x82,+    0xb9, 0x31, 0x09, 0x81, 0x89, 0x80, 0x89, 0x81,+    0x9c, 0x82, 0xb9, 0x23, 0x09, 0x0b, 0x80, 0x9d,+    0x0a, 0x80, 0x8a, 0x82, 0xb9, 0x38, 0x10, 0x81,+    0x94, 0x81, 0x95, 0x13, 0x82, 0xb9, 0x31, 0x09,+    0x81, 0x88, 0x81, 0x89, 0x81, 0x9d, 0x80, 0xba,+    0x22, 0x10, 0x82, 0x89, 0x80, 0xa7, 0x83, 0xb9,+    0x30, 0x10, 0x17, 0x81, 0x8a, 0x81, 0x9c, 0x82,+    0xb9, 0x30, 0x10, 0x17, 0x81, 0x8a, 0x81, 0x9b,+    0x83, 0xb9, 0x30, 0x10, 0x82, 0x89, 0x80, 0x89,+    0x81, 0x9c, 0x82, 0xca, 0x28, 0x00, 0x87, 0x91,+    0x81, 0xbc, 0x01, 0x86, 0x91, 0x80, 0xe2, 0x01,+    0x28, 0x81, 0x8f, 0x80, 0x40, 0xa2, 0x90, 0x8a,+    0x8a, 0x80, 0xa3, 0xed, 0x8b, 0x00, 0x0b, 0x96,+    0x1b, 0x10, 0x11, 0x32, 0x83, 0x8c, 0x8b, 0x00,+    0x89, 0x83, 0x46, 0x73, 0x81, 0x9d, 0x81, 0x9d,+    0x81, 0x9d, 0x81, 0xc1, 0x92, 0x40, 0xbb, 0x81,+    0xa1, 0x80, 0xf5, 0x8b, 0x83, 0x88, 0x40, 0xdd,+    0x84, 0xb8, 0x89, 0x81, 0x93, 0xc9, 0x81, 0xbe,+    0x84, 0xaf, 0x8e, 0xbb, 0x82, 0x9d, 0x88, 0x09,+    0xb8, 0x8a, 0xb1, 0x92, 0x41, 0xaf, 0x8d, 0x46,+    0xc0, 0xb3, 0x48, 0xf5, 0x9f, 0x60, 0x78, 0x73,+    0x87, 0xa1, 0x81, 0x41, 0x61, 0x07, 0x80, 0x96,+    0x84, 0xd7, 0x81, 0xb1, 0x8f, 0x00, 0xb8, 0x80,+    0xa5, 0x84, 0x9b, 0x8b, 0xac, 0x83, 0xaf, 0x8b,+    0xa4, 0x80, 0xc2, 0x8d, 0x8b, 0x07, 0x81, 0xac,+    0x82, 0xb1, 0x00, 0x11, 0x0c, 0x80, 0xab, 0x24,+    0x80, 0x40, 0xec, 0x87, 0x60, 0x4f, 0x32, 0x80,+    0x48, 0x56, 0x84, 0x46, 0x85, 0x10, 0x0c, 0x83,+    0x43, 0x13, 0x83, 0x41, 0x82, 0x81, 0x41, 0x52,+    0x82, 0xb4, 0x8d, 0xbb, 0x80, 0xac, 0x88, 0xc6,+    0x82, 0xa3, 0x8b, 0x91, 0x81, 0xb8, 0x82, 0xaf,+    0x8c, 0x8d, 0x81, 0xdb, 0x88, 0x08, 0x28, 0x40,+    0x9f, 0x89, 0x96, 0x83, 0xb9, 0x31, 0x09, 0x81,+    0x89, 0x80, 0x89, 0x81, 0x40, 0xd0, 0x8c, 0x02,+    0xe9, 0x91, 0x40, 0xec, 0x31, 0x86, 0x9c, 0x81,+    0xd1, 0x8e, 0x00, 0xe9, 0x8a, 0xe6, 0x8d, 0x41,+    0x00, 0x8c, 0x40, 0xf6, 0x28, 0x09, 0x0a, 0x00,+    0x80, 0x40, 0x8d, 0x31, 0x2b, 0x80, 0x9b, 0x89,+    0xa9, 0x20, 0x83, 0x91, 0x8a, 0xad, 0x8d, 0x41,+    0x96, 0x38, 0x86, 0xd2, 0x95, 0x80, 0x8d, 0xf9,+    0x2a, 0x00, 0x08, 0x10, 0x02, 0x80, 0xc1, 0x20,+    0x08, 0x83, 0x41, 0x5b, 0x83, 0x60, 0x50, 0x57,+    0x00, 0xb6, 0x33, 0xdc, 0x81, 0x60, 0x4c, 0xab,+    0x80, 0x60, 0x23, 0x60, 0x30, 0x90, 0x0e, 0x01,+    0x04, 0x49, 0x1b, 0x80, 0x47, 0xe7, 0x99, 0x85,+    0x99, 0x85, 0x99,+};++static const uint8_t unicode_prop_Other_Lowercase_table[51] = {+    0x40, 0xa9, 0x80, 0x8e, 0x80, 0x41, 0xf4, 0x88,+    0x31, 0x9d, 0x84, 0xdf, 0x80, 0xb3, 0x80, 0x59,+    0xb0, 0xbe, 0x8c, 0x80, 0xa1, 0xa4, 0x42, 0xb0,+    0x80, 0x8c, 0x80, 0x8f, 0x8c, 0x40, 0xd2, 0x8f,+    0x43, 0x4f, 0x99, 0x47, 0x91, 0x81, 0x60, 0x7a,+    0x1d, 0x81, 0x40, 0xd1, 0x80, 0x40, 0x86, 0x81,+    0x43, 0x61, 0x83,+};++static const uint8_t unicode_prop_Other_Uppercase_table[15] = {+    0x60, 0x21, 0x5f, 0x8f, 0x43, 0x45, 0x99, 0x61,+    0xcc, 0x5f, 0x99, 0x85, 0x99, 0x85, 0x99,+};++static const uint8_t unicode_prop_Other_Grapheme_Extend_table[65] = {+    0x49, 0xbd, 0x80, 0x97, 0x80, 0x41, 0x65, 0x80,+    0x97, 0x80, 0xe5, 0x80, 0x97, 0x80, 0x40, 0xe9,+    0x80, 0x91, 0x81, 0xe6, 0x80, 0x97, 0x80, 0xf6,+    0x80, 0x8e, 0x80, 0x4d, 0x54, 0x80, 0x44, 0xd5,+    0x80, 0x50, 0x20, 0x81, 0x60, 0xcf, 0x6d, 0x81,+    0x53, 0x9d, 0x80, 0x97, 0x80, 0x41, 0x57, 0x80,+    0x8b, 0x80, 0x40, 0xf0, 0x80, 0x43, 0x7f, 0x80,+    0x60, 0xb8, 0x33, 0x07, 0x84, 0x6c, 0x2e, 0xac,+    0xdf,+};++static const uint8_t unicode_prop_Other_Default_Ignorable_Code_Point_table[32] = {+    0x43, 0x4e, 0x80, 0x4e, 0x0e, 0x81, 0x46, 0x52,+    0x81, 0x48, 0xae, 0x80, 0x50, 0xfd, 0x80, 0x60,+    0xce, 0x3a, 0x80, 0xce, 0x88, 0x6d, 0x00, 0x06,+    0x00, 0x9d, 0xdf, 0xff, 0x40, 0xef, 0x4e, 0x0f,+};++static const uint8_t unicode_prop_Other_ID_Start_table[11] = {+    0x58, 0x84, 0x81, 0x48, 0x90, 0x80, 0x94, 0x80,+    0x4f, 0x6b, 0x81,+};++static const uint8_t unicode_prop_Other_ID_Continue_table[12] = {+    0x40, 0xb6, 0x80, 0x42, 0xce, 0x80, 0x4f, 0xe0,+    0x88, 0x46, 0x67, 0x80,+};++static const uint8_t unicode_prop_Prepended_Concatenation_Mark_table[17] = {+    0x45, 0xff, 0x85, 0x40, 0xd6, 0x80, 0xb0, 0x80,+    0x41, 0xd1, 0x80, 0x61, 0x07, 0xd9, 0x80, 0x8e,+    0x80,+};++static const uint8_t unicode_prop_XID_Start1_table[31] = {+    0x43, 0x79, 0x80, 0x4a, 0xb7, 0x80, 0xfe, 0x80,+    0x60, 0x21, 0xe6, 0x81, 0x60, 0xcb, 0xc0, 0x85,+    0x41, 0x95, 0x81, 0xf3, 0x00, 0x00, 0x00, 0x00,+    0x00, 0x00, 0x00, 0x80, 0x41, 0x1e, 0x81,+};++static const uint8_t unicode_prop_XID_Continue1_table[23] = {+    0x43, 0x79, 0x80, 0x60, 0x2d, 0x1f, 0x81, 0x60,+    0xcb, 0xc0, 0x85, 0x41, 0x95, 0x81, 0xf3, 0x00,+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,+};++static const uint8_t unicode_prop_Changes_When_Titlecased1_table[22] = {+    0x41, 0xc3, 0x08, 0x08, 0x81, 0xa4, 0x81, 0x4e,+    0xdc, 0xaa, 0x0a, 0x4e, 0x87, 0x3f, 0x3f, 0x87,+    0x8b, 0x80, 0x8e, 0x80, 0xae, 0x80,+};++static const uint8_t unicode_prop_Changes_When_Casefolded1_table[33] = {+    0x40, 0xde, 0x80, 0xcf, 0x80, 0x97, 0x80, 0x44,+    0x3c, 0x80, 0x59, 0x11, 0x80, 0x40, 0xe4, 0x3f,+    0x3f, 0x87, 0x89, 0x11, 0x05, 0x02, 0x11, 0x80,+    0xa9, 0x11, 0x80, 0x60, 0xdb, 0x07, 0x86, 0x8b,+    0x84,+};++static const uint8_t unicode_prop_Changes_When_NFKC_Casefolded1_table[441] = {+    0x40, 0x9f, 0x06, 0x00, 0x01, 0x00, 0x01, 0x12,+    0x10, 0x82, 0x9f, 0x80, 0xcf, 0x01, 0x80, 0x8b,+    0x07, 0x80, 0xfb, 0x01, 0x01, 0x80, 0xa5, 0x80,+    0x40, 0xbb, 0x88, 0x9e, 0x29, 0x84, 0xda, 0x08,+    0x81, 0x89, 0x80, 0xa3, 0x04, 0x02, 0x04, 0x08,+    0x80, 0xc9, 0x82, 0x9c, 0x80, 0x41, 0x93, 0x80,+    0x40, 0x93, 0x80, 0xd7, 0x83, 0x42, 0xde, 0x87,+    0xfb, 0x08, 0x80, 0xd2, 0x01, 0x80, 0xa1, 0x11,+    0x80, 0x40, 0xfc, 0x81, 0x42, 0xd4, 0x80, 0xfe,+    0x80, 0xa7, 0x81, 0xad, 0x80, 0xb5, 0x80, 0x88,+    0x03, 0x03, 0x03, 0x80, 0x8b, 0x80, 0x88, 0x00,+    0x26, 0x80, 0x90, 0x80, 0x88, 0x03, 0x03, 0x03,+    0x80, 0x8b, 0x80, 0x41, 0x41, 0x80, 0xe1, 0x81,+    0x46, 0x52, 0x81, 0xd4, 0x83, 0x45, 0x1c, 0x10,+    0x8a, 0x80, 0x91, 0x80, 0x9b, 0x8c, 0x80, 0xa1,+    0xa4, 0x40, 0xd9, 0x80, 0x40, 0xd5, 0x00, 0x00,+    0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0x3f, 0x87,+    0x89, 0x11, 0x04, 0x00, 0x29, 0x04, 0x12, 0x80,+    0x88, 0x12, 0x80, 0x88, 0x11, 0x11, 0x04, 0x08,+    0x8f, 0x00, 0x20, 0x8b, 0x12, 0x2a, 0x08, 0x0b,+    0x00, 0x07, 0x82, 0x8c, 0x06, 0x92, 0x81, 0x9a,+    0x80, 0x8c, 0x8a, 0x80, 0xd6, 0x18, 0x10, 0x8a,+    0x01, 0x0c, 0x0a, 0x00, 0x10, 0x11, 0x02, 0x06,+    0x05, 0x1c, 0x85, 0x8f, 0x8f, 0x8f, 0x88, 0x80,+    0x40, 0xa1, 0x08, 0x81, 0x40, 0xf7, 0x81, 0x41,+    0x34, 0xd5, 0x99, 0x9a, 0x45, 0x20, 0x80, 0xe6,+    0x82, 0xe4, 0x80, 0x41, 0x9e, 0x81, 0x40, 0xf0,+    0x80, 0x41, 0x2e, 0x80, 0xd2, 0x80, 0x8b, 0x40,+    0xd5, 0xa9, 0x80, 0xb4, 0x00, 0x82, 0xdf, 0x09,+    0x80, 0xde, 0x80, 0xb0, 0xdd, 0x82, 0x8d, 0xdf,+    0x9e, 0x80, 0xa7, 0x87, 0xae, 0x80, 0x41, 0x7f,+    0x60, 0x72, 0x9b, 0x81, 0x40, 0xd1, 0x80, 0x40,+    0x86, 0x81, 0x43, 0x61, 0x83, 0x88, 0x80, 0x60,+    0x4d, 0x95, 0x41, 0x0d, 0x08, 0x00, 0x81, 0x89,+    0x00, 0x00, 0x09, 0x82, 0xc3, 0x81, 0xe9, 0xa5,+    0x86, 0x8b, 0x24, 0x00, 0x97, 0x04, 0x00, 0x01,+    0x01, 0x80, 0xeb, 0xa0, 0x41, 0x6a, 0x91, 0xbf,+    0x81, 0xb5, 0xa7, 0x8c, 0x82, 0x99, 0x95, 0x94,+    0x81, 0x8b, 0x80, 0x92, 0x03, 0x1a, 0x00, 0x80,+    0x40, 0x86, 0x08, 0x80, 0x9f, 0x99, 0x40, 0x83,+    0x15, 0x0d, 0x0d, 0x0a, 0x16, 0x06, 0x80, 0x88,+    0x60, 0xbc, 0xa6, 0x83, 0x54, 0xb9, 0x86, 0x8d,+    0x87, 0xbf, 0x85, 0x42, 0x3e, 0xd4, 0x80, 0xc6,+    0x01, 0x08, 0x09, 0x0b, 0x80, 0x8b, 0x00, 0x06,+    0x80, 0xc0, 0x03, 0x0f, 0x06, 0x80, 0x9b, 0x03,+    0x04, 0x00, 0x16, 0x80, 0x41, 0x53, 0x81, 0x41,+    0x23, 0x81, 0xb1, 0x55, 0xff, 0x18, 0x9a, 0x01,+    0x00, 0x08, 0x80, 0x89, 0x03, 0x00, 0x00, 0x28,+    0x18, 0x00, 0x00, 0x02, 0x01, 0x00, 0x08, 0x00,+    0x00, 0x00, 0x00, 0x01, 0x00, 0x0b, 0x06, 0x03,+    0x03, 0x00, 0x80, 0x89, 0x80, 0x90, 0x22, 0x04,+    0x80, 0x90, 0x42, 0x43, 0x8a, 0x84, 0x9e, 0x80,+    0x9f, 0x99, 0x82, 0xa2, 0x80, 0xee, 0x82, 0x8c,+    0xab, 0x83, 0x88, 0x31, 0x49, 0x9d, 0x89, 0x60,+    0xfc, 0x05, 0x42, 0x1d, 0x6b, 0x05, 0xe1, 0x4f,+    0xff,+};++static const uint8_t unicode_prop_ASCII_Hex_Digit_table[5] = {+    0xaf, 0x89, 0x35, 0x99, 0x85,+};++static const uint8_t unicode_prop_Bidi_Control_table[10] = {+    0x46, 0x1b, 0x80, 0x59, 0xf0, 0x81, 0x99, 0x84,+    0xb6, 0x83,+};++static const uint8_t unicode_prop_Dash_table[53] = {+    0xac, 0x80, 0x45, 0x5b, 0x80, 0xb2, 0x80, 0x4e,+    0x40, 0x80, 0x44, 0x04, 0x80, 0x48, 0x08, 0x85,+    0xbc, 0x80, 0xa6, 0x80, 0x8e, 0x80, 0x41, 0x85,+    0x80, 0x4c, 0x03, 0x01, 0x80, 0x9e, 0x0b, 0x80,+    0x41, 0xda, 0x80, 0x92, 0x80, 0xee, 0x80, 0x60,+    0xcd, 0x8f, 0x81, 0xa4, 0x80, 0x89, 0x80, 0x40,+    0xa8, 0x80, 0x4f, 0x9e, 0x80,+};++static const uint8_t unicode_prop_Deprecated_table[23] = {+    0x41, 0x48, 0x80, 0x45, 0x28, 0x80, 0x49, 0x02,+    0x00, 0x80, 0x48, 0x28, 0x81, 0x48, 0xc4, 0x85,+    0x42, 0xb8, 0x81, 0x6d, 0xdc, 0xd5, 0x80,+};++static const uint8_t unicode_prop_Diacritic_table[358] = {+    0xdd, 0x00, 0x80, 0xc6, 0x05, 0x03, 0x01, 0x81,+    0x41, 0xf6, 0x40, 0x9e, 0x07, 0x25, 0x90, 0x0b,+    0x80, 0x88, 0x81, 0x40, 0xfc, 0x84, 0x40, 0xd0,+    0x80, 0xb6, 0x90, 0x80, 0x9a, 0x00, 0x01, 0x00,+    0x40, 0x85, 0x3b, 0x81, 0x40, 0x85, 0x0b, 0x0a,+    0x82, 0xc2, 0x9a, 0xda, 0x8a, 0xb9, 0x8a, 0xa1,+    0x81, 0x40, 0xc8, 0x9b, 0xbc, 0x80, 0x8f, 0x02,+    0x83, 0x9b, 0x80, 0xc9, 0x80, 0x8f, 0x80, 0xed,+    0x80, 0x8f, 0x80, 0xed, 0x80, 0x8f, 0x80, 0xae,+    0x82, 0xbb, 0x80, 0x8f, 0x06, 0x80, 0xf6, 0x80,+    0xfe, 0x80, 0xed, 0x80, 0x8f, 0x80, 0xec, 0x81,+    0x8f, 0x80, 0xfb, 0x80, 0xfb, 0x28, 0x80, 0xea,+    0x80, 0x8c, 0x84, 0xca, 0x81, 0x9a, 0x00, 0x00,+    0x03, 0x81, 0xc1, 0x10, 0x81, 0xbd, 0x80, 0xef,+    0x00, 0x81, 0xa7, 0x0b, 0x84, 0x98, 0x30, 0x80,+    0x89, 0x81, 0x42, 0xc0, 0x82, 0x44, 0x68, 0x8a,+    0x88, 0x80, 0x41, 0x5a, 0x82, 0x41, 0x38, 0x39,+    0x80, 0xaf, 0x8d, 0xf5, 0x80, 0x8e, 0x80, 0xa5,+    0x88, 0xb5, 0x81, 0x40, 0x89, 0x81, 0xbf, 0x85,+    0xd1, 0x98, 0x18, 0x28, 0x0a, 0xb1, 0xbe, 0xd8,+    0x8b, 0xa4, 0x22, 0x82, 0x41, 0xbc, 0x00, 0x82,+    0x8a, 0x82, 0x8c, 0x82, 0x8c, 0x82, 0x8c, 0x81,+    0x4c, 0xef, 0x82, 0x41, 0x3c, 0x80, 0x41, 0xf9,+    0x85, 0xe8, 0x83, 0xde, 0x80, 0x60, 0x75, 0x71,+    0x80, 0x8b, 0x08, 0x80, 0x9b, 0x81, 0xd1, 0x81,+    0x8d, 0xa1, 0xe5, 0x82, 0xec, 0x81, 0x40, 0xc9,+    0x80, 0x9a, 0x91, 0xb8, 0x83, 0xa3, 0x80, 0xde,+    0x80, 0x8b, 0x80, 0xa3, 0x80, 0x40, 0x94, 0x82,+    0xc0, 0x83, 0xb2, 0x80, 0xe3, 0x84, 0x88, 0x82,+    0xff, 0x81, 0x60, 0x4f, 0x2f, 0x80, 0x43, 0x00,+    0x8f, 0x41, 0x0d, 0x00, 0x80, 0xae, 0x80, 0xac,+    0x81, 0xc2, 0x80, 0x42, 0xfb, 0x80, 0x48, 0x03,+    0x81, 0x42, 0x3a, 0x85, 0x42, 0x1d, 0x8a, 0x41,+    0x67, 0x81, 0xf7, 0x81, 0xbd, 0x80, 0xcb, 0x80,+    0x88, 0x82, 0xe7, 0x81, 0x40, 0xb1, 0x81, 0xd0,+    0x80, 0x8f, 0x80, 0x97, 0x32, 0x84, 0x40, 0xcc,+    0x02, 0x80, 0xfa, 0x81, 0x40, 0xfa, 0x81, 0xfd,+    0x80, 0xf5, 0x81, 0xf2, 0x80, 0x41, 0x0c, 0x81,+    0x41, 0x01, 0x0b, 0x80, 0x40, 0x9b, 0x80, 0xd2,+    0x80, 0x91, 0x80, 0xd0, 0x80, 0x41, 0xa4, 0x80,+    0x41, 0x01, 0x00, 0x81, 0xd0, 0x80, 0x60, 0x4d,+    0x57, 0x84, 0xba, 0x86, 0x44, 0x57, 0x90, 0xcf,+    0x81, 0x60, 0x61, 0x74, 0x12, 0x2f, 0x39, 0x86,+    0x9d, 0x83, 0x4f, 0x81, 0x86, 0x41, 0xb4, 0x83,+    0x45, 0xdf, 0x86, 0xec, 0x10, 0x82,+};++static const uint8_t unicode_prop_Extender_table[89] = {+    0x40, 0xb6, 0x80, 0x42, 0x17, 0x81, 0x43, 0x6d,+    0x80, 0x41, 0xb8, 0x80, 0x43, 0x59, 0x80, 0x42,+    0xef, 0x80, 0xfe, 0x80, 0x49, 0x42, 0x80, 0xb7,+    0x80, 0x42, 0x62, 0x80, 0x41, 0x8d, 0x80, 0xc3,+    0x80, 0x53, 0x88, 0x80, 0xaa, 0x84, 0xe6, 0x81,+    0xdc, 0x82, 0x60, 0x6f, 0x15, 0x80, 0x45, 0xf5,+    0x80, 0x43, 0xc1, 0x80, 0x95, 0x80, 0x40, 0x88,+    0x80, 0xeb, 0x80, 0x94, 0x81, 0x60, 0x54, 0x7a,+    0x80, 0x53, 0xeb, 0x80, 0x42, 0x67, 0x82, 0x44,+    0xce, 0x80, 0x60, 0x50, 0xa8, 0x81, 0x44, 0x9b,+    0x08, 0x80, 0x60, 0x71, 0x57, 0x81, 0x48, 0x05,+    0x82,+};++static const uint8_t unicode_prop_Hex_Digit_table[12] = {+    0xaf, 0x89, 0x35, 0x99, 0x85, 0x60, 0xfe, 0xa8,+    0x89, 0x35, 0x99, 0x85,+};++static const uint8_t unicode_prop_IDS_Binary_Operator_table[5] = {+    0x60, 0x2f, 0xef, 0x09, 0x87,+};++static const uint8_t unicode_prop_IDS_Trinary_Operator_table[4] = {+    0x60, 0x2f, 0xf1, 0x81,+};++static const uint8_t unicode_prop_Ideographic_table[66] = {+    0x60, 0x30, 0x05, 0x81, 0x98, 0x88, 0x8d, 0x82,+    0x43, 0xc4, 0x59, 0xbf, 0xbf, 0x60, 0x51, 0xfc,+    0x60, 0x59, 0x02, 0x41, 0x6d, 0x81, 0xe9, 0x60,+    0x75, 0x09, 0x80, 0x9a, 0x57, 0xf7, 0x87, 0x44,+    0xd5, 0xa9, 0x88, 0x60, 0x24, 0x66, 0x41, 0x8b,+    0x60, 0x4d, 0x03, 0x60, 0xa6, 0xdd, 0xa1, 0x50,+    0x34, 0x8a, 0x40, 0xdd, 0x81, 0x56, 0x81, 0x8d,+    0x5d, 0x30, 0x4c, 0x1e, 0x42, 0x1d, 0x45, 0xe1,+    0x53, 0x4a,+};++static const uint8_t unicode_prop_Join_Control_table[4] = {+    0x60, 0x20, 0x0b, 0x81,+};++static const uint8_t unicode_prop_Logical_Order_Exception_table[15] = {+    0x4e, 0x3f, 0x84, 0xfa, 0x84, 0x4a, 0xef, 0x11,+    0x80, 0x60, 0x90, 0xf9, 0x09, 0x00, 0x81,+};++static const uint8_t unicode_prop_Noncharacter_Code_Point_table[71] = {+    0x60, 0xfd, 0xcf, 0x9f, 0x42, 0x0d, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81, 0x60,+    0xff, 0xfd, 0x81, 0x60, 0xff, 0xfd, 0x81,+};++static const uint8_t unicode_prop_Pattern_Syntax_table[58] = {+    0xa0, 0x8e, 0x89, 0x86, 0x99, 0x18, 0x80, 0x99,+    0x83, 0xa1, 0x30, 0x00, 0x08, 0x00, 0x0b, 0x03,+    0x02, 0x80, 0x96, 0x80, 0x9e, 0x80, 0x5f, 0x17,+    0x97, 0x87, 0x8e, 0x81, 0x92, 0x80, 0x89, 0x41,+    0x30, 0x42, 0xcf, 0x40, 0x9f, 0x42, 0x75, 0x9d,+    0x44, 0x6b, 0x41, 0xff, 0xff, 0x41, 0x80, 0x13,+    0x98, 0x8e, 0x80, 0x60, 0xcd, 0x0c, 0x81, 0x41,+    0x04, 0x81,+};++static const uint8_t unicode_prop_Pattern_White_Space_table[11] = {+    0x88, 0x84, 0x91, 0x80, 0xe3, 0x80, 0x5f, 0x87,+    0x81, 0x97, 0x81,+};++static const uint8_t unicode_prop_Quotation_Mark_table[31] = {+    0xa1, 0x03, 0x80, 0x40, 0x82, 0x80, 0x8e, 0x80,+    0x5f, 0x5b, 0x87, 0x98, 0x81, 0x4e, 0x06, 0x80,+    0x41, 0xc8, 0x83, 0x8c, 0x82, 0x60, 0xce, 0x20,+    0x83, 0x40, 0xbc, 0x03, 0x80, 0xd9, 0x81,+};++static const uint8_t unicode_prop_Radical_table[9] = {+    0x60, 0x2e, 0x7f, 0x99, 0x80, 0xd8, 0x8b, 0x40,+    0xd5,+};++static const uint8_t unicode_prop_Regional_Indicator_table[4] = {+    0x61, 0xf1, 0xe5, 0x99,+};++static const uint8_t unicode_prop_Sentence_Terminal_table[188] = {+    0xa0, 0x80, 0x8b, 0x80, 0x8f, 0x80, 0x45, 0x48,+    0x80, 0x40, 0x93, 0x81, 0x40, 0xb3, 0x80, 0xaa,+    0x82, 0x40, 0xf5, 0x80, 0xbc, 0x00, 0x02, 0x81,+    0x41, 0x24, 0x81, 0x46, 0xe3, 0x81, 0x43, 0x15,+    0x03, 0x81, 0x43, 0x04, 0x80, 0x40, 0xc5, 0x81,+    0x40, 0xcb, 0x04, 0x80, 0x41, 0x39, 0x81, 0x41,+    0x61, 0x83, 0x40, 0xad, 0x09, 0x81, 0x40, 0xda,+    0x81, 0xc0, 0x81, 0x43, 0xbb, 0x81, 0x88, 0x82,+    0x4d, 0xe3, 0x80, 0x8c, 0x80, 0x41, 0xc4, 0x80,+    0x60, 0x74, 0xfb, 0x80, 0x41, 0x0d, 0x81, 0x40,+    0xe2, 0x02, 0x80, 0x41, 0x7d, 0x81, 0xd5, 0x81,+    0xde, 0x80, 0x40, 0x97, 0x81, 0x40, 0x92, 0x82,+    0x40, 0x8f, 0x81, 0x40, 0xf8, 0x80, 0x60, 0x52,+    0x65, 0x02, 0x81, 0x40, 0xa8, 0x80, 0x8b, 0x80,+    0x8f, 0x80, 0xc0, 0x80, 0x4a, 0xf3, 0x81, 0x44,+    0xfc, 0x84, 0x40, 0xec, 0x81, 0xf4, 0x83, 0xfe,+    0x82, 0x40, 0x80, 0x0d, 0x80, 0x8f, 0x81, 0xd7,+    0x08, 0x81, 0xeb, 0x80, 0x41, 0xa0, 0x81, 0x41,+    0x74, 0x0c, 0x8e, 0xe8, 0x81, 0x40, 0xf8, 0x82,+    0x42, 0x04, 0x00, 0x80, 0x40, 0xfa, 0x81, 0xd6,+    0x81, 0x41, 0xa3, 0x81, 0x42, 0xb3, 0x81, 0x60,+    0x4b, 0x74, 0x81, 0x40, 0x84, 0x80, 0xc0, 0x81,+    0x8a, 0x80, 0x43, 0x52, 0x80, 0x60, 0x4e, 0x05,+    0x80, 0x5d, 0xe7, 0x80,+};++static const uint8_t unicode_prop_Soft_Dotted_table[71] = {+    0xe8, 0x81, 0x40, 0xc3, 0x80, 0x41, 0x18, 0x80,+    0x9d, 0x80, 0xb3, 0x80, 0x93, 0x80, 0x41, 0x3f,+    0x80, 0xe1, 0x00, 0x80, 0x59, 0x08, 0x80, 0xb2,+    0x80, 0x8c, 0x02, 0x80, 0x40, 0x83, 0x80, 0x40,+    0x9c, 0x80, 0x41, 0xa4, 0x80, 0x40, 0xd5, 0x81,+    0x4b, 0x31, 0x80, 0x61, 0xa7, 0xa4, 0x81, 0xb1,+    0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1,+    0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1,+    0x81, 0xb1, 0x81, 0xb1, 0x81, 0xb1, 0x81,+};++static const uint8_t unicode_prop_Terminal_Punctuation_table[241] = {+    0xa0, 0x80, 0x89, 0x00, 0x80, 0x8a, 0x0a, 0x80,+    0x43, 0x3d, 0x07, 0x80, 0x42, 0x00, 0x80, 0xb8,+    0x80, 0xc7, 0x80, 0x8d, 0x01, 0x81, 0x40, 0xb3,+    0x80, 0xaa, 0x8a, 0x00, 0x40, 0xea, 0x81, 0xb5,+    0x8e, 0x9e, 0x80, 0x41, 0x04, 0x81, 0x44, 0xf3,+    0x81, 0x40, 0xab, 0x03, 0x85, 0x41, 0x36, 0x81,+    0x43, 0x14, 0x87, 0x43, 0x04, 0x80, 0xfb, 0x82,+    0xc6, 0x81, 0x40, 0x9c, 0x12, 0x80, 0xa6, 0x19,+    0x81, 0x41, 0x39, 0x81, 0x41, 0x61, 0x83, 0x40,+    0xad, 0x08, 0x82, 0x40, 0xda, 0x84, 0xbd, 0x81,+    0x43, 0xbb, 0x81, 0x88, 0x82, 0x4d, 0xe3, 0x80,+    0x8c, 0x03, 0x80, 0x89, 0x00, 0x81, 0x41, 0xb0,+    0x81, 0x60, 0x74, 0xfa, 0x81, 0x41, 0x0c, 0x82,+    0x40, 0xe2, 0x84, 0x41, 0x7d, 0x81, 0xd5, 0x81,+    0xde, 0x80, 0x40, 0x96, 0x82, 0x40, 0x92, 0x82,+    0xfe, 0x80, 0x8f, 0x81, 0x40, 0xf8, 0x80, 0x60,+    0x52, 0x63, 0x10, 0x83, 0x40, 0xa8, 0x80, 0x89,+    0x00, 0x80, 0x8a, 0x0a, 0x80, 0xc0, 0x01, 0x80,+    0x44, 0x39, 0x80, 0xaf, 0x80, 0x44, 0x85, 0x80,+    0x40, 0xc6, 0x80, 0x41, 0x35, 0x81, 0x40, 0x97,+    0x85, 0xc3, 0x85, 0xd8, 0x83, 0x43, 0xb7, 0x84,+    0x40, 0xec, 0x86, 0xef, 0x83, 0xfe, 0x82, 0x40,+    0x80, 0x0d, 0x80, 0x8f, 0x81, 0xd7, 0x84, 0xeb,+    0x80, 0x41, 0xa0, 0x82, 0x8b, 0x81, 0x41, 0x65,+    0x1a, 0x8e, 0xe8, 0x81, 0x40, 0xf8, 0x82, 0x42,+    0x04, 0x00, 0x80, 0x40, 0xfa, 0x81, 0xd6, 0x0b,+    0x81, 0x41, 0x9d, 0x82, 0xac, 0x80, 0x42, 0x84,+    0x81, 0x45, 0x76, 0x84, 0x60, 0x45, 0xf8, 0x81,+    0x40, 0x84, 0x80, 0xc0, 0x82, 0x89, 0x80, 0x43,+    0x51, 0x81, 0x60, 0x4e, 0x05, 0x80, 0x5d, 0xe6,+    0x83,+};++static const uint8_t unicode_prop_Unified_Ideograph_table[42] = {+    0x60, 0x33, 0xff, 0x59, 0xbf, 0xbf, 0x60, 0x51,+    0xfc, 0x60, 0x5a, 0x10, 0x08, 0x00, 0x81, 0x89,+    0x00, 0x00, 0x09, 0x82, 0x61, 0x05, 0xd5, 0x60,+    0xa6, 0xdd, 0xa1, 0x50, 0x34, 0x8a, 0x40, 0xdd,+    0x81, 0x56, 0x81, 0x8d, 0x5d, 0x30, 0x54, 0x1e,+    0x53, 0x4a,+};++static const uint8_t unicode_prop_Variation_Selector_table[12] = {+    0x58, 0x0a, 0x82, 0x60, 0xe5, 0xf1, 0x8f, 0x6d,+    0x02, 0xef, 0x40, 0xef,+};++static const uint8_t unicode_prop_White_Space_table[22] = {+    0x88, 0x84, 0x91, 0x80, 0xe3, 0x80, 0x99, 0x80,+    0x55, 0xde, 0x80, 0x49, 0x7e, 0x8a, 0x9c, 0x0c,+    0x80, 0xae, 0x80, 0x4f, 0x9f, 0x80,+};++static const uint8_t unicode_prop_Bidi_Mirrored_table[171] = {+    0xa7, 0x81, 0x91, 0x00, 0x80, 0x9b, 0x00, 0x80,+    0x9c, 0x00, 0x80, 0xac, 0x80, 0x8e, 0x80, 0x4e,+    0x7d, 0x83, 0x47, 0x5c, 0x81, 0x49, 0x9b, 0x81,+    0x89, 0x81, 0xb5, 0x81, 0x8d, 0x81, 0x40, 0xb0,+    0x80, 0x40, 0xbf, 0x1a, 0x2a, 0x02, 0x0a, 0x18,+    0x18, 0x00, 0x03, 0x88, 0x20, 0x80, 0x91, 0x23,+    0x88, 0x08, 0x00, 0x39, 0x9e, 0x0b, 0x20, 0x88,+    0x09, 0x92, 0x21, 0x88, 0x21, 0x0b, 0x97, 0x81,+    0x8f, 0x3b, 0x93, 0x0e, 0x81, 0x44, 0x3c, 0x8d,+    0xc9, 0x01, 0x18, 0x08, 0x14, 0x1c, 0x12, 0x8d,+    0x41, 0x92, 0x95, 0x0d, 0x80, 0x8d, 0x38, 0x35,+    0x10, 0x1c, 0x01, 0x0c, 0x18, 0x02, 0x09, 0x89,+    0x29, 0x81, 0x8b, 0x92, 0x03, 0x08, 0x00, 0x08,+    0x03, 0x21, 0x2a, 0x97, 0x81, 0x8a, 0x0b, 0x18,+    0x09, 0x0b, 0xaa, 0x0f, 0x80, 0xa7, 0x20, 0x00,+    0x14, 0x22, 0x18, 0x14, 0x00, 0x40, 0xff, 0x80,+    0x42, 0x02, 0x1a, 0x08, 0x81, 0x8d, 0x09, 0x89,+    0x41, 0xdd, 0x89, 0x0f, 0x60, 0xce, 0x3c, 0x2c,+    0x81, 0x40, 0xa1, 0x81, 0x91, 0x00, 0x80, 0x9b,+    0x00, 0x80, 0x9c, 0x00, 0x00, 0x08, 0x81, 0x60,+    0xd7, 0x76, 0x80, 0xb8, 0x80, 0xb8, 0x80, 0xb8,+    0x80, 0xb8, 0x80,+};++static const uint8_t unicode_prop_Emoji_table[238] = {+    0xa2, 0x05, 0x04, 0x89, 0xee, 0x03, 0x80, 0x5f,+    0x8c, 0x80, 0x8b, 0x80, 0x40, 0xd7, 0x80, 0x95,+    0x80, 0xd9, 0x85, 0x8e, 0x81, 0x41, 0x6e, 0x81,+    0x8b, 0x80, 0x40, 0xa5, 0x80, 0x98, 0x8a, 0x1a,+    0x40, 0xc6, 0x80, 0x40, 0xe6, 0x81, 0x89, 0x80,+    0x88, 0x80, 0xb9, 0x18, 0x84, 0x88, 0x01, 0x01,+    0x09, 0x03, 0x01, 0x00, 0x09, 0x02, 0x02, 0x0f,+    0x14, 0x00, 0x04, 0x8b, 0x8a, 0x09, 0x00, 0x08,+    0x80, 0x91, 0x01, 0x81, 0x91, 0x28, 0x00, 0x0a,+    0x0c, 0x01, 0x0b, 0x81, 0x8a, 0x0c, 0x09, 0x04,+    0x08, 0x00, 0x81, 0x93, 0x0c, 0x28, 0x19, 0x03,+    0x01, 0x01, 0x28, 0x01, 0x00, 0x00, 0x05, 0x02,+    0x05, 0x80, 0x89, 0x81, 0x8e, 0x01, 0x03, 0x00,+    0x03, 0x10, 0x80, 0x8a, 0x81, 0xaf, 0x82, 0x88,+    0x80, 0x8d, 0x80, 0x8d, 0x80, 0x41, 0x73, 0x81,+    0x41, 0xce, 0x82, 0x92, 0x81, 0xb2, 0x03, 0x80,+    0x44, 0xd9, 0x80, 0x8b, 0x80, 0x42, 0x58, 0x00,+    0x80, 0x61, 0xbd, 0x69, 0x80, 0x40, 0xc9, 0x80,+    0x40, 0x9f, 0x81, 0x8b, 0x81, 0x8d, 0x01, 0x89,+    0xca, 0x99, 0x01, 0x96, 0x80, 0x93, 0x01, 0x88,+    0x94, 0x81, 0x40, 0xad, 0xa1, 0x81, 0xef, 0x09,+    0x02, 0x81, 0xd2, 0x0a, 0x80, 0x41, 0x06, 0x80,+    0xbe, 0x8a, 0x28, 0x97, 0x31, 0x0f, 0x8b, 0x01,+    0x19, 0x03, 0x81, 0x8c, 0x09, 0x07, 0x81, 0x88,+    0x04, 0x82, 0x8b, 0x17, 0x11, 0x00, 0x03, 0x05,+    0x02, 0x05, 0xd5, 0xaf, 0xc5, 0x27, 0x0a, 0x3d,+    0x10, 0x01, 0x10, 0x81, 0x89, 0x40, 0xe2, 0x8b,+    0x41, 0x1f, 0xae, 0x80, 0x89, 0x80, 0xb1, 0x80,+    0xd1, 0x80, 0xb2, 0xef, 0x22, 0x14, 0x86, 0x88,+    0x98, 0x36, 0x88, 0x82, 0x8c, 0x86,+};++static const uint8_t unicode_prop_Emoji_Component_table[28] = {+    0xa2, 0x05, 0x04, 0x89, 0x5f, 0xd2, 0x80, 0x40,+    0xd4, 0x80, 0x60, 0xdd, 0x2a, 0x80, 0x60, 0xf3,+    0xd5, 0x99, 0x41, 0xfa, 0x84, 0x45, 0xaf, 0x83,+    0x6c, 0x06, 0x6b, 0xdf,+};++static const uint8_t unicode_prop_Emoji_Modifier_table[4] = {+    0x61, 0xf3, 0xfa, 0x84,+};++static const uint8_t unicode_prop_Emoji_Modifier_Base_table[66] = {+    0x60, 0x26, 0x1c, 0x80, 0x40, 0xda, 0x80, 0x8f,+    0x83, 0x61, 0xcc, 0x76, 0x80, 0xbb, 0x11, 0x01,+    0x82, 0xf4, 0x09, 0x8a, 0x94, 0x92, 0x10, 0x1a,+    0x02, 0x30, 0x00, 0x97, 0x80, 0x40, 0xc8, 0x0b,+    0x80, 0x94, 0x03, 0x81, 0x40, 0xad, 0x12, 0x84,+    0xd2, 0x80, 0x8f, 0x82, 0x88, 0x80, 0x8a, 0x80,+    0x42, 0x3e, 0x01, 0x07, 0x3d, 0x80, 0x88, 0x89,+    0x0a, 0xb7, 0x80, 0xbc, 0x08, 0x08, 0x80, 0x90,+    0x10, 0x8c,+};++static const uint8_t unicode_prop_Emoji_Presentation_table[144] = {+    0x60, 0x23, 0x19, 0x81, 0x40, 0xcc, 0x1a, 0x01,+    0x80, 0x42, 0x08, 0x81, 0x94, 0x81, 0xb1, 0x8b,+    0xaa, 0x80, 0x92, 0x80, 0x8c, 0x07, 0x81, 0x90,+    0x0c, 0x0f, 0x04, 0x80, 0x94, 0x06, 0x08, 0x03,+    0x01, 0x06, 0x03, 0x81, 0x9b, 0x80, 0xa2, 0x00,+    0x03, 0x10, 0x80, 0xbc, 0x82, 0x97, 0x80, 0x8d,+    0x80, 0x43, 0x5a, 0x81, 0xb2, 0x03, 0x80, 0x61,+    0xc4, 0xad, 0x80, 0x40, 0xc9, 0x80, 0x40, 0xbd,+    0x01, 0x89, 0xca, 0x99, 0x00, 0x97, 0x80, 0x93,+    0x01, 0x20, 0x82, 0x94, 0x81, 0x40, 0xad, 0xa0,+    0x8b, 0x88, 0x80, 0xc5, 0x80, 0x95, 0x8b, 0xaa,+    0x1c, 0x8b, 0x90, 0x10, 0x82, 0xc6, 0x00, 0x80,+    0x40, 0xba, 0x81, 0xbe, 0x8c, 0x18, 0x97, 0x91,+    0x80, 0x99, 0x81, 0x8c, 0x80, 0xd5, 0xd4, 0xaf,+    0xc5, 0x28, 0x12, 0x0a, 0x92, 0x0e, 0x88, 0x40,+    0xe2, 0x8b, 0x41, 0x1f, 0xae, 0x80, 0x89, 0x80,+    0xb1, 0x80, 0xd1, 0x80, 0xb2, 0xef, 0x22, 0x14,+    0x86, 0x88, 0x98, 0x36, 0x88, 0x82, 0x8c, 0x86,+};++static const uint8_t unicode_prop_Extended_Pictographic_table[156] = {+    0x40, 0xa8, 0x03, 0x80, 0x5f, 0x8c, 0x80, 0x8b,+    0x80, 0x40, 0xd7, 0x80, 0x95, 0x80, 0xd9, 0x85,+    0x8e, 0x81, 0x41, 0x6e, 0x81, 0x8b, 0x80, 0xde,+    0x80, 0xc5, 0x80, 0x98, 0x8a, 0x1a, 0x40, 0xc6,+    0x80, 0x40, 0xe6, 0x81, 0x89, 0x80, 0x88, 0x80,+    0xb9, 0x18, 0x28, 0x8b, 0x80, 0xf1, 0x89, 0xf5,+    0x81, 0x8a, 0x00, 0x00, 0x28, 0x10, 0x28, 0x89,+    0x81, 0x8e, 0x01, 0x03, 0x00, 0x03, 0x10, 0x80,+    0x8a, 0x84, 0xac, 0x82, 0x88, 0x80, 0x8d, 0x80,+    0x8d, 0x80, 0x41, 0x73, 0x81, 0x41, 0xce, 0x82,+    0x92, 0x81, 0xb2, 0x03, 0x80, 0x44, 0xd9, 0x80,+    0x8b, 0x80, 0x42, 0x58, 0x00, 0x80, 0x61, 0xbd,+    0x65, 0x40, 0xff, 0x8c, 0x82, 0x9e, 0x80, 0xbb,+    0x85, 0x8b, 0x81, 0x8d, 0x01, 0x89, 0x91, 0xb8,+    0x9a, 0x8e, 0x89, 0x80, 0x93, 0x01, 0x88, 0x03,+    0x88, 0x41, 0xb1, 0x84, 0x41, 0x3d, 0x87, 0x41,+    0x09, 0xaf, 0xff, 0xf3, 0x8b, 0xd4, 0xaa, 0x8b,+    0x83, 0xb7, 0x87, 0x89, 0x85, 0xa7, 0x87, 0x9d,+    0xd1, 0x8b, 0xae, 0x80, 0x89, 0x80, 0x41, 0xb8,+    0x40, 0xff, 0x43, 0xfd,+};++static const uint8_t unicode_prop_Default_Ignorable_Code_Point_table[51] = {+    0x40, 0xac, 0x80, 0x42, 0xa0, 0x80, 0x42, 0xcb,+    0x80, 0x4b, 0x41, 0x81, 0x46, 0x52, 0x81, 0xd4,+    0x83, 0x47, 0xfb, 0x84, 0x99, 0x84, 0xb0, 0x8f,+    0x50, 0xf3, 0x80, 0x60, 0xcc, 0x9a, 0x8f, 0x40,+    0xee, 0x80, 0x40, 0x9f, 0x80, 0xce, 0x88, 0x60,+    0xbc, 0xa6, 0x83, 0x54, 0xce, 0x87, 0x6c, 0x2e,+    0x84, 0x4f, 0xff,+};++typedef enum {+    UNICODE_PROP_Hyphen,+    UNICODE_PROP_Other_Math,+    UNICODE_PROP_Other_Alphabetic,+    UNICODE_PROP_Other_Lowercase,+    UNICODE_PROP_Other_Uppercase,+    UNICODE_PROP_Other_Grapheme_Extend,+    UNICODE_PROP_Other_Default_Ignorable_Code_Point,+    UNICODE_PROP_Other_ID_Start,+    UNICODE_PROP_Other_ID_Continue,+    UNICODE_PROP_Prepended_Concatenation_Mark,+    UNICODE_PROP_ID_Continue1,+    UNICODE_PROP_XID_Start1,+    UNICODE_PROP_XID_Continue1,+    UNICODE_PROP_Changes_When_Titlecased1,+    UNICODE_PROP_Changes_When_Casefolded1,+    UNICODE_PROP_Changes_When_NFKC_Casefolded1,+    UNICODE_PROP_ASCII_Hex_Digit,+    UNICODE_PROP_Bidi_Control,+    UNICODE_PROP_Dash,+    UNICODE_PROP_Deprecated,+    UNICODE_PROP_Diacritic,+    UNICODE_PROP_Extender,+    UNICODE_PROP_Hex_Digit,+    UNICODE_PROP_IDS_Binary_Operator,+    UNICODE_PROP_IDS_Trinary_Operator,+    UNICODE_PROP_Ideographic,+    UNICODE_PROP_Join_Control,+    UNICODE_PROP_Logical_Order_Exception,+    UNICODE_PROP_Noncharacter_Code_Point,+    UNICODE_PROP_Pattern_Syntax,+    UNICODE_PROP_Pattern_White_Space,+    UNICODE_PROP_Quotation_Mark,+    UNICODE_PROP_Radical,+    UNICODE_PROP_Regional_Indicator,+    UNICODE_PROP_Sentence_Terminal,+    UNICODE_PROP_Soft_Dotted,+    UNICODE_PROP_Terminal_Punctuation,+    UNICODE_PROP_Unified_Ideograph,+    UNICODE_PROP_Variation_Selector,+    UNICODE_PROP_White_Space,+    UNICODE_PROP_Bidi_Mirrored,+    UNICODE_PROP_Emoji,+    UNICODE_PROP_Emoji_Component,+    UNICODE_PROP_Emoji_Modifier,+    UNICODE_PROP_Emoji_Modifier_Base,+    UNICODE_PROP_Emoji_Presentation,+    UNICODE_PROP_Extended_Pictographic,+    UNICODE_PROP_Default_Ignorable_Code_Point,+    UNICODE_PROP_ID_Start,+    UNICODE_PROP_Case_Ignorable,+    UNICODE_PROP_ASCII,+    UNICODE_PROP_Alphabetic,+    UNICODE_PROP_Any,+    UNICODE_PROP_Assigned,+    UNICODE_PROP_Cased,+    UNICODE_PROP_Changes_When_Casefolded,+    UNICODE_PROP_Changes_When_Casemapped,+    UNICODE_PROP_Changes_When_Lowercased,+    UNICODE_PROP_Changes_When_NFKC_Casefolded,+    UNICODE_PROP_Changes_When_Titlecased,+    UNICODE_PROP_Changes_When_Uppercased,+    UNICODE_PROP_Grapheme_Base,+    UNICODE_PROP_Grapheme_Extend,+    UNICODE_PROP_ID_Continue,+    UNICODE_PROP_Lowercase,+    UNICODE_PROP_Math,+    UNICODE_PROP_Uppercase,+    UNICODE_PROP_XID_Continue,+    UNICODE_PROP_XID_Start,+    UNICODE_PROP_Cased1,+    UNICODE_PROP_COUNT,+} UnicodePropertyEnum;++static const char unicode_prop_name_table[] =+    "ASCII_Hex_Digit,AHex"               "\0"+    "Bidi_Control,Bidi_C"                "\0"+    "Dash"                               "\0"+    "Deprecated,Dep"                     "\0"+    "Diacritic,Dia"                      "\0"+    "Extender,Ext"                       "\0"+    "Hex_Digit,Hex"                      "\0"+    "IDS_Binary_Operator,IDSB"           "\0"+    "IDS_Trinary_Operator,IDST"          "\0"+    "Ideographic,Ideo"                   "\0"+    "Join_Control,Join_C"                "\0"+    "Logical_Order_Exception,LOE"        "\0"+    "Noncharacter_Code_Point,NChar"      "\0"+    "Pattern_Syntax,Pat_Syn"             "\0"+    "Pattern_White_Space,Pat_WS"         "\0"+    "Quotation_Mark,QMark"               "\0"+    "Radical"                            "\0"+    "Regional_Indicator,RI"              "\0"+    "Sentence_Terminal,STerm"            "\0"+    "Soft_Dotted,SD"                     "\0"+    "Terminal_Punctuation,Term"          "\0"+    "Unified_Ideograph,UIdeo"            "\0"+    "Variation_Selector,VS"              "\0"+    "White_Space,space"                  "\0"+    "Bidi_Mirrored,Bidi_M"               "\0"+    "Emoji"                              "\0"+    "Emoji_Component,EComp"              "\0"+    "Emoji_Modifier,EMod"                "\0"+    "Emoji_Modifier_Base,EBase"          "\0"+    "Emoji_Presentation,EPres"           "\0"+    "Extended_Pictographic,ExtPict"      "\0"+    "Default_Ignorable_Code_Point,DI"    "\0"+    "ID_Start,IDS"                       "\0"+    "Case_Ignorable,CI"                  "\0"+    "ASCII"                              "\0"+    "Alphabetic,Alpha"                   "\0"+    "Any"                                "\0"+    "Assigned"                           "\0"+    "Cased"                              "\0"+    "Changes_When_Casefolded,CWCF"       "\0"+    "Changes_When_Casemapped,CWCM"       "\0"+    "Changes_When_Lowercased,CWL"        "\0"+    "Changes_When_NFKC_Casefolded,CWKCF" "\0"+    "Changes_When_Titlecased,CWT"        "\0"+    "Changes_When_Uppercased,CWU"        "\0"+    "Grapheme_Base,Gr_Base"              "\0"+    "Grapheme_Extend,Gr_Ext"             "\0"+    "ID_Continue,IDC"                    "\0"+    "Lowercase,Lower"                    "\0"+    "Math"                               "\0"+    "Uppercase,Upper"                    "\0"+    "XID_Continue,XIDC"                  "\0"+    "XID_Start,XIDS"                     "\0"+;++static const uint8_t * const unicode_prop_table[] = {+    unicode_prop_Hyphen_table,+    unicode_prop_Other_Math_table,+    unicode_prop_Other_Alphabetic_table,+    unicode_prop_Other_Lowercase_table,+    unicode_prop_Other_Uppercase_table,+    unicode_prop_Other_Grapheme_Extend_table,+    unicode_prop_Other_Default_Ignorable_Code_Point_table,+    unicode_prop_Other_ID_Start_table,+    unicode_prop_Other_ID_Continue_table,+    unicode_prop_Prepended_Concatenation_Mark_table,+    unicode_prop_ID_Continue1_table,+    unicode_prop_XID_Start1_table,+    unicode_prop_XID_Continue1_table,+    unicode_prop_Changes_When_Titlecased1_table,+    unicode_prop_Changes_When_Casefolded1_table,+    unicode_prop_Changes_When_NFKC_Casefolded1_table,+    unicode_prop_ASCII_Hex_Digit_table,+    unicode_prop_Bidi_Control_table,+    unicode_prop_Dash_table,+    unicode_prop_Deprecated_table,+    unicode_prop_Diacritic_table,+    unicode_prop_Extender_table,+    unicode_prop_Hex_Digit_table,+    unicode_prop_IDS_Binary_Operator_table,+    unicode_prop_IDS_Trinary_Operator_table,+    unicode_prop_Ideographic_table,+    unicode_prop_Join_Control_table,+    unicode_prop_Logical_Order_Exception_table,+    unicode_prop_Noncharacter_Code_Point_table,+    unicode_prop_Pattern_Syntax_table,+    unicode_prop_Pattern_White_Space_table,+    unicode_prop_Quotation_Mark_table,+    unicode_prop_Radical_table,+    unicode_prop_Regional_Indicator_table,+    unicode_prop_Sentence_Terminal_table,+    unicode_prop_Soft_Dotted_table,+    unicode_prop_Terminal_Punctuation_table,+    unicode_prop_Unified_Ideograph_table,+    unicode_prop_Variation_Selector_table,+    unicode_prop_White_Space_table,+    unicode_prop_Bidi_Mirrored_table,+    unicode_prop_Emoji_table,+    unicode_prop_Emoji_Component_table,+    unicode_prop_Emoji_Modifier_table,+    unicode_prop_Emoji_Modifier_Base_table,+    unicode_prop_Emoji_Presentation_table,+    unicode_prop_Extended_Pictographic_table,+    unicode_prop_Default_Ignorable_Code_Point_table,+    unicode_prop_ID_Start_table,+    unicode_prop_Case_Ignorable_table,+};++static const uint16_t unicode_prop_len_table[] = {+    countof(unicode_prop_Hyphen_table),+    countof(unicode_prop_Other_Math_table),+    countof(unicode_prop_Other_Alphabetic_table),+    countof(unicode_prop_Other_Lowercase_table),+    countof(unicode_prop_Other_Uppercase_table),+    countof(unicode_prop_Other_Grapheme_Extend_table),+    countof(unicode_prop_Other_Default_Ignorable_Code_Point_table),+    countof(unicode_prop_Other_ID_Start_table),+    countof(unicode_prop_Other_ID_Continue_table),+    countof(unicode_prop_Prepended_Concatenation_Mark_table),+    countof(unicode_prop_ID_Continue1_table),+    countof(unicode_prop_XID_Start1_table),+    countof(unicode_prop_XID_Continue1_table),+    countof(unicode_prop_Changes_When_Titlecased1_table),+    countof(unicode_prop_Changes_When_Casefolded1_table),+    countof(unicode_prop_Changes_When_NFKC_Casefolded1_table),+    countof(unicode_prop_ASCII_Hex_Digit_table),+    countof(unicode_prop_Bidi_Control_table),+    countof(unicode_prop_Dash_table),+    countof(unicode_prop_Deprecated_table),+    countof(unicode_prop_Diacritic_table),+    countof(unicode_prop_Extender_table),+    countof(unicode_prop_Hex_Digit_table),+    countof(unicode_prop_IDS_Binary_Operator_table),+    countof(unicode_prop_IDS_Trinary_Operator_table),+    countof(unicode_prop_Ideographic_table),+    countof(unicode_prop_Join_Control_table),+    countof(unicode_prop_Logical_Order_Exception_table),+    countof(unicode_prop_Noncharacter_Code_Point_table),+    countof(unicode_prop_Pattern_Syntax_table),+    countof(unicode_prop_Pattern_White_Space_table),+    countof(unicode_prop_Quotation_Mark_table),+    countof(unicode_prop_Radical_table),+    countof(unicode_prop_Regional_Indicator_table),+    countof(unicode_prop_Sentence_Terminal_table),+    countof(unicode_prop_Soft_Dotted_table),+    countof(unicode_prop_Terminal_Punctuation_table),+    countof(unicode_prop_Unified_Ideograph_table),+    countof(unicode_prop_Variation_Selector_table),+    countof(unicode_prop_White_Space_table),+    countof(unicode_prop_Bidi_Mirrored_table),+    countof(unicode_prop_Emoji_table),+    countof(unicode_prop_Emoji_Component_table),+    countof(unicode_prop_Emoji_Modifier_table),+    countof(unicode_prop_Emoji_Modifier_Base_table),+    countof(unicode_prop_Emoji_Presentation_table),+    countof(unicode_prop_Extended_Pictographic_table),+    countof(unicode_prop_Default_Ignorable_Code_Point_table),+    countof(unicode_prop_ID_Start_table),+    countof(unicode_prop_Case_Ignorable_table),+};++#endif /* CONFIG_ALL_UNICODE */
+ quickjs/libunicode.h view
@@ -0,0 +1,124 @@+/*+ * Unicode utilities+ * + * Copyright (c) 2017-2018 Fabrice Bellard+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+#ifndef LIBUNICODE_H+#define LIBUNICODE_H++#include <inttypes.h>++#define LRE_BOOL  int       /* for documentation purposes */++/* define it to include all the unicode tables (40KB larger) */+#define CONFIG_ALL_UNICODE++#define LRE_CC_RES_LEN_MAX 3++typedef enum {+    UNICODE_NFC,+    UNICODE_NFD,+    UNICODE_NFKC,+    UNICODE_NFKD,+} UnicodeNormalizationEnum;++int lre_case_conv(uint32_t *res, uint32_t c, int conv_type);+LRE_BOOL lre_is_cased(uint32_t c);+LRE_BOOL lre_is_case_ignorable(uint32_t c);++/* char ranges */++typedef struct {+    int len; /* in points, always even */+    int size;+    uint32_t *points; /* points sorted by increasing value */+    void *mem_opaque;+    void *(*realloc_func)(void *opaque, void *ptr, size_t size);+} CharRange;++typedef enum {+    CR_OP_UNION,+    CR_OP_INTER,+    CR_OP_XOR,+} CharRangeOpEnum;++void cr_init(CharRange *cr, void *mem_opaque, void *(*realloc_func)(void *opaque, void *ptr, size_t size));+void cr_free(CharRange *cr);+int cr_realloc(CharRange *cr, int size);+int cr_copy(CharRange *cr, const CharRange *cr1);++static inline int cr_add_point(CharRange *cr, uint32_t v)+{+    if (cr->len >= cr->size) {+        if (cr_realloc(cr, cr->len + 1))+            return -1;+    }+    cr->points[cr->len++] = v;+    return 0;+}++static inline int cr_add_interval(CharRange *cr, uint32_t c1, uint32_t c2)+{+    if ((cr->len + 2) > cr->size) {+        if (cr_realloc(cr, cr->len + 2))+            return -1;+    }+    cr->points[cr->len++] = c1;+    cr->points[cr->len++] = c2;+    return 0;+}++int cr_union1(CharRange *cr, const uint32_t *b_pt, int b_len);++static inline int cr_union_interval(CharRange *cr, uint32_t c1, uint32_t c2)+{+    uint32_t b_pt[2];+    b_pt[0] = c1;+    b_pt[1] = c2 + 1;+    return cr_union1(cr, b_pt, 2);+}++int cr_op(CharRange *cr, const uint32_t *a_pt, int a_len,+          const uint32_t *b_pt, int b_len, int op);++int cr_invert(CharRange *cr);++#ifdef CONFIG_ALL_UNICODE++LRE_BOOL lre_is_id_start(uint32_t c);+LRE_BOOL lre_is_id_continue(uint32_t c);++int unicode_normalize(uint32_t **pdst, const uint32_t *src, int src_len,+                      UnicodeNormalizationEnum n_type,+                      void *opaque, void *(*realloc_func)(void *opaque, void *ptr, size_t size));++/* Unicode character range functions */++int unicode_script(CharRange *cr,+                   const char *script_name, LRE_BOOL is_ext);+int unicode_general_category(CharRange *cr, const char *gc_name);+int unicode_prop(CharRange *cr, const char *prop_name);++#endif /* CONFIG_ALL_UNICODE */++#undef LRE_BOOL++#endif /* LIBUNICODE_H */
+ quickjs/list.h view
@@ -0,0 +1,100 @@+/*+ * Linux klist like system+ * + * Copyright (c) 2016-2017 Fabrice Bellard+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */+#ifndef LIST_H+#define LIST_H++#ifndef NULL+#include <stddef.h>+#endif++struct list_head {+    struct list_head *prev;+    struct list_head *next;+};++#define LIST_HEAD_INIT(el) { &(el), &(el) }++/* return the pointer of type 'type *' containing 'el' as field 'member' */+#define list_entry(el, type, member) \+    ((type *)((uint8_t *)(el) - offsetof(type, member)))++static inline void init_list_head(struct list_head *head)+{+    head->prev = head;+    head->next = head;+}++/* insert 'el' between 'prev' and 'next' */+static inline void __list_add(struct list_head *el, +                              struct list_head *prev, struct list_head *next)+{+    prev->next = el;+    el->prev = prev;+    el->next = next;+    next->prev = el;+}++/* add 'el' at the head of the list 'head' (= after element head) */+static inline void list_add(struct list_head *el, struct list_head *head)+{+    __list_add(el, head, head->next);+}++/* add 'el' at the end of the list 'head' (= before element head) */+static inline void list_add_tail(struct list_head *el, struct list_head *head)+{+    __list_add(el, head->prev, head);+}++static inline void list_del(struct list_head *el)+{+    struct list_head *prev, *next;+    prev = el->prev;+    next = el->next;+    prev->next = next;+    next->prev = prev;+    el->prev = NULL; /* fail safe */+    el->next = NULL; /* fail safe */+}++static inline int list_empty(struct list_head *el)+{+    return el->next == el;+}++#define list_for_each(el, head) \+  for(el = (head)->next; el != (head); el = el->next)++#define list_for_each_safe(el, el1, head)                \+    for(el = (head)->next, el1 = el->next; el != (head); \+        el = el1, el1 = el->next)++#define list_for_each_prev(el, head) \+  for(el = (head)->prev; el != (head); el = el->prev)++#define list_for_each_prev_safe(el, el1, head)           \+    for(el = (head)->prev, el1 = el->prev; el != (head); \+        el = el1, el1 = el->prev)++#endif /* LIST_H */
+ quickjs/quickjs-atom.h view
@@ -0,0 +1,272 @@+/*+ * QuickJS atom definitions+ * + * Copyright (c) 2017-2018 Fabrice Bellard+ * Copyright (c) 2017-2018 Charlie Gordon+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */++#ifdef DEF++/* Note: first atoms are considered as keywords in the parser */+DEF(null, "null") /* must be first */+DEF(false, "false")+DEF(true, "true")+DEF(if, "if")+DEF(else, "else")+DEF(return, "return")+DEF(var, "var")+DEF(this, "this")+DEF(delete, "delete")+DEF(void, "void")+DEF(typeof, "typeof")+DEF(new, "new")+DEF(in, "in")+DEF(instanceof, "instanceof")+DEF(do, "do")+DEF(while, "while")+DEF(for, "for")+DEF(break, "break")+DEF(continue, "continue")+DEF(switch, "switch")+DEF(case, "case")+DEF(default, "default")+DEF(throw, "throw")+DEF(try, "try")+DEF(catch, "catch")+DEF(finally, "finally")+DEF(function, "function")+DEF(debugger, "debugger")+DEF(with, "with")+/* FutureReservedWord */+DEF(class, "class")+DEF(const, "const")+DEF(enum, "enum")+DEF(export, "export")+DEF(extends, "extends")+DEF(import, "import")+DEF(super, "super")+/* FutureReservedWords when parsing strict mode code */+DEF(implements, "implements")+DEF(interface, "interface")+DEF(let, "let")+DEF(package, "package")+DEF(private, "private")+DEF(protected, "protected")+DEF(public, "public")+DEF(static, "static")+DEF(yield, "yield")+DEF(await, "await")++/* empty string */+DEF(empty_string, "")+/* identifiers */+DEF(length, "length")+DEF(fileName, "fileName")+DEF(lineNumber, "lineNumber")+DEF(message, "message")+DEF(errors, "errors")+DEF(stack, "stack")+DEF(name, "name")+DEF(toString, "toString")+DEF(toLocaleString, "toLocaleString")+DEF(valueOf, "valueOf")+DEF(eval, "eval")+DEF(prototype, "prototype")+DEF(constructor, "constructor")+DEF(configurable, "configurable")+DEF(writable, "writable")+DEF(enumerable, "enumerable")+DEF(value, "value")+DEF(get, "get")+DEF(set, "set")+DEF(of, "of")+DEF(__proto__, "__proto__")+DEF(undefined, "undefined")+DEF(number, "number")+DEF(boolean, "boolean")+DEF(string, "string")+DEF(object, "object")+DEF(symbol, "symbol")+DEF(integer, "integer")+DEF(unknown, "unknown")+DEF(arguments, "arguments")+DEF(callee, "callee")+DEF(caller, "caller")+DEF(_eval_, "<eval>")+DEF(_ret_, "<ret>")+DEF(_var_, "<var>")+DEF(_with_, "<with>")+DEF(lastIndex, "lastIndex")+DEF(target, "target")+DEF(index, "index")+DEF(input, "input")+DEF(defineProperties, "defineProperties")+DEF(apply, "apply")+DEF(join, "join")+DEF(concat, "concat")+DEF(split, "split")+DEF(construct, "construct")+DEF(getPrototypeOf, "getPrototypeOf")+DEF(setPrototypeOf, "setPrototypeOf")+DEF(isExtensible, "isExtensible")+DEF(preventExtensions, "preventExtensions")+DEF(has, "has")+DEF(deleteProperty, "deleteProperty")+DEF(defineProperty, "defineProperty")+DEF(getOwnPropertyDescriptor, "getOwnPropertyDescriptor")+DEF(ownKeys, "ownKeys")+DEF(add, "add")+DEF(done, "done")+DEF(next, "next")+DEF(values, "values")+DEF(source, "source")+DEF(flags, "flags")+DEF(global, "global")+DEF(unicode, "unicode")+DEF(raw, "raw")+DEF(new_target, "new.target")+DEF(this_active_func, "this.active_func")+DEF(home_object, "<home_object>")+DEF(computed_field, "<computed_field>")+DEF(static_computed_field, "<static_computed_field>") /* must come after computed_fields */+DEF(class_fields_init, "<class_fields_init>")+DEF(brand, "<brand>")+DEF(hash_constructor, "#constructor")+DEF(as, "as")+DEF(from, "from")+DEF(meta, "meta")+DEF(_default_, "*default*")+DEF(_star_, "*")+DEF(Module, "Module")+DEF(then, "then")+DEF(resolve, "resolve")+DEF(reject, "reject")+DEF(promise, "promise")+DEF(proxy, "proxy")+DEF(revoke, "revoke")+DEF(async, "async")+DEF(exec, "exec")+DEF(groups, "groups")+DEF(status, "status")+DEF(reason, "reason")+DEF(globalThis, "globalThis")+#ifdef CONFIG_BIGNUM+DEF(bigint, "bigint")+DEF(bigfloat, "bigfloat")+DEF(bigdecimal, "bigdecimal")+DEF(roundingMode, "roundingMode")+DEF(maximumSignificantDigits, "maximumSignificantDigits")+DEF(maximumFractionDigits, "maximumFractionDigits")+#endif+#ifdef CONFIG_ATOMICS+DEF(not_equal, "not-equal")+DEF(timed_out, "timed-out")+DEF(ok, "ok")+#endif+DEF(toJSON, "toJSON")+/* class names */+DEF(Object, "Object")+DEF(Array, "Array")+DEF(Error, "Error")+DEF(Number, "Number")+DEF(String, "String")+DEF(Boolean, "Boolean")+DEF(Symbol, "Symbol")+DEF(Arguments, "Arguments")+DEF(Math, "Math")+DEF(JSON, "JSON")+DEF(Date, "Date")+DEF(Function, "Function")+DEF(GeneratorFunction, "GeneratorFunction")+DEF(ForInIterator, "ForInIterator")+DEF(RegExp, "RegExp")+DEF(ArrayBuffer, "ArrayBuffer")+DEF(SharedArrayBuffer, "SharedArrayBuffer")+/* must keep same order as class IDs for typed arrays */+DEF(Uint8ClampedArray, "Uint8ClampedArray") +DEF(Int8Array, "Int8Array")+DEF(Uint8Array, "Uint8Array")+DEF(Int16Array, "Int16Array")+DEF(Uint16Array, "Uint16Array")+DEF(Int32Array, "Int32Array")+DEF(Uint32Array, "Uint32Array")+#ifdef CONFIG_BIGNUM+DEF(BigInt64Array, "BigInt64Array")+DEF(BigUint64Array, "BigUint64Array")+#endif+DEF(Float32Array, "Float32Array")+DEF(Float64Array, "Float64Array")+DEF(DataView, "DataView")+#ifdef CONFIG_BIGNUM+DEF(BigInt, "BigInt")+DEF(BigFloat, "BigFloat")+DEF(BigFloatEnv, "BigFloatEnv")+DEF(BigDecimal, "BigDecimal")+DEF(OperatorSet, "OperatorSet")+DEF(Operators, "Operators")+#endif+DEF(Map, "Map")+DEF(Set, "Set") /* Map + 1 */+DEF(WeakMap, "WeakMap") /* Map + 2 */+DEF(WeakSet, "WeakSet") /* Map + 3 */+DEF(Map_Iterator, "Map Iterator")+DEF(Set_Iterator, "Set Iterator")+DEF(Array_Iterator, "Array Iterator")+DEF(String_Iterator, "String Iterator")+DEF(RegExp_String_Iterator, "RegExp String Iterator")+DEF(Generator, "Generator")+DEF(Proxy, "Proxy")+DEF(Promise, "Promise")+DEF(PromiseResolveFunction, "PromiseResolveFunction")+DEF(PromiseRejectFunction, "PromiseRejectFunction")+DEF(AsyncFunction, "AsyncFunction")+DEF(AsyncFunctionResolve, "AsyncFunctionResolve")+DEF(AsyncFunctionReject, "AsyncFunctionReject")+DEF(AsyncGeneratorFunction, "AsyncGeneratorFunction")+DEF(AsyncGenerator, "AsyncGenerator")+DEF(EvalError, "EvalError")+DEF(RangeError, "RangeError")+DEF(ReferenceError, "ReferenceError")+DEF(SyntaxError, "SyntaxError")+DEF(TypeError, "TypeError")+DEF(URIError, "URIError")+DEF(InternalError, "InternalError")+/* private symbols */+DEF(Private_brand, "<brand>")+/* symbols */+DEF(Symbol_toPrimitive, "Symbol.toPrimitive")+DEF(Symbol_iterator, "Symbol.iterator")+DEF(Symbol_match, "Symbol.match")+DEF(Symbol_matchAll, "Symbol.matchAll")+DEF(Symbol_replace, "Symbol.replace")+DEF(Symbol_search, "Symbol.search")+DEF(Symbol_split, "Symbol.split")+DEF(Symbol_toStringTag, "Symbol.toStringTag")+DEF(Symbol_isConcatSpreadable, "Symbol.isConcatSpreadable")+DEF(Symbol_hasInstance, "Symbol.hasInstance")+DEF(Symbol_species, "Symbol.species")+DEF(Symbol_unscopables, "Symbol.unscopables")+DEF(Symbol_asyncIterator, "Symbol.asyncIterator")+#ifdef CONFIG_BIGNUM+DEF(Symbol_operatorSet, "Symbol.operatorSet")+#endif+    +#endif /* DEF */
+ quickjs/quickjs-opcode.h view
@@ -0,0 +1,367 @@+/*+ * QuickJS opcode definitions+ * + * Copyright (c) 2017-2018 Fabrice Bellard+ * Copyright (c) 2017-2018 Charlie Gordon+ *+ * Permission is hereby granted, free of charge, to any person obtaining a copy+ * of this software and associated documentation files (the "Software"), to deal+ * in the Software without restriction, including without limitation the rights+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell+ * copies of the Software, and to permit persons to whom the Software is+ * furnished to do so, subject to the following conditions:+ *+ * The above copyright notice and this permission notice shall be included in+ * all copies or substantial portions of the Software.+ *+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN+ * THE SOFTWARE.+ */++#ifdef FMT+FMT(none)+FMT(none_int)+FMT(none_loc)+FMT(none_arg)+FMT(none_var_ref)+FMT(u8)+FMT(i8)+FMT(loc8)+FMT(const8)+FMT(label8)+FMT(u16)+FMT(i16)+FMT(label16)+FMT(npop)+FMT(npopx)+FMT(npop_u16)+FMT(loc)+FMT(arg)+FMT(var_ref)+FMT(u32)+FMT(i32)+FMT(const)+FMT(label)+FMT(atom)+FMT(atom_u8)+FMT(atom_u16)+FMT(atom_label_u8)+FMT(atom_label_u16)+FMT(label_u16)+#undef FMT+#endif /* FMT */++#ifdef DEF++#ifndef def+#define def(id, size, n_pop, n_push, f) DEF(id, size, n_pop, n_push, f)+#endif++DEF(invalid, 1, 0, 0, none) /* never emitted */++/* push values */+DEF(       push_i32, 5, 0, 1, i32)+DEF(     push_const, 5, 0, 1, const)+DEF(       fclosure, 5, 0, 1, const) /* must follow push_const */+DEF(push_atom_value, 5, 0, 1, atom)+DEF( private_symbol, 5, 0, 1, atom)+DEF(      undefined, 1, 0, 1, none)+DEF(           null, 1, 0, 1, none)+DEF(      push_this, 1, 0, 1, none) /* only used at the start of a function */+DEF(     push_false, 1, 0, 1, none)+DEF(      push_true, 1, 0, 1, none)+DEF(         object, 1, 0, 1, none)+DEF( special_object, 2, 0, 1, u8) /* only used at the start of a function */+DEF(           rest, 3, 0, 1, u16) /* only used at the start of a function */++DEF(           drop, 1, 1, 0, none) /* a -> */+DEF(            nip, 1, 2, 1, none) /* a b -> b */+DEF(           nip1, 1, 3, 2, none) /* a b c -> b c */+DEF(            dup, 1, 1, 2, none) /* a -> a a */+DEF(           dup1, 1, 2, 3, none) /* a b -> a a b */+DEF(           dup2, 1, 2, 4, none) /* a b -> a b a b */+DEF(           dup3, 1, 3, 6, none) /* a b c -> a b c a b c */+DEF(        insert2, 1, 2, 3, none) /* obj a -> a obj a (dup_x1) */+DEF(        insert3, 1, 3, 4, none) /* obj prop a -> a obj prop a (dup_x2) */+DEF(        insert4, 1, 4, 5, none) /* this obj prop a -> a this obj prop a */+DEF(          perm3, 1, 3, 3, none) /* obj a b -> a obj b */+DEF(          perm4, 1, 4, 4, none) /* obj prop a b -> a obj prop b */+DEF(          perm5, 1, 5, 5, none) /* this obj prop a b -> a this obj prop b */+DEF(           swap, 1, 2, 2, none) /* a b -> b a */+DEF(          swap2, 1, 4, 4, none) /* a b c d -> c d a b */+DEF(          rot3l, 1, 3, 3, none) /* x a b -> a b x */+DEF(          rot3r, 1, 3, 3, none) /* a b x -> x a b */+DEF(          rot4l, 1, 4, 4, none) /* x a b c -> a b c x */+DEF(          rot5l, 1, 5, 5, none) /* x a b c d -> a b c d x */++DEF(call_constructor, 3, 2, 1, npop) /* func new.target args -> ret. arguments are not counted in n_pop */+DEF(           call, 3, 1, 1, npop) /* arguments are not counted in n_pop */+DEF(      tail_call, 3, 1, 0, npop) /* arguments are not counted in n_pop */+DEF(    call_method, 3, 2, 1, npop) /* arguments are not counted in n_pop */+DEF(tail_call_method, 3, 2, 0, npop) /* arguments are not counted in n_pop */+DEF(     array_from, 3, 0, 1, npop) /* arguments are not counted in n_pop */+DEF(          apply, 3, 3, 1, u16)+DEF(         return, 1, 1, 0, none)+DEF(   return_undef, 1, 0, 0, none)+DEF(check_ctor_return, 1, 1, 2, none)+DEF(     check_ctor, 1, 0, 0, none)+DEF(    check_brand, 1, 2, 2, none) /* this_obj func -> this_obj func */+DEF(      add_brand, 1, 2, 0, none) /* this_obj home_obj -> */+DEF(   return_async, 1, 1, 0, none)+DEF(          throw, 1, 1, 0, none)+DEF(      throw_var, 6, 0, 0, atom_u8)+DEF(           eval, 5, 1, 1, npop_u16) /* func args... -> ret_val */+DEF(     apply_eval, 3, 2, 1, u16) /* func array -> ret_eval */+DEF(         regexp, 1, 2, 1, none) /* create a RegExp object from the pattern and a+                                       bytecode string */+DEF(      get_super, 1, 1, 1, none)+DEF(         import, 1, 1, 1, none) /* dynamic module import */++DEF(      check_var, 5, 0, 1, atom) /* check if a variable exists */+DEF(  get_var_undef, 5, 0, 1, atom) /* push undefined if the variable does not exist */+DEF(        get_var, 5, 0, 1, atom) /* throw an exception if the variable does not exist */+DEF(        put_var, 5, 1, 0, atom) /* must come after get_var */+DEF(   put_var_init, 5, 1, 0, atom) /* must come after put_var. Used to initialize a global lexical variable */+DEF( put_var_strict, 5, 2, 0, atom) /* for strict mode variable write */++DEF(  get_ref_value, 1, 2, 3, none)+DEF(  put_ref_value, 1, 3, 0, none)++DEF(     define_var, 6, 0, 0, atom_u8)+DEF(check_define_var, 6, 0, 0, atom_u8)+DEF(    define_func, 6, 1, 0, atom_u8)+DEF(      get_field, 5, 1, 1, atom)+DEF(     get_field2, 5, 1, 2, atom)+DEF(      put_field, 5, 2, 0, atom)+DEF( get_private_field, 1, 2, 1, none) /* obj prop -> value */+DEF( put_private_field, 1, 3, 0, none) /* obj value prop -> */+DEF(define_private_field, 1, 3, 1, none) /* obj prop value -> obj */+DEF(   get_array_el, 1, 2, 1, none)+DEF(  get_array_el2, 1, 2, 2, none) /* obj prop -> obj value */+DEF(   put_array_el, 1, 3, 0, none)+DEF(get_super_value, 1, 3, 1, none) /* this obj prop -> value */+DEF(put_super_value, 1, 4, 0, none) /* this obj prop value -> */+DEF(   define_field, 5, 2, 1, atom)+DEF(       set_name, 5, 1, 1, atom)+DEF(set_name_computed, 1, 2, 2, none)+DEF(      set_proto, 1, 2, 1, none)+DEF(set_home_object, 1, 2, 2, none)+DEF(define_array_el, 1, 3, 2, none)+DEF(         append, 1, 3, 2, none) /* append enumerated object, update length */+DEF(copy_data_properties, 2, 3, 3, u8)+DEF(  define_method, 6, 2, 1, atom_u8)+DEF(define_method_computed, 2, 3, 1, u8) /* must come after define_method */+DEF(   define_class, 6, 2, 2, atom_u8) /* parent ctor -> ctor proto */+DEF(   define_class_computed, 6, 3, 3, atom_u8) /* field_name parent ctor -> field_name ctor proto (class with computed name) */++DEF(        get_loc, 3, 0, 1, loc)+DEF(        put_loc, 3, 1, 0, loc) /* must come after get_loc */+DEF(        set_loc, 3, 1, 1, loc) /* must come after put_loc */+DEF(        get_arg, 3, 0, 1, arg)+DEF(        put_arg, 3, 1, 0, arg) /* must come after get_arg */+DEF(        set_arg, 3, 1, 1, arg) /* must come after put_arg */+DEF(    get_var_ref, 3, 0, 1, var_ref) +DEF(    put_var_ref, 3, 1, 0, var_ref) /* must come after get_var_ref */+DEF(    set_var_ref, 3, 1, 1, var_ref) /* must come after put_var_ref */+DEF(set_loc_uninitialized, 3, 0, 0, loc)+DEF(  get_loc_check, 3, 0, 1, loc)+DEF(  put_loc_check, 3, 1, 0, loc) /* must come after get_loc_check */+DEF(  put_loc_check_init, 3, 1, 0, loc)+DEF(get_var_ref_check, 3, 0, 1, var_ref) +DEF(put_var_ref_check, 3, 1, 0, var_ref) /* must come after get_var_ref_check */+DEF(put_var_ref_check_init, 3, 1, 0, var_ref)+DEF(      close_loc, 3, 0, 0, loc)+DEF(       if_false, 5, 1, 0, label)+DEF(        if_true, 5, 1, 0, label) /* must come after if_false */+DEF(           goto, 5, 0, 0, label) /* must come after if_true */+DEF(          catch, 5, 0, 1, label)+DEF(          gosub, 5, 0, 0, label) /* used to execute the finally block */+DEF(            ret, 1, 1, 0, none) /* used to return from the finally block */++DEF(      to_object, 1, 1, 1, none)+//DEF(      to_string, 1, 1, 1, none)+DEF(     to_propkey, 1, 1, 1, none)+DEF(    to_propkey2, 1, 2, 2, none)++DEF(   with_get_var, 10, 1, 0, atom_label_u8)     /* must be in the same order as scope_xxx */+DEF(   with_put_var, 10, 2, 1, atom_label_u8)     /* must be in the same order as scope_xxx */+DEF(with_delete_var, 10, 1, 0, atom_label_u8)     /* must be in the same order as scope_xxx */+DEF(  with_make_ref, 10, 1, 0, atom_label_u8)     /* must be in the same order as scope_xxx */+DEF(   with_get_ref, 10, 1, 0, atom_label_u8)     /* must be in the same order as scope_xxx */+DEF(with_get_ref_undef, 10, 1, 0, atom_label_u8)++DEF(   make_loc_ref, 7, 0, 2, atom_u16)+DEF(   make_arg_ref, 7, 0, 2, atom_u16)+DEF(make_var_ref_ref, 7, 0, 2, atom_u16)+DEF(   make_var_ref, 5, 0, 2, atom)++DEF(   for_in_start, 1, 1, 1, none)+DEF(   for_of_start, 1, 1, 3, none)+DEF(for_await_of_start, 1, 1, 3, none)+DEF(    for_in_next, 1, 1, 3, none)+DEF(    for_of_next, 2, 3, 5, u8)+DEF(for_await_of_next, 1, 3, 4, none)+DEF(iterator_get_value_done, 1, 1, 2, none)+DEF( iterator_close, 1, 3, 0, none)+DEF(iterator_close_return, 1, 4, 4, none)+DEF(async_iterator_close, 1, 3, 2, none)+DEF(async_iterator_next, 1, 4, 4, none)+DEF(async_iterator_get, 2, 4, 5, u8)+DEF(  initial_yield, 1, 0, 0, none)+DEF(          yield, 1, 1, 2, none)+DEF(     yield_star, 1, 2, 2, none)+DEF(async_yield_star, 1, 1, 2, none)+DEF(          await, 1, 1, 1, none)++/* arithmetic/logic operations */+DEF(            neg, 1, 1, 1, none)+DEF(           plus, 1, 1, 1, none)+DEF(            dec, 1, 1, 1, none)+DEF(            inc, 1, 1, 1, none)+DEF(       post_dec, 1, 1, 2, none)+DEF(       post_inc, 1, 1, 2, none)+DEF(        dec_loc, 2, 0, 0, loc8)+DEF(        inc_loc, 2, 0, 0, loc8)+DEF(        add_loc, 2, 1, 0, loc8)+DEF(            not, 1, 1, 1, none)+DEF(           lnot, 1, 1, 1, none)+DEF(         typeof, 1, 1, 1, none)+DEF(         delete, 1, 2, 1, none)+DEF(     delete_var, 5, 0, 1, atom)++DEF(            mul, 1, 2, 1, none)+DEF(            div, 1, 2, 1, none)+DEF(            mod, 1, 2, 1, none)+DEF(            add, 1, 2, 1, none)+DEF(            sub, 1, 2, 1, none)+DEF(            pow, 1, 2, 1, none)+DEF(            shl, 1, 2, 1, none)+DEF(            sar, 1, 2, 1, none)+DEF(            shr, 1, 2, 1, none)+DEF(             lt, 1, 2, 1, none)+DEF(            lte, 1, 2, 1, none)+DEF(             gt, 1, 2, 1, none)+DEF(            gte, 1, 2, 1, none)+DEF(     instanceof, 1, 2, 1, none)+DEF(             in, 1, 2, 1, none)+DEF(             eq, 1, 2, 1, none)+DEF(            neq, 1, 2, 1, none)+DEF(      strict_eq, 1, 2, 1, none)+DEF(     strict_neq, 1, 2, 1, none)+DEF(            and, 1, 2, 1, none)+DEF(            xor, 1, 2, 1, none)+DEF(             or, 1, 2, 1, none)+DEF(is_undefined_or_null, 1, 1, 1, none)+#ifdef CONFIG_BIGNUM+DEF(      mul_pow10, 1, 2, 1, none)+DEF(       math_mod, 1, 2, 1, none)+#endif+/* must be the last non short and non temporary opcode */+DEF(            nop, 1, 0, 0, none) ++/* temporary opcodes: never emitted in the final bytecode */++def(set_arg_valid_upto, 3, 0, 0, arg) /* emitted in phase 1, removed in phase 2 */++def(    enter_scope, 3, 0, 0, u16)  /* emitted in phase 1, removed in phase 2 */+def(    leave_scope, 3, 0, 0, u16)  /* emitted in phase 1, removed in phase 2 */++def(          label, 5, 0, 0, label) /* emitted in phase 1, removed in phase 3 */++def(scope_get_var_undef, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */+def(  scope_get_var, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */+def(  scope_put_var, 7, 1, 0, atom_u16) /* emitted in phase 1, removed in phase 2 */+def(scope_delete_var, 7, 0, 1, atom_u16) /* emitted in phase 1, removed in phase 2 */+def( scope_make_ref, 11, 0, 2, atom_label_u16) /* emitted in phase 1, removed in phase 2 */+def(  scope_get_ref, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */+def(scope_put_var_init, 7, 0, 2, atom_u16) /* emitted in phase 1, removed in phase 2 */+def(scope_get_private_field, 7, 1, 1, atom_u16) /* obj -> value, emitted in phase 1, removed in phase 2 */+def(scope_get_private_field2, 7, 1, 2, atom_u16) /* obj -> obj value, emitted in phase 1, removed in phase 2 */+def(scope_put_private_field, 7, 1, 1, atom_u16) /* obj value ->, emitted in phase 1, removed in phase 2 */++def( set_class_name, 5, 1, 1, u32) /* emitted in phase 1, removed in phase 2 */+    +def(       line_num, 5, 0, 0, u32) /* emitted in phase 1, removed in phase 3 */++#if SHORT_OPCODES+DEF(    push_minus1, 1, 0, 1, none_int)+DEF(         push_0, 1, 0, 1, none_int)+DEF(         push_1, 1, 0, 1, none_int)+DEF(         push_2, 1, 0, 1, none_int)+DEF(         push_3, 1, 0, 1, none_int)+DEF(         push_4, 1, 0, 1, none_int)+DEF(         push_5, 1, 0, 1, none_int)+DEF(         push_6, 1, 0, 1, none_int)+DEF(         push_7, 1, 0, 1, none_int)+DEF(        push_i8, 2, 0, 1, i8)+DEF(       push_i16, 3, 0, 1, i16)+DEF(    push_const8, 2, 0, 1, const8)+DEF(      fclosure8, 2, 0, 1, const8) /* must follow push_const8 */+DEF(push_empty_string, 1, 0, 1, none)++DEF(       get_loc8, 2, 0, 1, loc8)+DEF(       put_loc8, 2, 1, 0, loc8)+DEF(       set_loc8, 2, 1, 1, loc8)++DEF(       get_loc0, 1, 0, 1, none_loc)+DEF(       get_loc1, 1, 0, 1, none_loc)+DEF(       get_loc2, 1, 0, 1, none_loc)+DEF(       get_loc3, 1, 0, 1, none_loc)+DEF(       put_loc0, 1, 1, 0, none_loc)+DEF(       put_loc1, 1, 1, 0, none_loc)+DEF(       put_loc2, 1, 1, 0, none_loc)+DEF(       put_loc3, 1, 1, 0, none_loc)+DEF(       set_loc0, 1, 1, 1, none_loc)+DEF(       set_loc1, 1, 1, 1, none_loc)+DEF(       set_loc2, 1, 1, 1, none_loc)+DEF(       set_loc3, 1, 1, 1, none_loc)+DEF(       get_arg0, 1, 0, 1, none_arg)+DEF(       get_arg1, 1, 0, 1, none_arg)+DEF(       get_arg2, 1, 0, 1, none_arg)+DEF(       get_arg3, 1, 0, 1, none_arg)+DEF(       put_arg0, 1, 1, 0, none_arg)+DEF(       put_arg1, 1, 1, 0, none_arg)+DEF(       put_arg2, 1, 1, 0, none_arg)+DEF(       put_arg3, 1, 1, 0, none_arg)+DEF(       set_arg0, 1, 1, 1, none_arg)+DEF(       set_arg1, 1, 1, 1, none_arg)+DEF(       set_arg2, 1, 1, 1, none_arg)+DEF(       set_arg3, 1, 1, 1, none_arg)+DEF(   get_var_ref0, 1, 0, 1, none_var_ref)+DEF(   get_var_ref1, 1, 0, 1, none_var_ref)+DEF(   get_var_ref2, 1, 0, 1, none_var_ref)+DEF(   get_var_ref3, 1, 0, 1, none_var_ref)+DEF(   put_var_ref0, 1, 1, 0, none_var_ref)+DEF(   put_var_ref1, 1, 1, 0, none_var_ref)+DEF(   put_var_ref2, 1, 1, 0, none_var_ref)+DEF(   put_var_ref3, 1, 1, 0, none_var_ref)+DEF(   set_var_ref0, 1, 1, 1, none_var_ref)+DEF(   set_var_ref1, 1, 1, 1, none_var_ref)+DEF(   set_var_ref2, 1, 1, 1, none_var_ref)+DEF(   set_var_ref3, 1, 1, 1, none_var_ref)++DEF(     get_length, 1, 1, 1, none)++DEF(      if_false8, 2, 1, 0, label8)+DEF(       if_true8, 2, 1, 0, label8) /* must come after if_false8 */+DEF(          goto8, 2, 0, 0, label8) /* must come after if_true8 */+DEF(         goto16, 3, 0, 0, label16)++DEF(          call0, 1, 1, 1, npopx)+DEF(          call1, 1, 1, 1, npopx)+DEF(          call2, 1, 1, 1, npopx)+DEF(          call3, 1, 1, 1, npopx)++DEF(   is_undefined, 1, 1, 1, none)+DEF(        is_null, 1, 1, 1, none)+DEF(    is_function, 1, 1, 1, none)+#endif++#undef DEF+#undef def+#endif  /* DEF */