diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-02-13 13:02:28 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-02-13 13:11:47 +0100 |
commit | 79e6af86ca526d5fb56af6f6ca3da713e3a5e9f9 (patch) | |
tree | 752f1c26d1f122dcf58374ac78db109c9578be45 /vendor |
Genesis commit
Diffstat (limited to 'vendor')
152 files changed, 29798 insertions, 0 deletions
diff --git a/vendor/da/da.h b/vendor/da/da.h new file mode 100644 index 0000000..8891971 --- /dev/null +++ b/vendor/da/da.h @@ -0,0 +1,121 @@ +/* + * Simple & stupid dynamic array single-header implementation. You can use the + * macros defined in this file with any structure that has the following fields: + * + * struct dyn_array { + * T *buf // Array of items + * N len // Length of array + * N cap // Capacity of array + * } + * + * The type ‘T’ is whatever type you want to store. The type ‘N’ is any numeric + * type — most likely ‘size_t’ — but it could be sized as well. + * + * The daremove() macro also doesn’t bother with shrinking your array when the + * length is far lower than the capacity. If you care about that, do it + * yourself. + * + * Remember to call free() on your dynamic arrays ‘buf’ field after use. + * + * + * Macro Overview + * ―――――――――――――― + * The argument ‘a’ to all of the below macros is a pointer to the dynamic array + * structure. + * + * dainit(a, n) Initialize the array with a capacity of ‘n’ items. + * dapush(a, x) Append the item ‘x’ to the array + * daremove(a, x) Remove the item at index ‘x’ from the array + * da_remove_range(a, x, y) Remove the items between the range [x, y) + * da_foreach(a, p) Iterate the pointer ‘p’ over each element of the + * array. The type of ‘p’ is inferred. + * + * The ‘dapush()’ macro will double the arrays capacity when it gets full. If + * you would like your arrays to grow with a different scale, edit this file. + * + * + * Example + * ――――――― + * + * struct { + * int *buf; + * size_t len, cap; + * } nums; + * + * // Initialize nums with capacity == 4 + * dainit(&nums, 4); + * + * // Append 69, 1337, and 420 to nums + * dapush(&nums, 69); + * dapush(&nums, 1337); + * dapush(&nums, 420); + * + * da_foreach (&nums, n) { + * int x = *n << 1; + * printf("n = %d; n² = %d\n", *n, x); + * } + * + * // Remove 1337 and 420 from nums + * da_remove_range(&nums, 1, 3); + * + * // Remove 69 from nums + * daremove(&nums, 0); + */ + +#ifndef MANGO_DA_H +#define MANGO_DA_H + +#include <err.h> +#include <errno.h> +#include <stddef.h> +#include <stdint.h> +#include <stdlib.h> +#include <string.h> + +#if __STDC_VERSION__ >= 202311L +# define DA_NULL nullptr +#else +# define DA_NULL NULL +#endif + +#define DA_ALLOC(p, n) \ + do { \ + if ((n) && SIZE_MAX / (n) < sizeof(*(p))) { \ + errno = EOVERFLOW; \ + err(EXIT_FAILURE, "realloc"); \ + } \ + if (!((p) = realloc((p), (n) * sizeof(*(p))))) \ + err(EXIT_FAILURE, "realloc"); \ + } while (0) + +#define dainit(a, n) \ + do { \ + (a)->buf = DA_NULL; \ + (a)->cap = (n); \ + (a)->len = 0; \ + if (n) \ + DA_ALLOC((a)->buf, (a)->cap); \ + } while (0) + +#define dapush(a, x) \ + do { \ + if ((a)->len >= (a)->cap) { \ + (a)->cap = (a)->cap ? (a)->cap * 2 : 1; \ + DA_ALLOC((a)->buf, (a)->cap); \ + } \ + (a)->buf[(a)->len++] = (x); \ + } while (0) + +#define daremove(a, i) da_remove_range((a), (i), (i) + 1) + +#define da_remove_range(a, i, j) \ + do { \ + memmove((a)->buf + (i), (a)->buf + (j), \ + ((a)->len - (j)) * sizeof(*(a)->buf)); \ + (a)->len -= j - i; \ + } while (0) + +#define da_foreach(a, p) \ + for (typeof((a)->buf) p = (a)->buf; (size_t)(p - (a)->buf) < (a)->len; p++) + +#endif /* !MANGO_DA_H */ diff --git a/vendor/librune/.gitignore b/vendor/librune/.gitignore new file mode 100644 index 0000000..457da10 --- /dev/null +++ b/vendor/librune/.gitignore @@ -0,0 +1,12 @@ +.cache/ +test/gbrk +*.[ao] +a.out +compile_commands.json +failures +main +make +main.c +Makefile +NOTE-TO-SELF +test.c diff --git a/vendor/librune/LICENSE b/vendor/librune/LICENSE new file mode 100644 index 0000000..b946725 --- /dev/null +++ b/vendor/librune/LICENSE @@ -0,0 +1,14 @@ +BSD Zero Clause License + +Copyright © 2024 Thomas Voss + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. diff --git a/vendor/librune/README.md b/vendor/librune/README.md new file mode 100644 index 0000000..9beb827 --- /dev/null +++ b/vendor/librune/README.md @@ -0,0 +1,60 @@ +# librune — easy Unicode in a post-ASCII world + +Librune is a C library that aims to make interacting with Unicode and +UTF-8 easy in C. There are no plans at the moment to support UTF-16 or +-32, but they may be supported if such a usecase ever comes up. + +This library requires C23. + + +## Terminology + +This library uses the term ‘rune’ to refer to a single Unicode-codepoint, +and defines a `rune` datatype which is an unsigned integer type which +represents a rune (shocker). + + +## Headers + +This library contains the following headers: + +- `builder.h` — string building functions +- `gbrk.h` — grapheme-iteration functions +- `mbstring.h` — multibyte-string encoding, decoding, iteration, etc. +- `rtype.h` — rune categorization à la `ctype.h` +- `rune.h` — rune-constants, -macros, and -functions + + +## Compilation + +This library comes with a build script in the form of `make.c`. To build +the library all you need is a C compiler. The build script will build a +static library called ‘librune.a’. + +```sh +# Make sure to link with pthread +cc -lpthread -o make make.c +./make +``` + +If you want to build the library in release-mode (optimizations enabled), +simply pass the `-r` flag to the build script: + +```sh +./make -r +``` + +You can also pass the `-l` flag to enable link-time optimizations: + +```sh +./make -lr +``` + + +## Installation + +There is no ‘intended’ way in which this library should be installed, +used, and distributed. This library is primarily written for myself, and +I prefer to vendor it in my projects. You may choose to install it as a +shared and/or static library. You’re an engineer aren’t you? Figure it +out. diff --git a/vendor/librune/cbs.h b/vendor/librune/cbs.h new file mode 100644 index 0000000..5ae257f --- /dev/null +++ b/vendor/librune/cbs.h @@ -0,0 +1,954 @@ +/* Single-header library to help write build scripts in C. This library is + POSIX compliant, so it should work on all respectible UNIX-like systems. + + You can find the CBS git repository at https://git.sr.ht/~mango/cbs and you + can include this in your project with the following command: + + $ wget 'https://git.sr.ht/~mango/cbs/blob/master/cbs.h' + + This library is licensed under the 0-Clause BSD license, and as such you may + do whatever you want to it, however you want to it, whenever you want. You + are encouraged in fact to modify this library to suit your specific usecase. + + All functions and macros are documented. You can figure out the API pretty + easily by just reading the comments in this file. + + In many cases you may want to be able to execute commands on multiple threads + to speed up compilation, such as the -j option when using Make. Functions + for creating and using thread pools will be made available if the CBS_PTHREAD + macro is defined before including this file. Do note that on POSIX platforms + it will require linking to the pthreads library when bootstrapping the build + script. + + This file does not support C89. Fuck C89, that shit is ancient. Move on. + + IMPORTANT NOTE: Any identifiers prefixed with an underscore (e.g. ‘_rebuild’) + are meant for internal use only and you should not touch them unless you know + what you’re doing. + + IMPORTANT NOTE: All the functions and macros in this library will terminate + the program on error. If this is undesired behavior, feel free to edit the + functions to return errors. + + IMPORTANT NOTE: This library is built with the assumption that the source + file for your build script and your build script are in the SAME DIRECTORY. + + There are a few exceptions to the above rule, and they are documented. + + This library does not aim to ever support Windows */ + +#ifndef C_BUILD_SYSTEM_H +#define C_BUILD_SYSTEM_H + +#ifdef __GNUC__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wunused-function" +# pragma GCC diagnostic ignored "-Wparentheses" +#endif + +/* Assert that the user is building for a supported platform. The only portable + way to check for POSIX is to validate that unistd.h exists. This is only + possible without compiler extensions in C23 (although some compilers support + it as an extension in earlier editions), so people compiling for pre-C23 + might not get this error if on a bad platform, and may end up being a bit + confused. + + It’s just a maybe though, this is nothing more than a sanity check for the + users sake. */ +#if defined(__has_include) && !__has_include(<unistd.h>) +# error "Non-POSIX platform detected" +#endif + +#ifdef __APPLE__ +# define st_mtim st_mtimespec +#endif + +#include <sys/stat.h> +#include <sys/wait.h> + +#include <errno.h> +#include <libgen.h> +#include <limits.h> +#ifdef CBS_PTHREAD +# include <pthread.h> +#endif +#include <stdarg.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <wordexp.h> + +/* C23 changed a lot so we want to check for it */ +#if __STDC_VERSION__ >= 202000 +# define CBS_IS_C23 1 +#endif + +/* Some C23 compat. In C23 booleans are actual keywords, and the noreturn + attribute is different. */ +#if CBS_IS_C23 +# define noreturn [[noreturn]] +#else +# include <stdbool.h> +# include <stddef.h> +# include <stdnoreturn.h> +# define nullptr NULL +#endif + +/* Give helpful diagnostics when people use die() incorrectly on GCC. C23 + introduced C++ attribute syntax, so we need a check for that too. */ +#ifdef __GNUC__ +# if CBS_IS_C23 +# define ATTR_FMT [[gnu::format(printf, 1, 2)]] +# else +# define ATTR_FMT __attribute__((format(printf, 1, 2))) +# endif +#else +# define ATTR_FMT +#endif + +/* Clang defines this attribute, and while it does nothing it does serve as + good documentation. */ +#ifndef _Nullable +# define _Nullable +#endif + +/* Convert the given variadic arguments to a string array */ +#define _vtoa(...) ((char *[]){__VA_ARGS__}) + +/* Internal global versions of argc and argv, so our functions and macros can + access them from anywhere. */ +static int _cbs_argc; +static char **_cbs_argv; + +/* A vector of strings used to accumulate output of functions such as pcquery(). + The array of strings buf has length len, and is not null-terminated. You + should always zero-initialize variables of this type. */ +struct strv { + char **buf; + size_t len; +}; + +/* Free and zero a string vector. Because this function zeros the structure, it + is safe to reuse the vector after this function is called. */ +static void strvfree(struct strv *); + +/* A wrapper function around realloc(). It behaves exactly the same except + instead of taking a buffer size as an argument, it takes a count n of + elements, and a size m of each element. This allows it to properly check for + overflow, and errors if overflow would occur. */ +static void *bufalloc(void *_Nullable, size_t n, size_t m); + +/* Error reporting functions. The die() function takes the same arguments as + printf() and prints the corresponding string to stderr. It also prefixes the + string with the command name followed by a colon, and suffixes the string + with a colon and the error string returned from strerror(). + + If you want to print just the error message and no custom text, NULL may be + passed to die(). NULL should not be passed to diex(). + + diex() is the same as die() but does not print a strerror() error string. */ +ATTR_FMT noreturn static void die(const char *_Nullable, ...); +ATTR_FMT noreturn static void diex(const char *, ...); + +/* Initializes some data required for this header to work properly. This should + be the first thing called in main() with argc and argv passed. It also + chdir()s into the directory where the build script is located. */ +static void cbsinit(int, char **); + +/* Get the number of items in the array a */ +#define lengthof(a) (sizeof(a) / sizeof(*(a))) + +/* Struct representing a CLI command that various functions act on. You should + always zero-initialize variables of this type before use. + + After executing a command, you can reuse the already allocated buffer this + command holds by calling cmdclr(). When you’re really done with an object of + this type, remember to call free() on ._argv. + + The ._argv field is a NULL-terminated list of command arguments of length + ._len. You may safely read from both of these fields but they should NOT be + modified without use of cmdadd() and cmdaddv(). */ +typedef struct { + char *dst; + char **_argv; + size_t _len, _cap; +} cmd_t; + +/* Returns whether or not a binary of the given name exists in the users + environment as defined by $PATH. */ +static bool binexists(const char *); + +/* cmdadd() adds the variadic string arguments to the given command. + Alternatively, the cmdaddv() function adds the n strings pointed to by p to + the given command. */ +static void cmdaddv(cmd_t *, char **p, size_t n); +#define cmdadd(cmd, ...) \ + cmdaddv(cmd, _vtoa(__VA_ARGS__), lengthof(_vtoa(__VA_ARGS__))) + +/* Clear (but not free) the command c. Useful for reusing the same command + struct to minimize allocations. */ +static void cmdclr(cmd_t *c); + +/* The cmdexec() function executes the given command and waits for it to + terminate, returning its exit code. The cmdexeca() function executes the + given command and returns immediately, returning its process ID. + + The cmdexecb() function is like cmdexec() except it writes the given commands + standard output to the character buffer pointed to by p. It also stores the + size of the output in *n. The character buffer p is null-terminated. If the + given command produces no output to the standard output, p will be set to + NULL. + + cmdexec() and cmdexecb() have the same return values as cmdwait(). */ +static int cmdexec(cmd_t); +static pid_t cmdexeca(cmd_t); +static int cmdexecb(cmd_t, char **p, size_t *n); + +/* Wait for the process with the given PID to terminate, and return its exit + status. If the process was terminated by a signal 256 is returned. */ +static int cmdwait(pid_t); + +/* Write a representation of the given command to the given file stream. This + can be used to mimick the echoing behavior of make(1). The cmdput() function + is a nice convenience function so you can avoid writing ‘stdout’ all the + time. */ +static void cmdput(cmd_t); +static void cmdputf(FILE *, cmd_t); + +/* Expand the environment variable s using /bin/sh expansion rules and append + the results in the given string vector. If the environment variable is NULL + or empty, then store the strings specified by the array p of length n. + + env_or_default() is the same as env_or_defaultv() but you provide p as + variadic arguments. + + If the pointer p is null, then no default value is appended to the given + string vector when the environment variable is not present. */ +static void env_or_defaultv(struct strv *, const char *s, char *_Nullable *p, + size_t n); +#define env_or_default(sv, s, ...) \ + env_or_defaultv((sv), (s), _vtoa(__VA_ARGS__), lengthof(_vtoa(__VA_ARGS__))) + +/* Returns if a file exists at the given path. A return value of false may also + mean you don’t have the proper file access permissions, which will also set + errno. */ +static bool fexists(const char *); + +/* Compare the modification dates of the two named files. + + A return value >0 means the LHS is newer than the RHS. + A return value <0 means the LHS is older than the RHS. + A return value of 0 means the LHS and RHS have the same modification date. + + The fmdnewer() and fmdolder() functions are wrappers around fmdcmp() that + return true when the LHS is newer or older than the RHS respectively. */ +static int fmdcmp(const char *, const char *); +static bool fmdolder(const char *, const char *); +static bool fmdnewer(const char *, const char *); + +/* Report if any of n files specified by p render the file base outdated. If + the file base does not exist, this function returns true. You will typically + call this with a compiled program as base, and C source files as p. The + macro foutdated() is a wrapper around foutdatedv() that allows you to specify + the sources to base as variadic arguments instead of as an array. */ +static bool foutdatedv(const char *base, const char **p, size_t n); +#define foutdated(s, ...) \ + foutdatedv(s, (const char **)_vtoa(__VA_ARGS__), \ + lengthof(_vtoa(__VA_ARGS__))) + +/* Rebuild the build script if it has been modified, and execute the newly built + script. You should call the rebuild() macro at the very beginning of main(), + but right after cbsinit(). You probably don’t want to call _rebuild() + directly. + + NOTE: This function/macro REQUIRES that the source for the build script and + the compiled build script are in the SAME DIRECTORY. */ +static void _rebuild(char *); +#define rebuild() _rebuild(__FILE__) + +/* Get the number of available CPUs, or -1 on error. This function also returns + -1 if the _SC_NPROCESSORS_ONLN flag to sysconf(3) is not available. In that + case, errno will not be set. */ +static int nproc(void); + +/* Append the arguments returned by an invokation of pkg-config for the library + lib to the given string vector. The flags argument is one-or-more of the + flags in the pkg_config_flags enum bitwise-ORed together. + + If PKGC_CFLAGS is specified, call pkg-config with ‘--cflags’. + If PKGC_LIBS is specified, call pkg-config with ‘--libs’. + + This function returns true on success and false if pkg-config is not found on + the system. To check for pkg-configs existance, you can use the binexists() + function. */ +static bool pcquery(struct strv *, char *lib, int flags); +enum pkg_config_flags { + PKGC_LIBS = 1 << 0, + PKGC_CFLAGS = 1 << 1, +}; + +#ifdef CBS_PTHREAD + +/* A tfunc_t represents a function to be executed by a threads in a thread pool. + It takes an argument in the form of a void * and returns nothing. */ +typedef void (*tfunc_t)(void *); + +/* A tfunc_free_t represents a function which frees the argument passed to a + tfunc_t function. */ +typedef void (*tfree_func_t)(void *); + +/* A thread pool job queue. Meant for internal-use only. */ +struct _tjob { + void *arg; + tfunc_t fn; + tfree_func_t free; + struct _tjob *next; +}; + +/* A basic thread pool. None of its fields should really be touched. */ +typedef struct { + bool _stop; + size_t _tcnt, _left; + pthread_t *_thrds; + pthread_cond_t _cnd; + pthread_mutex_t _mtx; + struct _tjob *_head, *_tail; +} tpool_t; + +/* Initialize and destroy a thread pool. The tpinit() function initializes the + given thread pool and creates n threads ready to execute work. The tpfree() + function should be called after a thread pool has been used to release all + resources used by the thread pool. */ +static void tpinit(tpool_t *, size_t n); +static void tpfree(tpool_t *); + +/* Wait for all jobs on the given thread pool to be executed. Note that this + function does not destroy the threads or free any resources — those are tasks + for the tpfree() function. */ +static void tpwait(tpool_t *); + +/* Enqueue and dequeue jobs to the thread pools job queue. The tpenq() function + is threadsafe while the _tpdeq() function is not (so don’t use it). When + calling the tpenq() function, the function fn will be queued to be executed + by a thread in the thread pool with the argument arg. If the given argument + needs to be deallocated after the job completes, you can pass the free + argument which will be called with the given argument after use. If free is + NULL, it will be ignored. + + The free() function is a valid argument to the free parameter. */ +static void tpenq(tpool_t *, tfunc_t fn, void *arg, + tfree_func_t _Nullable free); +static struct _tjob *_tpdeq(tpool_t *); + +#endif /* CBS_PTHREAD */ + +/* BEGIN DEFINITIONS */ + +void +strvfree(struct strv *v) +{ + free(v->buf); + memset(v, 0, sizeof(*v)); +} + +void * +bufalloc(void *p, size_t n, size_t m) +{ + if (n && SIZE_MAX / n < m) { + errno = EOVERFLOW; + die(__func__); + } + + if (!(p = realloc(p, n * m))) + die(__func__); + return p; +} + +void +die(const char *fmt, ...) +{ + int e = errno; + va_list ap; + + va_start(ap, fmt); + flockfile(stderr); + fprintf(stderr, "%s: ", *_cbs_argv); + if (fmt) { + vfprintf(stderr, fmt, ap); + fprintf(stderr, ": "); + } + fprintf(stderr, "%s\n", strerror(e)); + exit(EXIT_FAILURE); +} + +void +diex(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + flockfile(stderr); + fprintf(stderr, "%s: ", *_cbs_argv); + vfprintf(stderr, fmt, ap); + fputc('\n', stderr); + exit(EXIT_FAILURE); +} + +void +cbsinit(int argc, char **argv) +{ + char *s; + + _cbs_argc = argc; + _cbs_argv = bufalloc(nullptr, argc, sizeof(char *)); + for (int i = 0; i < argc; i++) { + if (!(_cbs_argv[i] = strdup(argv[i]))) { + /* We might not have set _cbs_argv[0] yet, so we can’t use die() */ + fprintf(stderr, "%s: strdup: %s\n", *argv, strerror(errno)); + exit(EXIT_FAILURE); + } + } + + /* Cd to dirname(argv[0]). We can’t use dirname(3) because it may modify + the source string. */ + if (s = strrchr(_cbs_argv[0], '/')) { + s[0] = '\0'; + if (chdir(_cbs_argv[0]) == -1) + die("chdir: %s", s); + s[0] = '/'; + } +} + +static size_t +_next_powerof2(size_t x) +{ +#if defined(__has_builtin) && __has_builtin(__builtin_clzl) + x = x <= 1 ? 1 : 1 << (64 - __builtin_clzl(x - 1)); +#else + if (x) { + x--; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + if (sizeof(size_t) >= 4) + x |= x >> 16; + if (sizeof(size_t) >= 8) + x |= x >> 32; + } + x++; +#endif + + return x; +} + +bool +binexists(const char *name) +{ + char *p, *path; + + if (!(path = getenv("PATH"))) + diex("PATH environment variable not found"); + + if (!(path = strdup(path))) + die("strdup"); + p = strtok(path, ":"); + while (p) { + char buf[PATH_MAX]; + snprintf(buf, sizeof(buf), "%s/%s", p, name); + if (fexists(buf)) { + free(path); + return true; + } + + p = strtok(nullptr, ":"); + } + + free(path); + return false; +} + +void +cmdaddv(cmd_t *cmd, char **xs, size_t n) +{ + if (cmd->_len + n >= cmd->_cap) { + cmd->_cap = _next_powerof2(cmd->_len + n) + 2; + cmd->_argv = bufalloc(cmd->_argv, cmd->_cap, sizeof(char *)); + } + + memcpy(cmd->_argv + cmd->_len, xs, n * sizeof(*xs)); + cmd->_len += n; + cmd->_argv[cmd->_len] = nullptr; +} + +void +cmdclr(cmd_t *c) +{ + c->_len = 0; + *c->_argv = nullptr; +} + +int +cmdexec(cmd_t c) +{ + return cmdwait(cmdexeca(c)); +} + +pid_t +cmdexeca(cmd_t c) +{ + pid_t pid; + + switch (pid = fork()) { + case -1: + die("fork"); + case 0: + execvp(*c._argv, c._argv); + die("execvp: %s", *c._argv); + } + + return pid; +} + +int +cmdexecb(cmd_t c, char **p, size_t *n) +{ + enum { + FD_R, + FD_W, + }; + pid_t pid; + int fds[2]; + char *buf; + size_t len, blksize; + struct stat sb; + + if (pipe(fds) == -1) + die("pipe"); + + switch (pid = fork()) { + case -1: + die("fork"); + case 0: + close(fds[FD_R]); + if (dup2(fds[FD_W], STDOUT_FILENO) == -1) + die("dup2"); + execvp(*c._argv, c._argv); + die("execvp: %s", *c._argv); + } + + close(fds[FD_W]); + + buf = nullptr; + len = 0; + + blksize = fstat(fds[FD_R], &sb) == -1 ? BUFSIZ : sb.st_blksize; + for (;;) { + /* This can maybe somewhere somehow break some system. I do not care */ + char tmp[blksize]; + ssize_t nr; + + if ((nr = read(fds[FD_R], tmp, blksize)) == -1) + die("read"); + if (!nr) + break; + buf = bufalloc(buf, len + nr + 1, sizeof(char)); + memcpy(buf + len, tmp, nr); + len += nr; + } + + close(fds[FD_R]); + if (buf) + buf[len] = 0; + *p = buf; + *n = len; + return cmdwait(pid); +} + +int +cmdwait(pid_t pid) +{ + for (;;) { + int ws; + if (waitpid(pid, &ws, 0) == -1) + die("waitpid"); + + if (WIFEXITED(ws)) + return WEXITSTATUS(ws); + + if (WIFSIGNALED(ws)) + return 256; + } +} + +/* import shlex + + s = '#define SHELL_SAFE "' + for c in map(chr, range(128)): + if not shlex._find_unsafe(c): + s += c + print(s + '"') */ +#define SHELL_SAFE \ + "%+,-./0123456789:=@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz" + +void +cmdput(cmd_t c) +{ + cmdputf(stdout, c); +} + +void +cmdputf(FILE *stream, cmd_t cmd) +{ + flockfile(stream); + for (size_t i = 0; i < cmd._len; i++) { + bool safe = true; + char *p, *q; + + p = q = cmd._argv[i]; + for (; *q; q++) { + if (!strchr(SHELL_SAFE, *q)) { + safe = false; + break; + } + } + + if (safe) + fputs(p, stream); + else { + putc('\'', stream); + for (q = p; *q; q++) { + if (*q == '\'') + fputs("'\"'\"'", stream); + else + putc(*q, stream); + } + putc('\'', stream); + } + + putc(i == cmd._len - 1 ? '\n' : ' ', stream); + } + funlockfile(stream); +} + +void +env_or_defaultv(struct strv *sv, const char *s, char **p, size_t n) +{ + wordexp_t we; + const char *ev; + + if ((ev = getenv(s)) && *ev) { + switch (wordexp(ev, &we, WRDE_NOCMD)) { + case WRDE_BADCHAR: + case WRDE_BADVAL: + case WRDE_SYNTAX: + errno = EINVAL; + die("wordexp"); + case WRDE_NOSPACE: + errno = ENOMEM; + die("wordexp"); + } + + p = we.we_wordv; + n = we.we_wordc; + } else if (!p) + return; + + sv->buf = bufalloc(sv->buf, sv->len + n, sizeof(*sv->buf)); + for (size_t i = 0; i < n; i++) { + if (!(sv->buf[sv->len + i] = strdup(p[i]))) + die("strdup"); + } + sv->len += n; + + if (ev && *ev) + wordfree(&we); +} + +bool +fexists(const char *f) +{ + return !access(f, F_OK); +} + +int +fmdcmp(const char *lhs, const char *rhs) +{ + struct stat sbl, sbr; + + if (stat(lhs, &sbl) == -1) + die("%s", lhs); + if (stat(rhs, &sbr) == -1) + die("%s", rhs); + + return sbl.st_mtim.tv_sec == sbr.st_mtim.tv_sec + ? sbl.st_mtim.tv_nsec - sbr.st_mtim.tv_nsec + : sbl.st_mtim.tv_sec - sbr.st_mtim.tv_sec; +} + +bool +fmdnewer(const char *lhs, const char *rhs) +{ + return fmdcmp(lhs, rhs) > 0; +} + +bool +fmdolder(const char *lhs, const char *rhs) +{ + return fmdcmp(lhs, rhs) < 0; +} + +bool +foutdatedv(const char *src, const char **deps, size_t n) +{ + if (!fexists(src)) + return true; + for (size_t i = 0; i < n; i++) { + if (fmdolder(src, deps[i])) + return true; + } + return false; +} + +void +_rebuild(char *src) +{ + char *bbn, *sbn, *argv0; + cmd_t cmd = {0}; + size_t bufsiz; + + /* We assume that the compiled binary and the source file are in the same + directory. */ + if (sbn = strrchr(src, '/')) + sbn++; + else + sbn = src; + if (bbn = strrchr(*_cbs_argv, '/')) + bbn++; + else + bbn = src; + + if (!foutdated(bbn, sbn)) + return; + + cmdadd(&cmd, "cc"); +#ifdef CBS_PTHREAD + cmdadd(&cmd, "-lpthread"); +#endif + cmdadd(&cmd, "-o", bbn, sbn); + cmdput(cmd); + if (cmdexec(cmd)) + diex("Compilation of build script failed"); + + cmdclr(&cmd); + + argv0 = bufalloc(nullptr, strlen(bbn) + 3, 1); + *_cbs_argv = argv0; + + *argv0++ = '.'; + *argv0++ = '/'; + strcpy(argv0, bbn); + + cmdaddv(&cmd, _cbs_argv, _cbs_argc); + execvp(*cmd._argv, cmd._argv); + die("execvp: %s", *cmd._argv); +} + +int +nproc(void) +{ +#ifdef _SC_NPROCESSORS_ONLN + return (int)sysconf(_SC_NPROCESSORS_ONLN); +#else + errno = 0; + return -1; +#endif +} + +bool +pcquery(struct strv *vec, char *lib, int flags) +{ + int ec; + char *p; + size_t n; + cmd_t c = {0}; + wordexp_t we; + + p = nullptr; + + cmdadd(&c, "pkg-config"); + if (flags & PKGC_LIBS) + cmdadd(&c, "--libs"); + if (flags & PKGC_CFLAGS) + cmdadd(&c, "--cflags"); + cmdadd(&c, lib); + + if ((ec = cmdexecb(c, &p, &n))) { + if (errno == ENOENT) { + free(c._argv); + return false; + } + diex("pkg-config terminated with exit-code %d", ec); + } + + if (!p) + return true; + + /* Remove trailing newline */ + p[n - 1] = 0; + + switch (wordexp(p, &we, WRDE_NOCMD)) { + case WRDE_BADCHAR: + case WRDE_BADVAL: + case WRDE_SYNTAX: + errno = EINVAL; + die("wordexp"); + case WRDE_NOSPACE: + errno = ENOMEM; + die("wordexp"); + } + + vec->buf = bufalloc(vec->buf, vec->len + we.we_wordc, sizeof(char *)); + for (size_t i = 0; i < we.we_wordc; i++) { + char *p = strdup(we.we_wordv[i]); + if (!p) + die(__func__); + vec->buf[vec->len++] = p; + } + + wordfree(&we); + free(p); + return true; +} + +#ifdef CBS_PTHREAD + +static void * +_tpwork(void *arg) +{ + tpool_t *tp = arg; + + while (!tp->_stop) { + struct _tjob *j; + + pthread_mutex_lock(&tp->_mtx); + while (!tp->_stop && !tp->_head) + pthread_cond_wait(&tp->_cnd, &tp->_mtx); + if (tp->_stop) { + pthread_mutex_unlock(&tp->_mtx); + break; + } + + j = _tpdeq(tp); + pthread_mutex_unlock(&tp->_mtx); + + j->fn(j->arg); + if (j->free) + j->free(j->arg); + free(j); + + pthread_mutex_lock(&tp->_mtx); + tp->_left--; + pthread_cond_broadcast(&tp->_cnd); + pthread_mutex_unlock(&tp->_mtx); + } + + return nullptr; +} + +void +tpinit(tpool_t *tp, size_t n) +{ + tp->_tcnt = n; + tp->_stop = false; + tp->_left = 0; + tp->_head = tp->_tail = nullptr; + tp->_thrds = bufalloc(nullptr, n, sizeof(pthread_t)); + pthread_cond_init(&tp->_cnd, nullptr); + pthread_mutex_init(&tp->_mtx, nullptr); + + for (size_t i = 0; i < n; i++) + pthread_create(tp->_thrds + i, nullptr, _tpwork, tp); +} + +void +tpfree(tpool_t *tp) +{ + tp->_stop = true; + + pthread_mutex_lock(&tp->_mtx); + pthread_cond_broadcast(&tp->_cnd); + pthread_mutex_unlock(&tp->_mtx); + + for (size_t i = 0; i < tp->_tcnt; i++) + pthread_join(tp->_thrds[i], nullptr); + + free(tp->_thrds); + while (tp->_head) { + struct _tjob *j = _tpdeq(tp); + if (j->free) + j->free(j->arg); + free(j); + } + + pthread_cond_destroy(&tp->_cnd); + pthread_mutex_destroy(&tp->_mtx); +} + +struct _tjob * +_tpdeq(tpool_t *tp) +{ + struct _tjob *j = tp->_head; + + if (j) { + tp->_head = tp->_head->next; + if (!tp->_head) + tp->_tail = nullptr; + } + + return j; +} + +void +tpenq(tpool_t *tp, tfunc_t fn, void *arg, tfree_func_t free) +{ + struct _tjob *j = bufalloc(nullptr, 1, sizeof(struct _tjob)); + *j = (struct _tjob){ + .fn = fn, + .arg = arg, + .free = free, + }; + + pthread_mutex_lock(&tp->_mtx); + if (tp->_tail) + tp->_tail->next = j; + if (!tp->_head) + tp->_head = j; + tp->_tail = j; + tp->_left++; + pthread_cond_signal(&tp->_cnd); + pthread_mutex_unlock(&tp->_mtx); +} + +void +tpwait(tpool_t *tp) +{ + pthread_mutex_lock(&tp->_mtx); + while (!tp->_stop && tp->_left) + pthread_cond_wait(&tp->_cnd, &tp->_mtx); + pthread_mutex_unlock(&tp->_mtx); +} + +#endif /* CBS_PTHREAD */ + +#ifdef __GNUC__ +# pragma GCC diagnostic pop +#endif + +#ifdef __APPLE__ +# undef st_mtim +#endif + +#endif /* !C_BUILD_SYSTEM_H */ diff --git a/vendor/librune/data/GraphemeBreakTest.txt b/vendor/librune/data/GraphemeBreakTest.txt new file mode 100644 index 0000000..aeaa01a --- /dev/null +++ b/vendor/librune/data/GraphemeBreakTest.txt @@ -0,0 +1,1187 @@ +0020÷0020 +0020×0308÷0020 +0020÷000D +0020×0308÷000D +0020÷000A +0020×0308÷000A +0020÷0001 +0020×0308÷0001 +0020×034F +0020×0308×034F +0020÷1F1E6 +0020×0308÷1F1E6 +0020÷0600 +0020×0308÷0600 +0020×0A03 +0020×0308×0A03 +0020÷1100 +0020×0308÷1100 +0020÷1160 +0020×0308÷1160 +0020÷11A8 +0020×0308÷11A8 +0020÷AC00 +0020×0308÷AC00 +0020÷AC01 +0020×0308÷AC01 +0020×0900 +0020×0308×0900 +0020×0903 +0020×0308×0903 +0020÷0904 +0020×0308÷0904 +0020÷0D4E +0020×0308÷0D4E +0020÷0915 +0020×0308÷0915 +0020÷231A +0020×0308÷231A +0020×0300 +0020×0308×0300 +0020×093C +0020×0308×093C +0020×094D +0020×0308×094D +0020×200D +0020×0308×200D +0020÷0378 +0020×0308÷0378 +000D÷0020 +000D÷0308÷0020 +000D÷000D +000D÷0308÷000D +000D×000A +000D÷0308÷000A +000D÷0001 +000D÷0308÷0001 +000D÷034F +000D÷0308×034F +000D÷1F1E6 +000D÷0308÷1F1E6 +000D÷0600 +000D÷0308÷0600 +000D÷0A03 +000D÷0308×0A03 +000D÷1100 +000D÷0308÷1100 +000D÷1160 +000D÷0308÷1160 +000D÷11A8 +000D÷0308÷11A8 +000D÷AC00 +000D÷0308÷AC00 +000D÷AC01 +000D÷0308÷AC01 +000D÷0900 +000D÷0308×0900 +000D÷0903 +000D÷0308×0903 +000D÷0904 +000D÷0308÷0904 +000D÷0D4E +000D÷0308÷0D4E +000D÷0915 +000D÷0308÷0915 +000D÷231A +000D÷0308÷231A +000D÷0300 +000D÷0308×0300 +000D÷093C +000D÷0308×093C +000D÷094D +000D÷0308×094D +000D÷200D +000D÷0308×200D +000D÷0378 +000D÷0308÷0378 +000A÷0020 +000A÷0308÷0020 +000A÷000D +000A÷0308÷000D +000A÷000A +000A÷0308÷000A +000A÷0001 +000A÷0308÷0001 +000A÷034F +000A÷0308×034F +000A÷1F1E6 +000A÷0308÷1F1E6 +000A÷0600 +000A÷0308÷0600 +000A÷0A03 +000A÷0308×0A03 +000A÷1100 +000A÷0308÷1100 +000A÷1160 +000A÷0308÷1160 +000A÷11A8 +000A÷0308÷11A8 +000A÷AC00 +000A÷0308÷AC00 +000A÷AC01 +000A÷0308÷AC01 +000A÷0900 +000A÷0308×0900 +000A÷0903 +000A÷0308×0903 +000A÷0904 +000A÷0308÷0904 +000A÷0D4E +000A÷0308÷0D4E +000A÷0915 +000A÷0308÷0915 +000A÷231A +000A÷0308÷231A +000A÷0300 +000A÷0308×0300 +000A÷093C +000A÷0308×093C +000A÷094D +000A÷0308×094D +000A÷200D +000A÷0308×200D +000A÷0378 +000A÷0308÷0378 +0001÷0020 +0001÷0308÷0020 +0001÷000D +0001÷0308÷000D +0001÷000A +0001÷0308÷000A +0001÷0001 +0001÷0308÷0001 +0001÷034F +0001÷0308×034F +0001÷1F1E6 +0001÷0308÷1F1E6 +0001÷0600 +0001÷0308÷0600 +0001÷0A03 +0001÷0308×0A03 +0001÷1100 +0001÷0308÷1100 +0001÷1160 +0001÷0308÷1160 +0001÷11A8 +0001÷0308÷11A8 +0001÷AC00 +0001÷0308÷AC00 +0001÷AC01 +0001÷0308÷AC01 +0001÷0900 +0001÷0308×0900 +0001÷0903 +0001÷0308×0903 +0001÷0904 +0001÷0308÷0904 +0001÷0D4E +0001÷0308÷0D4E +0001÷0915 +0001÷0308÷0915 +0001÷231A +0001÷0308÷231A +0001÷0300 +0001÷0308×0300 +0001÷093C +0001÷0308×093C +0001÷094D +0001÷0308×094D +0001÷200D +0001÷0308×200D +0001÷0378 +0001÷0308÷0378 +034F÷0020 +034F×0308÷0020 +034F÷000D +034F×0308÷000D +034F÷000A +034F×0308÷000A +034F÷0001 +034F×0308÷0001 +034F×034F +034F×0308×034F +034F÷1F1E6 +034F×0308÷1F1E6 +034F÷0600 +034F×0308÷0600 +034F×0A03 +034F×0308×0A03 +034F÷1100 +034F×0308÷1100 +034F÷1160 +034F×0308÷1160 +034F÷11A8 +034F×0308÷11A8 +034F÷AC00 +034F×0308÷AC00 +034F÷AC01 +034F×0308÷AC01 +034F×0900 +034F×0308×0900 +034F×0903 +034F×0308×0903 +034F÷0904 +034F×0308÷0904 +034F÷0D4E +034F×0308÷0D4E +034F÷0915 +034F×0308÷0915 +034F÷231A +034F×0308÷231A +034F×0300 +034F×0308×0300 +034F×093C +034F×0308×093C +034F×094D +034F×0308×094D +034F×200D +034F×0308×200D +034F÷0378 +034F×0308÷0378 +1F1E6÷0020 +1F1E6×0308÷0020 +1F1E6÷000D +1F1E6×0308÷000D +1F1E6÷000A +1F1E6×0308÷000A +1F1E6÷0001 +1F1E6×0308÷0001 +1F1E6×034F +1F1E6×0308×034F +1F1E6×1F1E6 +1F1E6×0308÷1F1E6 +1F1E6÷0600 +1F1E6×0308÷0600 +1F1E6×0A03 +1F1E6×0308×0A03 +1F1E6÷1100 +1F1E6×0308÷1100 +1F1E6÷1160 +1F1E6×0308÷1160 +1F1E6÷11A8 +1F1E6×0308÷11A8 +1F1E6÷AC00 +1F1E6×0308÷AC00 +1F1E6÷AC01 +1F1E6×0308÷AC01 +1F1E6×0900 +1F1E6×0308×0900 +1F1E6×0903 +1F1E6×0308×0903 +1F1E6÷0904 +1F1E6×0308÷0904 +1F1E6÷0D4E +1F1E6×0308÷0D4E +1F1E6÷0915 +1F1E6×0308÷0915 +1F1E6÷231A +1F1E6×0308÷231A +1F1E6×0300 +1F1E6×0308×0300 +1F1E6×093C +1F1E6×0308×093C +1F1E6×094D +1F1E6×0308×094D +1F1E6×200D +1F1E6×0308×200D +1F1E6÷0378 +1F1E6×0308÷0378 +0600×0020 +0600×0308÷0020 +0600÷000D +0600×0308÷000D +0600÷000A +0600×0308÷000A +0600÷0001 +0600×0308÷0001 +0600×034F +0600×0308×034F +0600×1F1E6 +0600×0308÷1F1E6 +0600×0600 +0600×0308÷0600 +0600×0A03 +0600×0308×0A03 +0600×1100 +0600×0308÷1100 +0600×1160 +0600×0308÷1160 +0600×11A8 +0600×0308÷11A8 +0600×AC00 +0600×0308÷AC00 +0600×AC01 +0600×0308÷AC01 +0600×0900 +0600×0308×0900 +0600×0903 +0600×0308×0903 +0600×0904 +0600×0308÷0904 +0600×0D4E +0600×0308÷0D4E +0600×0915 +0600×0308÷0915 +0600×231A +0600×0308÷231A +0600×0300 +0600×0308×0300 +0600×093C +0600×0308×093C +0600×094D +0600×0308×094D +0600×200D +0600×0308×200D +0600×0378 +0600×0308÷0378 +0A03÷0020 +0A03×0308÷0020 +0A03÷000D +0A03×0308÷000D +0A03÷000A +0A03×0308÷000A +0A03÷0001 +0A03×0308÷0001 +0A03×034F +0A03×0308×034F +0A03÷1F1E6 +0A03×0308÷1F1E6 +0A03÷0600 +0A03×0308÷0600 +0A03×0A03 +0A03×0308×0A03 +0A03÷1100 +0A03×0308÷1100 +0A03÷1160 +0A03×0308÷1160 +0A03÷11A8 +0A03×0308÷11A8 +0A03÷AC00 +0A03×0308÷AC00 +0A03÷AC01 +0A03×0308÷AC01 +0A03×0900 +0A03×0308×0900 +0A03×0903 +0A03×0308×0903 +0A03÷0904 +0A03×0308÷0904 +0A03÷0D4E +0A03×0308÷0D4E +0A03÷0915 +0A03×0308÷0915 +0A03÷231A +0A03×0308÷231A +0A03×0300 +0A03×0308×0300 +0A03×093C +0A03×0308×093C +0A03×094D +0A03×0308×094D +0A03×200D +0A03×0308×200D +0A03÷0378 +0A03×0308÷0378 +1100÷0020 +1100×0308÷0020 +1100÷000D +1100×0308÷000D +1100÷000A +1100×0308÷000A +1100÷0001 +1100×0308÷0001 +1100×034F +1100×0308×034F +1100÷1F1E6 +1100×0308÷1F1E6 +1100÷0600 +1100×0308÷0600 +1100×0A03 +1100×0308×0A03 +1100×1100 +1100×0308÷1100 +1100×1160 +1100×0308÷1160 +1100÷11A8 +1100×0308÷11A8 +1100×AC00 +1100×0308÷AC00 +1100×AC01 +1100×0308÷AC01 +1100×0900 +1100×0308×0900 +1100×0903 +1100×0308×0903 +1100÷0904 +1100×0308÷0904 +1100÷0D4E +1100×0308÷0D4E +1100÷0915 +1100×0308÷0915 +1100÷231A +1100×0308÷231A +1100×0300 +1100×0308×0300 +1100×093C +1100×0308×093C +1100×094D +1100×0308×094D +1100×200D +1100×0308×200D +1100÷0378 +1100×0308÷0378 +1160÷0020 +1160×0308÷0020 +1160÷000D +1160×0308÷000D +1160÷000A +1160×0308÷000A +1160÷0001 +1160×0308÷0001 +1160×034F +1160×0308×034F +1160÷1F1E6 +1160×0308÷1F1E6 +1160÷0600 +1160×0308÷0600 +1160×0A03 +1160×0308×0A03 +1160÷1100 +1160×0308÷1100 +1160×1160 +1160×0308÷1160 +1160×11A8 +1160×0308÷11A8 +1160÷AC00 +1160×0308÷AC00 +1160÷AC01 +1160×0308÷AC01 +1160×0900 +1160×0308×0900 +1160×0903 +1160×0308×0903 +1160÷0904 +1160×0308÷0904 +1160÷0D4E +1160×0308÷0D4E +1160÷0915 +1160×0308÷0915 +1160÷231A +1160×0308÷231A +1160×0300 +1160×0308×0300 +1160×093C +1160×0308×093C +1160×094D +1160×0308×094D +1160×200D +1160×0308×200D +1160÷0378 +1160×0308÷0378 +11A8÷0020 +11A8×0308÷0020 +11A8÷000D +11A8×0308÷000D +11A8÷000A +11A8×0308÷000A +11A8÷0001 +11A8×0308÷0001 +11A8×034F +11A8×0308×034F +11A8÷1F1E6 +11A8×0308÷1F1E6 +11A8÷0600 +11A8×0308÷0600 +11A8×0A03 +11A8×0308×0A03 +11A8÷1100 +11A8×0308÷1100 +11A8÷1160 +11A8×0308÷1160 +11A8×11A8 +11A8×0308÷11A8 +11A8÷AC00 +11A8×0308÷AC00 +11A8÷AC01 +11A8×0308÷AC01 +11A8×0900 +11A8×0308×0900 +11A8×0903 +11A8×0308×0903 +11A8÷0904 +11A8×0308÷0904 +11A8÷0D4E +11A8×0308÷0D4E +11A8÷0915 +11A8×0308÷0915 +11A8÷231A +11A8×0308÷231A +11A8×0300 +11A8×0308×0300 +11A8×093C +11A8×0308×093C +11A8×094D +11A8×0308×094D +11A8×200D +11A8×0308×200D +11A8÷0378 +11A8×0308÷0378 +AC00÷0020 +AC00×0308÷0020 +AC00÷000D +AC00×0308÷000D +AC00÷000A +AC00×0308÷000A +AC00÷0001 +AC00×0308÷0001 +AC00×034F +AC00×0308×034F +AC00÷1F1E6 +AC00×0308÷1F1E6 +AC00÷0600 +AC00×0308÷0600 +AC00×0A03 +AC00×0308×0A03 +AC00÷1100 +AC00×0308÷1100 +AC00×1160 +AC00×0308÷1160 +AC00×11A8 +AC00×0308÷11A8 +AC00÷AC00 +AC00×0308÷AC00 +AC00÷AC01 +AC00×0308÷AC01 +AC00×0900 +AC00×0308×0900 +AC00×0903 +AC00×0308×0903 +AC00÷0904 +AC00×0308÷0904 +AC00÷0D4E +AC00×0308÷0D4E +AC00÷0915 +AC00×0308÷0915 +AC00÷231A +AC00×0308÷231A +AC00×0300 +AC00×0308×0300 +AC00×093C +AC00×0308×093C +AC00×094D +AC00×0308×094D +AC00×200D +AC00×0308×200D +AC00÷0378 +AC00×0308÷0378 +AC01÷0020 +AC01×0308÷0020 +AC01÷000D +AC01×0308÷000D +AC01÷000A +AC01×0308÷000A +AC01÷0001 +AC01×0308÷0001 +AC01×034F +AC01×0308×034F +AC01÷1F1E6 +AC01×0308÷1F1E6 +AC01÷0600 +AC01×0308÷0600 +AC01×0A03 +AC01×0308×0A03 +AC01÷1100 +AC01×0308÷1100 +AC01÷1160 +AC01×0308÷1160 +AC01×11A8 +AC01×0308÷11A8 +AC01÷AC00 +AC01×0308÷AC00 +AC01÷AC01 +AC01×0308÷AC01 +AC01×0900 +AC01×0308×0900 +AC01×0903 +AC01×0308×0903 +AC01÷0904 +AC01×0308÷0904 +AC01÷0D4E +AC01×0308÷0D4E +AC01÷0915 +AC01×0308÷0915 +AC01÷231A +AC01×0308÷231A +AC01×0300 +AC01×0308×0300 +AC01×093C +AC01×0308×093C +AC01×094D +AC01×0308×094D +AC01×200D +AC01×0308×200D +AC01÷0378 +AC01×0308÷0378 +0900÷0020 +0900×0308÷0020 +0900÷000D +0900×0308÷000D +0900÷000A +0900×0308÷000A +0900÷0001 +0900×0308÷0001 +0900×034F +0900×0308×034F +0900÷1F1E6 +0900×0308÷1F1E6 +0900÷0600 +0900×0308÷0600 +0900×0A03 +0900×0308×0A03 +0900÷1100 +0900×0308÷1100 +0900÷1160 +0900×0308÷1160 +0900÷11A8 +0900×0308÷11A8 +0900÷AC00 +0900×0308÷AC00 +0900÷AC01 +0900×0308÷AC01 +0900×0900 +0900×0308×0900 +0900×0903 +0900×0308×0903 +0900÷0904 +0900×0308÷0904 +0900÷0D4E +0900×0308÷0D4E +0900÷0915 +0900×0308÷0915 +0900÷231A +0900×0308÷231A +0900×0300 +0900×0308×0300 +0900×093C +0900×0308×093C +0900×094D +0900×0308×094D +0900×200D +0900×0308×200D +0900÷0378 +0900×0308÷0378 +0903÷0020 +0903×0308÷0020 +0903÷000D +0903×0308÷000D +0903÷000A +0903×0308÷000A +0903÷0001 +0903×0308÷0001 +0903×034F +0903×0308×034F +0903÷1F1E6 +0903×0308÷1F1E6 +0903÷0600 +0903×0308÷0600 +0903×0A03 +0903×0308×0A03 +0903÷1100 +0903×0308÷1100 +0903÷1160 +0903×0308÷1160 +0903÷11A8 +0903×0308÷11A8 +0903÷AC00 +0903×0308÷AC00 +0903÷AC01 +0903×0308÷AC01 +0903×0900 +0903×0308×0900 +0903×0903 +0903×0308×0903 +0903÷0904 +0903×0308÷0904 +0903÷0D4E +0903×0308÷0D4E +0903÷0915 +0903×0308÷0915 +0903÷231A +0903×0308÷231A +0903×0300 +0903×0308×0300 +0903×093C +0903×0308×093C +0903×094D +0903×0308×094D +0903×200D +0903×0308×200D +0903÷0378 +0903×0308÷0378 +0904÷0020 +0904×0308÷0020 +0904÷000D +0904×0308÷000D +0904÷000A +0904×0308÷000A +0904÷0001 +0904×0308÷0001 +0904×034F +0904×0308×034F +0904÷1F1E6 +0904×0308÷1F1E6 +0904÷0600 +0904×0308÷0600 +0904×0A03 +0904×0308×0A03 +0904÷1100 +0904×0308÷1100 +0904÷1160 +0904×0308÷1160 +0904÷11A8 +0904×0308÷11A8 +0904÷AC00 +0904×0308÷AC00 +0904÷AC01 +0904×0308÷AC01 +0904×0900 +0904×0308×0900 +0904×0903 +0904×0308×0903 +0904÷0904 +0904×0308÷0904 +0904÷0D4E +0904×0308÷0D4E +0904÷0915 +0904×0308÷0915 +0904÷231A +0904×0308÷231A +0904×0300 +0904×0308×0300 +0904×093C +0904×0308×093C +0904×094D +0904×0308×094D +0904×200D +0904×0308×200D +0904÷0378 +0904×0308÷0378 +0D4E×0020 +0D4E×0308÷0020 +0D4E÷000D +0D4E×0308÷000D +0D4E÷000A +0D4E×0308÷000A +0D4E÷0001 +0D4E×0308÷0001 +0D4E×034F +0D4E×0308×034F +0D4E×1F1E6 +0D4E×0308÷1F1E6 +0D4E×0600 +0D4E×0308÷0600 +0D4E×0A03 +0D4E×0308×0A03 +0D4E×1100 +0D4E×0308÷1100 +0D4E×1160 +0D4E×0308÷1160 +0D4E×11A8 +0D4E×0308÷11A8 +0D4E×AC00 +0D4E×0308÷AC00 +0D4E×AC01 +0D4E×0308÷AC01 +0D4E×0900 +0D4E×0308×0900 +0D4E×0903 +0D4E×0308×0903 +0D4E×0904 +0D4E×0308÷0904 +0D4E×0D4E +0D4E×0308÷0D4E +0D4E×0915 +0D4E×0308÷0915 +0D4E×231A +0D4E×0308÷231A +0D4E×0300 +0D4E×0308×0300 +0D4E×093C +0D4E×0308×093C +0D4E×094D +0D4E×0308×094D +0D4E×200D +0D4E×0308×200D +0D4E×0378 +0D4E×0308÷0378 +0915÷0020 +0915×0308÷0020 +0915÷000D +0915×0308÷000D +0915÷000A +0915×0308÷000A +0915÷0001 +0915×0308÷0001 +0915×034F +0915×0308×034F +0915÷1F1E6 +0915×0308÷1F1E6 +0915÷0600 +0915×0308÷0600 +0915×0A03 +0915×0308×0A03 +0915÷1100 +0915×0308÷1100 +0915÷1160 +0915×0308÷1160 +0915÷11A8 +0915×0308÷11A8 +0915÷AC00 +0915×0308÷AC00 +0915÷AC01 +0915×0308÷AC01 +0915×0900 +0915×0308×0900 +0915×0903 +0915×0308×0903 +0915÷0904 +0915×0308÷0904 +0915÷0D4E +0915×0308÷0D4E +0915÷0915 +0915×0308÷0915 +0915÷231A +0915×0308÷231A +0915×0300 +0915×0308×0300 +0915×093C +0915×0308×093C +0915×094D +0915×0308×094D +0915×200D +0915×0308×200D +0915÷0378 +0915×0308÷0378 +231A÷0020 +231A×0308÷0020 +231A÷000D +231A×0308÷000D +231A÷000A +231A×0308÷000A +231A÷0001 +231A×0308÷0001 +231A×034F +231A×0308×034F +231A÷1F1E6 +231A×0308÷1F1E6 +231A÷0600 +231A×0308÷0600 +231A×0A03 +231A×0308×0A03 +231A÷1100 +231A×0308÷1100 +231A÷1160 +231A×0308÷1160 +231A÷11A8 +231A×0308÷11A8 +231A÷AC00 +231A×0308÷AC00 +231A÷AC01 +231A×0308÷AC01 +231A×0900 +231A×0308×0900 +231A×0903 +231A×0308×0903 +231A÷0904 +231A×0308÷0904 +231A÷0D4E +231A×0308÷0D4E +231A÷0915 +231A×0308÷0915 +231A÷231A +231A×0308÷231A +231A×0300 +231A×0308×0300 +231A×093C +231A×0308×093C +231A×094D +231A×0308×094D +231A×200D +231A×0308×200D +231A÷0378 +231A×0308÷0378 +0300÷0020 +0300×0308÷0020 +0300÷000D +0300×0308÷000D +0300÷000A +0300×0308÷000A +0300÷0001 +0300×0308÷0001 +0300×034F +0300×0308×034F +0300÷1F1E6 +0300×0308÷1F1E6 +0300÷0600 +0300×0308÷0600 +0300×0A03 +0300×0308×0A03 +0300÷1100 +0300×0308÷1100 +0300÷1160 +0300×0308÷1160 +0300÷11A8 +0300×0308÷11A8 +0300÷AC00 +0300×0308÷AC00 +0300÷AC01 +0300×0308÷AC01 +0300×0900 +0300×0308×0900 +0300×0903 +0300×0308×0903 +0300÷0904 +0300×0308÷0904 +0300÷0D4E +0300×0308÷0D4E +0300÷0915 +0300×0308÷0915 +0300÷231A +0300×0308÷231A +0300×0300 +0300×0308×0300 +0300×093C +0300×0308×093C +0300×094D +0300×0308×094D +0300×200D +0300×0308×200D +0300÷0378 +0300×0308÷0378 +093C÷0020 +093C×0308÷0020 +093C÷000D +093C×0308÷000D +093C÷000A +093C×0308÷000A +093C÷0001 +093C×0308÷0001 +093C×034F +093C×0308×034F +093C÷1F1E6 +093C×0308÷1F1E6 +093C÷0600 +093C×0308÷0600 +093C×0A03 +093C×0308×0A03 +093C÷1100 +093C×0308÷1100 +093C÷1160 +093C×0308÷1160 +093C÷11A8 +093C×0308÷11A8 +093C÷AC00 +093C×0308÷AC00 +093C÷AC01 +093C×0308÷AC01 +093C×0900 +093C×0308×0900 +093C×0903 +093C×0308×0903 +093C÷0904 +093C×0308÷0904 +093C÷0D4E +093C×0308÷0D4E +093C÷0915 +093C×0308÷0915 +093C÷231A +093C×0308÷231A +093C×0300 +093C×0308×0300 +093C×093C +093C×0308×093C +093C×094D +093C×0308×094D +093C×200D +093C×0308×200D +093C÷0378 +093C×0308÷0378 +094D÷0020 +094D×0308÷0020 +094D÷000D +094D×0308÷000D +094D÷000A +094D×0308÷000A +094D÷0001 +094D×0308÷0001 +094D×034F +094D×0308×034F +094D÷1F1E6 +094D×0308÷1F1E6 +094D÷0600 +094D×0308÷0600 +094D×0A03 +094D×0308×0A03 +094D÷1100 +094D×0308÷1100 +094D÷1160 +094D×0308÷1160 +094D÷11A8 +094D×0308÷11A8 +094D÷AC00 +094D×0308÷AC00 +094D÷AC01 +094D×0308÷AC01 +094D×0900 +094D×0308×0900 +094D×0903 +094D×0308×0903 +094D÷0904 +094D×0308÷0904 +094D÷0D4E +094D×0308÷0D4E +094D÷0915 +094D×0308÷0915 +094D÷231A +094D×0308÷231A +094D×0300 +094D×0308×0300 +094D×093C +094D×0308×093C +094D×094D +094D×0308×094D +094D×200D +094D×0308×200D +094D÷0378 +094D×0308÷0378 +200D÷0020 +200D×0308÷0020 +200D÷000D +200D×0308÷000D +200D÷000A +200D×0308÷000A +200D÷0001 +200D×0308÷0001 +200D×034F +200D×0308×034F +200D÷1F1E6 +200D×0308÷1F1E6 +200D÷0600 +200D×0308÷0600 +200D×0A03 +200D×0308×0A03 +200D÷1100 +200D×0308÷1100 +200D÷1160 +200D×0308÷1160 +200D÷11A8 +200D×0308÷11A8 +200D÷AC00 +200D×0308÷AC00 +200D÷AC01 +200D×0308÷AC01 +200D×0900 +200D×0308×0900 +200D×0903 +200D×0308×0903 +200D÷0904 +200D×0308÷0904 +200D÷0D4E +200D×0308÷0D4E +200D÷0915 +200D×0308÷0915 +200D÷231A +200D×0308÷231A +200D×0300 +200D×0308×0300 +200D×093C +200D×0308×093C +200D×094D +200D×0308×094D +200D×200D +200D×0308×200D +200D÷0378 +200D×0308÷0378 +0378÷0020 +0378×0308÷0020 +0378÷000D +0378×0308÷000D +0378÷000A +0378×0308÷000A +0378÷0001 +0378×0308÷0001 +0378×034F +0378×0308×034F +0378÷1F1E6 +0378×0308÷1F1E6 +0378÷0600 +0378×0308÷0600 +0378×0A03 +0378×0308×0A03 +0378÷1100 +0378×0308÷1100 +0378÷1160 +0378×0308÷1160 +0378÷11A8 +0378×0308÷11A8 +0378÷AC00 +0378×0308÷AC00 +0378÷AC01 +0378×0308÷AC01 +0378×0900 +0378×0308×0900 +0378×0903 +0378×0308×0903 +0378÷0904 +0378×0308÷0904 +0378÷0D4E +0378×0308÷0D4E +0378÷0915 +0378×0308÷0915 +0378÷231A +0378×0308÷231A +0378×0300 +0378×0308×0300 +0378×093C +0378×0308×093C +0378×094D +0378×0308×094D +0378×200D +0378×0308×200D +0378÷0378 +0378×0308÷0378 +000D×000A÷0061÷000A÷0308 +0061×0308 +0020×200D÷0646 +0646×200D÷0020 +1100×1100 +AC00×11A8÷1100 +AC01×11A8÷1100 +1F1E6×1F1E7÷1F1E8÷0062 +0061÷1F1E6×1F1E7÷1F1E8÷0062 +0061÷1F1E6×1F1E7×200D÷1F1E8÷0062 +0061÷1F1E6×200D÷1F1E7×1F1E8÷0062 +0061÷1F1E6×1F1E7÷1F1E8×1F1E9÷0062 +0061×200D +0061×0308÷0062 +0061×0903÷0062 +0061÷0600×0062 +1F476×1F3FF÷1F476 +0061×1F3FF÷1F476 +0061×1F3FF÷1F476×200D×1F6D1 +1F476×1F3FF×0308×200D×1F476×1F3FF +1F6D1×200D×1F6D1 +0061×200D÷1F6D1 +2701×200D×2701 +0061×200D÷2701 +0915÷0924 +0915×094D×0924 +0915×094D×094D×0924 +0915×094D×200D×0924 +0915×093C×200D×094D×0924 +0915×093C×094D×200D×0924 +0915×094D×0924×094D×092F +0915×094D÷0061 +0061×094D÷0924 +003F×094D÷0924 +0915×094D×094D×0924 diff --git a/vendor/librune/data/emoji-data.txt b/vendor/librune/data/emoji-data.txt new file mode 100644 index 0000000..0ba10e9 --- /dev/null +++ b/vendor/librune/data/emoji-data.txt @@ -0,0 +1,1320 @@ +# emoji-data.txt +# Date: 2023-02-01, 02:22:54 GMT +# © 2023 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html +# +# Emoji Data for UTS #51 +# Used with Emoji Version 15.1 and subsequent minor revisions (if any) +# +# For documentation and usage, see https://www.unicode.org/reports/tr51 +# +# Format: +# <codepoint(s)> ; <property> # <comments> +# Note: there is no guarantee as to the structure of whitespace or comments +# +# Characters and sequences are listed in code point order. Users should be shown a more natural order. +# See the CLDR collation order for Emoji. + + +# ================================================ + +# All omitted code points have Emoji=No + +0023 ; Emoji # E0.0 [1] (#️) hash sign +002A ; Emoji # E0.0 [1] (*️) asterisk +0030..0039 ; Emoji # E0.0 [10] (0️..9️) digit zero..digit nine +00A9 ; Emoji # E0.6 [1] (©️) copyright +00AE ; Emoji # E0.6 [1] (®️) registered +203C ; Emoji # E0.6 [1] (‼️) double exclamation mark +2049 ; Emoji # E0.6 [1] (⁉️) exclamation question mark +2122 ; Emoji # E0.6 [1] (™️) trade mark +2139 ; Emoji # E0.6 [1] (ℹ️) information +2194..2199 ; Emoji # E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow +21A9..21AA ; Emoji # E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right +231A..231B ; Emoji # E0.6 [2] (⌚..⌛) watch..hourglass done +2328 ; Emoji # E1.0 [1] (⌨️) keyboard +23CF ; Emoji # E1.0 [1] (⏏️) eject button +23E9..23EC ; Emoji # E0.6 [4] (⏩..⏬) fast-forward button..fast down button +23ED..23EE ; Emoji # E0.7 [2] (⏭️..⏮️) next track button..last track button +23EF ; Emoji # E1.0 [1] (⏯️) play or pause button +23F0 ; Emoji # E0.6 [1] (⏰) alarm clock +23F1..23F2 ; Emoji # E1.0 [2] (⏱️..⏲️) stopwatch..timer clock +23F3 ; Emoji # E0.6 [1] (⏳) hourglass not done +23F8..23FA ; Emoji # E0.7 [3] (⏸️..⏺️) pause button..record button +24C2 ; Emoji # E0.6 [1] (Ⓜ️) circled M +25AA..25AB ; Emoji # E0.6 [2] (▪️..▫️) black small square..white small square +25B6 ; Emoji # E0.6 [1] (▶️) play button +25C0 ; Emoji # E0.6 [1] (◀️) reverse button +25FB..25FE ; Emoji # E0.6 [4] (◻️..◾) white medium square..black medium-small square +2600..2601 ; Emoji # E0.6 [2] (☀️..☁️) sun..cloud +2602..2603 ; Emoji # E0.7 [2] (☂️..☃️) umbrella..snowman +2604 ; Emoji # E1.0 [1] (☄️) comet +260E ; Emoji # E0.6 [1] (☎️) telephone +2611 ; Emoji # E0.6 [1] (☑️) check box with check +2614..2615 ; Emoji # E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage +2618 ; Emoji # E1.0 [1] (☘️) shamrock +261D ; Emoji # E0.6 [1] (☝️) index pointing up +2620 ; Emoji # E1.0 [1] (☠️) skull and crossbones +2622..2623 ; Emoji # E1.0 [2] (☢️..☣️) radioactive..biohazard +2626 ; Emoji # E1.0 [1] (☦️) orthodox cross +262A ; Emoji # E0.7 [1] (☪️) star and crescent +262E ; Emoji # E1.0 [1] (☮️) peace symbol +262F ; Emoji # E0.7 [1] (☯️) yin yang +2638..2639 ; Emoji # E0.7 [2] (☸️..☹️) wheel of dharma..frowning face +263A ; Emoji # E0.6 [1] (☺️) smiling face +2640 ; Emoji # E4.0 [1] (♀️) female sign +2642 ; Emoji # E4.0 [1] (♂️) male sign +2648..2653 ; Emoji # E0.6 [12] (♈..♓) Aries..Pisces +265F ; Emoji # E11.0 [1] (♟️) chess pawn +2660 ; Emoji # E0.6 [1] (♠️) spade suit +2663 ; Emoji # E0.6 [1] (♣️) club suit +2665..2666 ; Emoji # E0.6 [2] (♥️..♦️) heart suit..diamond suit +2668 ; Emoji # E0.6 [1] (♨️) hot springs +267B ; Emoji # E0.6 [1] (♻️) recycling symbol +267E ; Emoji # E11.0 [1] (♾️) infinity +267F ; Emoji # E0.6 [1] (♿) wheelchair symbol +2692 ; Emoji # E1.0 [1] (⚒️) hammer and pick +2693 ; Emoji # E0.6 [1] (⚓) anchor +2694 ; Emoji # E1.0 [1] (⚔️) crossed swords +2695 ; Emoji # E4.0 [1] (⚕️) medical symbol +2696..2697 ; Emoji # E1.0 [2] (⚖️..⚗️) balance scale..alembic +2699 ; Emoji # E1.0 [1] (⚙️) gear +269B..269C ; Emoji # E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis +26A0..26A1 ; Emoji # E0.6 [2] (⚠️..⚡) warning..high voltage +26A7 ; Emoji # E13.0 [1] (⚧️) transgender symbol +26AA..26AB ; Emoji # E0.6 [2] (⚪..⚫) white circle..black circle +26B0..26B1 ; Emoji # E1.0 [2] (⚰️..⚱️) coffin..funeral urn +26BD..26BE ; Emoji # E0.6 [2] (⚽..⚾) soccer ball..baseball +26C4..26C5 ; Emoji # E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud +26C8 ; Emoji # E0.7 [1] (⛈️) cloud with lightning and rain +26CE ; Emoji # E0.6 [1] (⛎) Ophiuchus +26CF ; Emoji # E0.7 [1] (⛏️) pick +26D1 ; Emoji # E0.7 [1] (⛑️) rescue worker’s helmet +26D3 ; Emoji # E0.7 [1] (⛓️) chains +26D4 ; Emoji # E0.6 [1] (⛔) no entry +26E9 ; Emoji # E0.7 [1] (⛩️) shinto shrine +26EA ; Emoji # E0.6 [1] (⛪) church +26F0..26F1 ; Emoji # E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground +26F2..26F3 ; Emoji # E0.6 [2] (⛲..⛳) fountain..flag in hole +26F4 ; Emoji # E0.7 [1] (⛴️) ferry +26F5 ; Emoji # E0.6 [1] (⛵) sailboat +26F7..26F9 ; Emoji # E0.7 [3] (⛷️..⛹️) skier..person bouncing ball +26FA ; Emoji # E0.6 [1] (⛺) tent +26FD ; Emoji # E0.6 [1] (⛽) fuel pump +2702 ; Emoji # E0.6 [1] (✂️) scissors +2705 ; Emoji # E0.6 [1] (✅) check mark button +2708..270C ; Emoji # E0.6 [5] (✈️..✌️) airplane..victory hand +270D ; Emoji # E0.7 [1] (✍️) writing hand +270F ; Emoji # E0.6 [1] (✏️) pencil +2712 ; Emoji # E0.6 [1] (✒️) black nib +2714 ; Emoji # E0.6 [1] (✔️) check mark +2716 ; Emoji # E0.6 [1] (✖️) multiply +271D ; Emoji # E0.7 [1] (✝️) latin cross +2721 ; Emoji # E0.7 [1] (✡️) star of David +2728 ; Emoji # E0.6 [1] (✨) sparkles +2733..2734 ; Emoji # E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star +2744 ; Emoji # E0.6 [1] (❄️) snowflake +2747 ; Emoji # E0.6 [1] (❇️) sparkle +274C ; Emoji # E0.6 [1] (❌) cross mark +274E ; Emoji # E0.6 [1] (❎) cross mark button +2753..2755 ; Emoji # E0.6 [3] (❓..❕) red question mark..white exclamation mark +2757 ; Emoji # E0.6 [1] (❗) red exclamation mark +2763 ; Emoji # E1.0 [1] (❣️) heart exclamation +2764 ; Emoji # E0.6 [1] (❤️) red heart +2795..2797 ; Emoji # E0.6 [3] (➕..➗) plus..divide +27A1 ; Emoji # E0.6 [1] (➡️) right arrow +27B0 ; Emoji # E0.6 [1] (➰) curly loop +27BF ; Emoji # E1.0 [1] (➿) double curly loop +2934..2935 ; Emoji # E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down +2B05..2B07 ; Emoji # E0.6 [3] (⬅️..⬇️) left arrow..down arrow +2B1B..2B1C ; Emoji # E0.6 [2] (⬛..⬜) black large square..white large square +2B50 ; Emoji # E0.6 [1] (⭐) star +2B55 ; Emoji # E0.6 [1] (⭕) hollow red circle +3030 ; Emoji # E0.6 [1] (〰️) wavy dash +303D ; Emoji # E0.6 [1] (〽️) part alternation mark +3297 ; Emoji # E0.6 [1] (㊗️) Japanese “congratulations” button +3299 ; Emoji # E0.6 [1] (㊙️) Japanese “secret” button +1F004 ; Emoji # E0.6 [1] (🀄) mahjong red dragon +1F0CF ; Emoji # E0.6 [1] (🃏) joker +1F170..1F171 ; Emoji # E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) +1F17E..1F17F ; Emoji # E0.6 [2] (🅾️..🅿️) O button (blood type)..P button +1F18E ; Emoji # E0.6 [1] (🆎) AB button (blood type) +1F191..1F19A ; Emoji # E0.6 [10] (🆑..🆚) CL button..VS button +1F1E6..1F1FF ; Emoji # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z +1F201..1F202 ; Emoji # E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button +1F21A ; Emoji # E0.6 [1] (🈚) Japanese “free of charge” button +1F22F ; Emoji # E0.6 [1] (🈯) Japanese “reserved” button +1F232..1F23A ; Emoji # E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button +1F250..1F251 ; Emoji # E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button +1F300..1F30C ; Emoji # E0.6 [13] (🌀..🌌) cyclone..milky way +1F30D..1F30E ; Emoji # E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas +1F30F ; Emoji # E0.6 [1] (🌏) globe showing Asia-Australia +1F310 ; Emoji # E1.0 [1] (🌐) globe with meridians +1F311 ; Emoji # E0.6 [1] (🌑) new moon +1F312 ; Emoji # E1.0 [1] (🌒) waxing crescent moon +1F313..1F315 ; Emoji # E0.6 [3] (🌓..🌕) first quarter moon..full moon +1F316..1F318 ; Emoji # E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon +1F319 ; Emoji # E0.6 [1] (🌙) crescent moon +1F31A ; Emoji # E1.0 [1] (🌚) new moon face +1F31B ; Emoji # E0.6 [1] (🌛) first quarter moon face +1F31C ; Emoji # E0.7 [1] (🌜) last quarter moon face +1F31D..1F31E ; Emoji # E1.0 [2] (🌝..🌞) full moon face..sun with face +1F31F..1F320 ; Emoji # E0.6 [2] (🌟..🌠) glowing star..shooting star +1F321 ; Emoji # E0.7 [1] (🌡️) thermometer +1F324..1F32C ; Emoji # E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face +1F32D..1F32F ; Emoji # E1.0 [3] (🌭..🌯) hot dog..burrito +1F330..1F331 ; Emoji # E0.6 [2] (🌰..🌱) chestnut..seedling +1F332..1F333 ; Emoji # E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree +1F334..1F335 ; Emoji # E0.6 [2] (🌴..🌵) palm tree..cactus +1F336 ; Emoji # E0.7 [1] (🌶️) hot pepper +1F337..1F34A ; Emoji # E0.6 [20] (🌷..🍊) tulip..tangerine +1F34B ; Emoji # E1.0 [1] (🍋) lemon +1F34C..1F34F ; Emoji # E0.6 [4] (🍌..🍏) banana..green apple +1F350 ; Emoji # E1.0 [1] (🍐) pear +1F351..1F37B ; Emoji # E0.6 [43] (🍑..🍻) peach..clinking beer mugs +1F37C ; Emoji # E1.0 [1] (🍼) baby bottle +1F37D ; Emoji # E0.7 [1] (🍽️) fork and knife with plate +1F37E..1F37F ; Emoji # E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn +1F380..1F393 ; Emoji # E0.6 [20] (🎀..🎓) ribbon..graduation cap +1F396..1F397 ; Emoji # E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon +1F399..1F39B ; Emoji # E0.7 [3] (🎙️..🎛️) studio microphone..control knobs +1F39E..1F39F ; Emoji # E0.7 [2] (🎞️..🎟️) film frames..admission tickets +1F3A0..1F3C4 ; Emoji # E0.6 [37] (🎠..🏄) carousel horse..person surfing +1F3C5 ; Emoji # E1.0 [1] (🏅) sports medal +1F3C6 ; Emoji # E0.6 [1] (🏆) trophy +1F3C7 ; Emoji # E1.0 [1] (🏇) horse racing +1F3C8 ; Emoji # E0.6 [1] (🏈) american football +1F3C9 ; Emoji # E1.0 [1] (🏉) rugby football +1F3CA ; Emoji # E0.6 [1] (🏊) person swimming +1F3CB..1F3CE ; Emoji # E0.7 [4] (🏋️..🏎️) person lifting weights..racing car +1F3CF..1F3D3 ; Emoji # E1.0 [5] (🏏..🏓) cricket game..ping pong +1F3D4..1F3DF ; Emoji # E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium +1F3E0..1F3E3 ; Emoji # E0.6 [4] (🏠..🏣) house..Japanese post office +1F3E4 ; Emoji # E1.0 [1] (🏤) post office +1F3E5..1F3F0 ; Emoji # E0.6 [12] (🏥..🏰) hospital..castle +1F3F3 ; Emoji # E0.7 [1] (🏳️) white flag +1F3F4 ; Emoji # E1.0 [1] (🏴) black flag +1F3F5 ; Emoji # E0.7 [1] (🏵️) rosette +1F3F7 ; Emoji # E0.7 [1] (🏷️) label +1F3F8..1F407 ; Emoji # E1.0 [16] (🏸..🐇) badminton..rabbit +1F408 ; Emoji # E0.7 [1] (🐈) cat +1F409..1F40B ; Emoji # E1.0 [3] (🐉..🐋) dragon..whale +1F40C..1F40E ; Emoji # E0.6 [3] (🐌..🐎) snail..horse +1F40F..1F410 ; Emoji # E1.0 [2] (🐏..🐐) ram..goat +1F411..1F412 ; Emoji # E0.6 [2] (🐑..🐒) ewe..monkey +1F413 ; Emoji # E1.0 [1] (🐓) rooster +1F414 ; Emoji # E0.6 [1] (🐔) chicken +1F415 ; Emoji # E0.7 [1] (🐕) dog +1F416 ; Emoji # E1.0 [1] (🐖) pig +1F417..1F429 ; Emoji # E0.6 [19] (🐗..🐩) boar..poodle +1F42A ; Emoji # E1.0 [1] (🐪) camel +1F42B..1F43E ; Emoji # E0.6 [20] (🐫..🐾) two-hump camel..paw prints +1F43F ; Emoji # E0.7 [1] (🐿️) chipmunk +1F440 ; Emoji # E0.6 [1] (👀) eyes +1F441 ; Emoji # E0.7 [1] (👁️) eye +1F442..1F464 ; Emoji # E0.6 [35] (👂..👤) ear..bust in silhouette +1F465 ; Emoji # E1.0 [1] (👥) busts in silhouette +1F466..1F46B ; Emoji # E0.6 [6] (👦..👫) boy..woman and man holding hands +1F46C..1F46D ; Emoji # E1.0 [2] (👬..👭) men holding hands..women holding hands +1F46E..1F4AC ; Emoji # E0.6 [63] (👮..💬) police officer..speech balloon +1F4AD ; Emoji # E1.0 [1] (💭) thought balloon +1F4AE..1F4B5 ; Emoji # E0.6 [8] (💮..💵) white flower..dollar banknote +1F4B6..1F4B7 ; Emoji # E1.0 [2] (💶..💷) euro banknote..pound banknote +1F4B8..1F4EB ; Emoji # E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag +1F4EC..1F4ED ; Emoji # E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag +1F4EE ; Emoji # E0.6 [1] (📮) postbox +1F4EF ; Emoji # E1.0 [1] (📯) postal horn +1F4F0..1F4F4 ; Emoji # E0.6 [5] (📰..📴) newspaper..mobile phone off +1F4F5 ; Emoji # E1.0 [1] (📵) no mobile phones +1F4F6..1F4F7 ; Emoji # E0.6 [2] (📶..📷) antenna bars..camera +1F4F8 ; Emoji # E1.0 [1] (📸) camera with flash +1F4F9..1F4FC ; Emoji # E0.6 [4] (📹..📼) video camera..videocassette +1F4FD ; Emoji # E0.7 [1] (📽️) film projector +1F4FF..1F502 ; Emoji # E1.0 [4] (📿..🔂) prayer beads..repeat single button +1F503 ; Emoji # E0.6 [1] (🔃) clockwise vertical arrows +1F504..1F507 ; Emoji # E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker +1F508 ; Emoji # E0.7 [1] (🔈) speaker low volume +1F509 ; Emoji # E1.0 [1] (🔉) speaker medium volume +1F50A..1F514 ; Emoji # E0.6 [11] (🔊..🔔) speaker high volume..bell +1F515 ; Emoji # E1.0 [1] (🔕) bell with slash +1F516..1F52B ; Emoji # E0.6 [22] (🔖..🔫) bookmark..water pistol +1F52C..1F52D ; Emoji # E1.0 [2] (🔬..🔭) microscope..telescope +1F52E..1F53D ; Emoji # E0.6 [16] (🔮..🔽) crystal ball..downwards button +1F549..1F54A ; Emoji # E0.7 [2] (🕉️..🕊️) om..dove +1F54B..1F54E ; Emoji # E1.0 [4] (🕋..🕎) kaaba..menorah +1F550..1F55B ; Emoji # E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock +1F55C..1F567 ; Emoji # E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty +1F56F..1F570 ; Emoji # E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock +1F573..1F579 ; Emoji # E0.7 [7] (🕳️..🕹️) hole..joystick +1F57A ; Emoji # E3.0 [1] (🕺) man dancing +1F587 ; Emoji # E0.7 [1] (🖇️) linked paperclips +1F58A..1F58D ; Emoji # E0.7 [4] (🖊️..🖍️) pen..crayon +1F590 ; Emoji # E0.7 [1] (🖐️) hand with fingers splayed +1F595..1F596 ; Emoji # E1.0 [2] (🖕..🖖) middle finger..vulcan salute +1F5A4 ; Emoji # E3.0 [1] (🖤) black heart +1F5A5 ; Emoji # E0.7 [1] (🖥️) desktop computer +1F5A8 ; Emoji # E0.7 [1] (🖨️) printer +1F5B1..1F5B2 ; Emoji # E0.7 [2] (🖱️..🖲️) computer mouse..trackball +1F5BC ; Emoji # E0.7 [1] (🖼️) framed picture +1F5C2..1F5C4 ; Emoji # E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet +1F5D1..1F5D3 ; Emoji # E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar +1F5DC..1F5DE ; Emoji # E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper +1F5E1 ; Emoji # E0.7 [1] (🗡️) dagger +1F5E3 ; Emoji # E0.7 [1] (🗣️) speaking head +1F5E8 ; Emoji # E2.0 [1] (🗨️) left speech bubble +1F5EF ; Emoji # E0.7 [1] (🗯️) right anger bubble +1F5F3 ; Emoji # E0.7 [1] (🗳️) ballot box with ballot +1F5FA ; Emoji # E0.7 [1] (🗺️) world map +1F5FB..1F5FF ; Emoji # E0.6 [5] (🗻..🗿) mount fuji..moai +1F600 ; Emoji # E1.0 [1] (😀) grinning face +1F601..1F606 ; Emoji # E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face +1F607..1F608 ; Emoji # E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns +1F609..1F60D ; Emoji # E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes +1F60E ; Emoji # E1.0 [1] (😎) smiling face with sunglasses +1F60F ; Emoji # E0.6 [1] (😏) smirking face +1F610 ; Emoji # E0.7 [1] (😐) neutral face +1F611 ; Emoji # E1.0 [1] (😑) expressionless face +1F612..1F614 ; Emoji # E0.6 [3] (😒..😔) unamused face..pensive face +1F615 ; Emoji # E1.0 [1] (😕) confused face +1F616 ; Emoji # E0.6 [1] (😖) confounded face +1F617 ; Emoji # E1.0 [1] (😗) kissing face +1F618 ; Emoji # E0.6 [1] (😘) face blowing a kiss +1F619 ; Emoji # E1.0 [1] (😙) kissing face with smiling eyes +1F61A ; Emoji # E0.6 [1] (😚) kissing face with closed eyes +1F61B ; Emoji # E1.0 [1] (😛) face with tongue +1F61C..1F61E ; Emoji # E0.6 [3] (😜..😞) winking face with tongue..disappointed face +1F61F ; Emoji # E1.0 [1] (😟) worried face +1F620..1F625 ; Emoji # E0.6 [6] (😠..😥) angry face..sad but relieved face +1F626..1F627 ; Emoji # E1.0 [2] (😦..😧) frowning face with open mouth..anguished face +1F628..1F62B ; Emoji # E0.6 [4] (😨..😫) fearful face..tired face +1F62C ; Emoji # E1.0 [1] (😬) grimacing face +1F62D ; Emoji # E0.6 [1] (😭) loudly crying face +1F62E..1F62F ; Emoji # E1.0 [2] (😮..😯) face with open mouth..hushed face +1F630..1F633 ; Emoji # E0.6 [4] (😰..😳) anxious face with sweat..flushed face +1F634 ; Emoji # E1.0 [1] (😴) sleeping face +1F635 ; Emoji # E0.6 [1] (😵) face with crossed-out eyes +1F636 ; Emoji # E1.0 [1] (😶) face without mouth +1F637..1F640 ; Emoji # E0.6 [10] (😷..🙀) face with medical mask..weary cat +1F641..1F644 ; Emoji # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes +1F645..1F64F ; Emoji # E0.6 [11] (🙅..🙏) person gesturing NO..folded hands +1F680 ; Emoji # E0.6 [1] (🚀) rocket +1F681..1F682 ; Emoji # E1.0 [2] (🚁..🚂) helicopter..locomotive +1F683..1F685 ; Emoji # E0.6 [3] (🚃..🚅) railway car..bullet train +1F686 ; Emoji # E1.0 [1] (🚆) train +1F687 ; Emoji # E0.6 [1] (🚇) metro +1F688 ; Emoji # E1.0 [1] (🚈) light rail +1F689 ; Emoji # E0.6 [1] (🚉) station +1F68A..1F68B ; Emoji # E1.0 [2] (🚊..🚋) tram..tram car +1F68C ; Emoji # E0.6 [1] (🚌) bus +1F68D ; Emoji # E0.7 [1] (🚍) oncoming bus +1F68E ; Emoji # E1.0 [1] (🚎) trolleybus +1F68F ; Emoji # E0.6 [1] (🚏) bus stop +1F690 ; Emoji # E1.0 [1] (🚐) minibus +1F691..1F693 ; Emoji # E0.6 [3] (🚑..🚓) ambulance..police car +1F694 ; Emoji # E0.7 [1] (🚔) oncoming police car +1F695 ; Emoji # E0.6 [1] (🚕) taxi +1F696 ; Emoji # E1.0 [1] (🚖) oncoming taxi +1F697 ; Emoji # E0.6 [1] (🚗) automobile +1F698 ; Emoji # E0.7 [1] (🚘) oncoming automobile +1F699..1F69A ; Emoji # E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck +1F69B..1F6A1 ; Emoji # E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway +1F6A2 ; Emoji # E0.6 [1] (🚢) ship +1F6A3 ; Emoji # E1.0 [1] (🚣) person rowing boat +1F6A4..1F6A5 ; Emoji # E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light +1F6A6 ; Emoji # E1.0 [1] (🚦) vertical traffic light +1F6A7..1F6AD ; Emoji # E0.6 [7] (🚧..🚭) construction..no smoking +1F6AE..1F6B1 ; Emoji # E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water +1F6B2 ; Emoji # E0.6 [1] (🚲) bicycle +1F6B3..1F6B5 ; Emoji # E1.0 [3] (🚳..🚵) no bicycles..person mountain biking +1F6B6 ; Emoji # E0.6 [1] (🚶) person walking +1F6B7..1F6B8 ; Emoji # E1.0 [2] (🚷..🚸) no pedestrians..children crossing +1F6B9..1F6BE ; Emoji # E0.6 [6] (🚹..🚾) men’s room..water closet +1F6BF ; Emoji # E1.0 [1] (🚿) shower +1F6C0 ; Emoji # E0.6 [1] (🛀) person taking bath +1F6C1..1F6C5 ; Emoji # E1.0 [5] (🛁..🛅) bathtub..left luggage +1F6CB ; Emoji # E0.7 [1] (🛋️) couch and lamp +1F6CC ; Emoji # E1.0 [1] (🛌) person in bed +1F6CD..1F6CF ; Emoji # E0.7 [3] (🛍️..🛏️) shopping bags..bed +1F6D0 ; Emoji # E1.0 [1] (🛐) place of worship +1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart +1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple +1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator +1F6DC ; Emoji # E15.0 [1] (🛜) wireless +1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy +1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat +1F6E9 ; Emoji # E0.7 [1] (🛩️) small airplane +1F6EB..1F6EC ; Emoji # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival +1F6F0 ; Emoji # E0.7 [1] (🛰️) satellite +1F6F3 ; Emoji # E0.7 [1] (🛳️) passenger ship +1F6F4..1F6F6 ; Emoji # E3.0 [3] (🛴..🛶) kick scooter..canoe +1F6F7..1F6F8 ; Emoji # E5.0 [2] (🛷..🛸) sled..flying saucer +1F6F9 ; Emoji # E11.0 [1] (🛹) skateboard +1F6FA ; Emoji # E12.0 [1] (🛺) auto rickshaw +1F6FB..1F6FC ; Emoji # E13.0 [2] (🛻..🛼) pickup truck..roller skate +1F7E0..1F7EB ; Emoji # E12.0 [12] (🟠..🟫) orange circle..brown square +1F7F0 ; Emoji # E14.0 [1] (🟰) heavy equals sign +1F90C ; Emoji # E13.0 [1] (🤌) pinched fingers +1F90D..1F90F ; Emoji # E12.0 [3] (🤍..🤏) white heart..pinching hand +1F910..1F918 ; Emoji # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns +1F919..1F91E ; Emoji # E3.0 [6] (🤙..🤞) call me hand..crossed fingers +1F91F ; Emoji # E5.0 [1] (🤟) love-you gesture +1F920..1F927 ; Emoji # E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face +1F928..1F92F ; Emoji # E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head +1F930 ; Emoji # E3.0 [1] (🤰) pregnant woman +1F931..1F932 ; Emoji # E5.0 [2] (🤱..🤲) breast-feeding..palms up together +1F933..1F93A ; Emoji # E3.0 [8] (🤳..🤺) selfie..person fencing +1F93C..1F93E ; Emoji # E3.0 [3] (🤼..🤾) people wrestling..person playing handball +1F93F ; Emoji # E12.0 [1] (🤿) diving mask +1F940..1F945 ; Emoji # E3.0 [6] (🥀..🥅) wilted flower..goal net +1F947..1F94B ; Emoji # E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform +1F94C ; Emoji # E5.0 [1] (🥌) curling stone +1F94D..1F94F ; Emoji # E11.0 [3] (🥍..🥏) lacrosse..flying disc +1F950..1F95E ; Emoji # E3.0 [15] (🥐..🥞) croissant..pancakes +1F95F..1F96B ; Emoji # E5.0 [13] (🥟..🥫) dumpling..canned food +1F96C..1F970 ; Emoji # E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts +1F971 ; Emoji # E12.0 [1] (🥱) yawning face +1F972 ; Emoji # E13.0 [1] (🥲) smiling face with tear +1F973..1F976 ; Emoji # E11.0 [4] (🥳..🥶) partying face..cold face +1F977..1F978 ; Emoji # E13.0 [2] (🥷..🥸) ninja..disguised face +1F979 ; Emoji # E14.0 [1] (🥹) face holding back tears +1F97A ; Emoji # E11.0 [1] (🥺) pleading face +1F97B ; Emoji # E12.0 [1] (🥻) sari +1F97C..1F97F ; Emoji # E11.0 [4] (🥼..🥿) lab coat..flat shoe +1F980..1F984 ; Emoji # E1.0 [5] (🦀..🦄) crab..unicorn +1F985..1F991 ; Emoji # E3.0 [13] (🦅..🦑) eagle..squid +1F992..1F997 ; Emoji # E5.0 [6] (🦒..🦗) giraffe..cricket +1F998..1F9A2 ; Emoji # E11.0 [11] (🦘..🦢) kangaroo..swan +1F9A3..1F9A4 ; Emoji # E13.0 [2] (🦣..🦤) mammoth..dodo +1F9A5..1F9AA ; Emoji # E12.0 [6] (🦥..🦪) sloth..oyster +1F9AB..1F9AD ; Emoji # E13.0 [3] (🦫..🦭) beaver..seal +1F9AE..1F9AF ; Emoji # E12.0 [2] (🦮..🦯) guide dog..white cane +1F9B0..1F9B9 ; Emoji # E11.0 [10] (🦰..🦹) red hair..supervillain +1F9BA..1F9BF ; Emoji # E12.0 [6] (🦺..🦿) safety vest..mechanical leg +1F9C0 ; Emoji # E1.0 [1] (🧀) cheese wedge +1F9C1..1F9C2 ; Emoji # E11.0 [2] (🧁..🧂) cupcake..salt +1F9C3..1F9CA ; Emoji # E12.0 [8] (🧃..🧊) beverage box..ice +1F9CB ; Emoji # E13.0 [1] (🧋) bubble tea +1F9CC ; Emoji # E14.0 [1] (🧌) troll +1F9CD..1F9CF ; Emoji # E12.0 [3] (🧍..🧏) person standing..deaf person +1F9D0..1F9E6 ; Emoji # E5.0 [23] (🧐..🧦) face with monocle..socks +1F9E7..1F9FF ; Emoji # E11.0 [25] (🧧..🧿) red envelope..nazar amulet +1FA70..1FA73 ; Emoji # E12.0 [4] (🩰..🩳) ballet shoes..shorts +1FA74 ; Emoji # E13.0 [1] (🩴) thong sandal +1FA75..1FA77 ; Emoji # E15.0 [3] (🩵..🩷) light blue heart..pink heart +1FA78..1FA7A ; Emoji # E12.0 [3] (🩸..🩺) drop of blood..stethoscope +1FA7B..1FA7C ; Emoji # E14.0 [2] (🩻..🩼) x-ray..crutch +1FA80..1FA82 ; Emoji # E12.0 [3] (🪀..🪂) yo-yo..parachute +1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls +1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute +1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo +1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock +1FAA9..1FAAC ; Emoji # E14.0 [4] (🪩..🪬) mirror ball..hamsa +1FAAD..1FAAF ; Emoji # E15.0 [3] (🪭..🪯) folding hand fan..khanda +1FAB0..1FAB6 ; Emoji # E13.0 [7] (🪰..🪶) fly..feather +1FAB7..1FABA ; Emoji # E14.0 [4] (🪷..🪺) lotus..nest with eggs +1FABB..1FABD ; Emoji # E15.0 [3] (🪻..🪽) hyacinth..wing +1FABF ; Emoji # E15.0 [1] (🪿) goose +1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging +1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown +1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey +1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot +1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar +1FADA..1FADB ; Emoji # E15.0 [2] (🫚..🫛) ginger root..pea pod +1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles +1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face +1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands +1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand + +# Total elements: 1424 + +# ================================================ + +# All omitted code points have Emoji_Presentation=No + +231A..231B ; Emoji_Presentation # E0.6 [2] (⌚..⌛) watch..hourglass done +23E9..23EC ; Emoji_Presentation # E0.6 [4] (⏩..⏬) fast-forward button..fast down button +23F0 ; Emoji_Presentation # E0.6 [1] (⏰) alarm clock +23F3 ; Emoji_Presentation # E0.6 [1] (⏳) hourglass not done +25FD..25FE ; Emoji_Presentation # E0.6 [2] (◽..◾) white medium-small square..black medium-small square +2614..2615 ; Emoji_Presentation # E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage +2648..2653 ; Emoji_Presentation # E0.6 [12] (♈..♓) Aries..Pisces +267F ; Emoji_Presentation # E0.6 [1] (♿) wheelchair symbol +2693 ; Emoji_Presentation # E0.6 [1] (⚓) anchor +26A1 ; Emoji_Presentation # E0.6 [1] (⚡) high voltage +26AA..26AB ; Emoji_Presentation # E0.6 [2] (⚪..⚫) white circle..black circle +26BD..26BE ; Emoji_Presentation # E0.6 [2] (⚽..⚾) soccer ball..baseball +26C4..26C5 ; Emoji_Presentation # E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud +26CE ; Emoji_Presentation # E0.6 [1] (⛎) Ophiuchus +26D4 ; Emoji_Presentation # E0.6 [1] (⛔) no entry +26EA ; Emoji_Presentation # E0.6 [1] (⛪) church +26F2..26F3 ; Emoji_Presentation # E0.6 [2] (⛲..⛳) fountain..flag in hole +26F5 ; Emoji_Presentation # E0.6 [1] (⛵) sailboat +26FA ; Emoji_Presentation # E0.6 [1] (⛺) tent +26FD ; Emoji_Presentation # E0.6 [1] (⛽) fuel pump +2705 ; Emoji_Presentation # E0.6 [1] (✅) check mark button +270A..270B ; Emoji_Presentation # E0.6 [2] (✊..✋) raised fist..raised hand +2728 ; Emoji_Presentation # E0.6 [1] (✨) sparkles +274C ; Emoji_Presentation # E0.6 [1] (❌) cross mark +274E ; Emoji_Presentation # E0.6 [1] (❎) cross mark button +2753..2755 ; Emoji_Presentation # E0.6 [3] (❓..❕) red question mark..white exclamation mark +2757 ; Emoji_Presentation # E0.6 [1] (❗) red exclamation mark +2795..2797 ; Emoji_Presentation # E0.6 [3] (➕..➗) plus..divide +27B0 ; Emoji_Presentation # E0.6 [1] (➰) curly loop +27BF ; Emoji_Presentation # E1.0 [1] (➿) double curly loop +2B1B..2B1C ; Emoji_Presentation # E0.6 [2] (⬛..⬜) black large square..white large square +2B50 ; Emoji_Presentation # E0.6 [1] (⭐) star +2B55 ; Emoji_Presentation # E0.6 [1] (⭕) hollow red circle +1F004 ; Emoji_Presentation # E0.6 [1] (🀄) mahjong red dragon +1F0CF ; Emoji_Presentation # E0.6 [1] (🃏) joker +1F18E ; Emoji_Presentation # E0.6 [1] (🆎) AB button (blood type) +1F191..1F19A ; Emoji_Presentation # E0.6 [10] (🆑..🆚) CL button..VS button +1F1E6..1F1FF ; Emoji_Presentation # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z +1F201 ; Emoji_Presentation # E0.6 [1] (🈁) Japanese “here” button +1F21A ; Emoji_Presentation # E0.6 [1] (🈚) Japanese “free of charge” button +1F22F ; Emoji_Presentation # E0.6 [1] (🈯) Japanese “reserved” button +1F232..1F236 ; Emoji_Presentation # E0.6 [5] (🈲..🈶) Japanese “prohibited” button..Japanese “not free of charge” button +1F238..1F23A ; Emoji_Presentation # E0.6 [3] (🈸..🈺) Japanese “application” button..Japanese “open for business” button +1F250..1F251 ; Emoji_Presentation # E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button +1F300..1F30C ; Emoji_Presentation # E0.6 [13] (🌀..🌌) cyclone..milky way +1F30D..1F30E ; Emoji_Presentation # E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas +1F30F ; Emoji_Presentation # E0.6 [1] (🌏) globe showing Asia-Australia +1F310 ; Emoji_Presentation # E1.0 [1] (🌐) globe with meridians +1F311 ; Emoji_Presentation # E0.6 [1] (🌑) new moon +1F312 ; Emoji_Presentation # E1.0 [1] (🌒) waxing crescent moon +1F313..1F315 ; Emoji_Presentation # E0.6 [3] (🌓..🌕) first quarter moon..full moon +1F316..1F318 ; Emoji_Presentation # E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon +1F319 ; Emoji_Presentation # E0.6 [1] (🌙) crescent moon +1F31A ; Emoji_Presentation # E1.0 [1] (🌚) new moon face +1F31B ; Emoji_Presentation # E0.6 [1] (🌛) first quarter moon face +1F31C ; Emoji_Presentation # E0.7 [1] (🌜) last quarter moon face +1F31D..1F31E ; Emoji_Presentation # E1.0 [2] (🌝..🌞) full moon face..sun with face +1F31F..1F320 ; Emoji_Presentation # E0.6 [2] (🌟..🌠) glowing star..shooting star +1F32D..1F32F ; Emoji_Presentation # E1.0 [3] (🌭..🌯) hot dog..burrito +1F330..1F331 ; Emoji_Presentation # E0.6 [2] (🌰..🌱) chestnut..seedling +1F332..1F333 ; Emoji_Presentation # E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree +1F334..1F335 ; Emoji_Presentation # E0.6 [2] (🌴..🌵) palm tree..cactus +1F337..1F34A ; Emoji_Presentation # E0.6 [20] (🌷..🍊) tulip..tangerine +1F34B ; Emoji_Presentation # E1.0 [1] (🍋) lemon +1F34C..1F34F ; Emoji_Presentation # E0.6 [4] (🍌..🍏) banana..green apple +1F350 ; Emoji_Presentation # E1.0 [1] (🍐) pear +1F351..1F37B ; Emoji_Presentation # E0.6 [43] (🍑..🍻) peach..clinking beer mugs +1F37C ; Emoji_Presentation # E1.0 [1] (🍼) baby bottle +1F37E..1F37F ; Emoji_Presentation # E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn +1F380..1F393 ; Emoji_Presentation # E0.6 [20] (🎀..🎓) ribbon..graduation cap +1F3A0..1F3C4 ; Emoji_Presentation # E0.6 [37] (🎠..🏄) carousel horse..person surfing +1F3C5 ; Emoji_Presentation # E1.0 [1] (🏅) sports medal +1F3C6 ; Emoji_Presentation # E0.6 [1] (🏆) trophy +1F3C7 ; Emoji_Presentation # E1.0 [1] (🏇) horse racing +1F3C8 ; Emoji_Presentation # E0.6 [1] (🏈) american football +1F3C9 ; Emoji_Presentation # E1.0 [1] (🏉) rugby football +1F3CA ; Emoji_Presentation # E0.6 [1] (🏊) person swimming +1F3CF..1F3D3 ; Emoji_Presentation # E1.0 [5] (🏏..🏓) cricket game..ping pong +1F3E0..1F3E3 ; Emoji_Presentation # E0.6 [4] (🏠..🏣) house..Japanese post office +1F3E4 ; Emoji_Presentation # E1.0 [1] (🏤) post office +1F3E5..1F3F0 ; Emoji_Presentation # E0.6 [12] (🏥..🏰) hospital..castle +1F3F4 ; Emoji_Presentation # E1.0 [1] (🏴) black flag +1F3F8..1F407 ; Emoji_Presentation # E1.0 [16] (🏸..🐇) badminton..rabbit +1F408 ; Emoji_Presentation # E0.7 [1] (🐈) cat +1F409..1F40B ; Emoji_Presentation # E1.0 [3] (🐉..🐋) dragon..whale +1F40C..1F40E ; Emoji_Presentation # E0.6 [3] (🐌..🐎) snail..horse +1F40F..1F410 ; Emoji_Presentation # E1.0 [2] (🐏..🐐) ram..goat +1F411..1F412 ; Emoji_Presentation # E0.6 [2] (🐑..🐒) ewe..monkey +1F413 ; Emoji_Presentation # E1.0 [1] (🐓) rooster +1F414 ; Emoji_Presentation # E0.6 [1] (🐔) chicken +1F415 ; Emoji_Presentation # E0.7 [1] (🐕) dog +1F416 ; Emoji_Presentation # E1.0 [1] (🐖) pig +1F417..1F429 ; Emoji_Presentation # E0.6 [19] (🐗..🐩) boar..poodle +1F42A ; Emoji_Presentation # E1.0 [1] (🐪) camel +1F42B..1F43E ; Emoji_Presentation # E0.6 [20] (🐫..🐾) two-hump camel..paw prints +1F440 ; Emoji_Presentation # E0.6 [1] (👀) eyes +1F442..1F464 ; Emoji_Presentation # E0.6 [35] (👂..👤) ear..bust in silhouette +1F465 ; Emoji_Presentation # E1.0 [1] (👥) busts in silhouette +1F466..1F46B ; Emoji_Presentation # E0.6 [6] (👦..👫) boy..woman and man holding hands +1F46C..1F46D ; Emoji_Presentation # E1.0 [2] (👬..👭) men holding hands..women holding hands +1F46E..1F4AC ; Emoji_Presentation # E0.6 [63] (👮..💬) police officer..speech balloon +1F4AD ; Emoji_Presentation # E1.0 [1] (💭) thought balloon +1F4AE..1F4B5 ; Emoji_Presentation # E0.6 [8] (💮..💵) white flower..dollar banknote +1F4B6..1F4B7 ; Emoji_Presentation # E1.0 [2] (💶..💷) euro banknote..pound banknote +1F4B8..1F4EB ; Emoji_Presentation # E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag +1F4EC..1F4ED ; Emoji_Presentation # E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag +1F4EE ; Emoji_Presentation # E0.6 [1] (📮) postbox +1F4EF ; Emoji_Presentation # E1.0 [1] (📯) postal horn +1F4F0..1F4F4 ; Emoji_Presentation # E0.6 [5] (📰..📴) newspaper..mobile phone off +1F4F5 ; Emoji_Presentation # E1.0 [1] (📵) no mobile phones +1F4F6..1F4F7 ; Emoji_Presentation # E0.6 [2] (📶..📷) antenna bars..camera +1F4F8 ; Emoji_Presentation # E1.0 [1] (📸) camera with flash +1F4F9..1F4FC ; Emoji_Presentation # E0.6 [4] (📹..📼) video camera..videocassette +1F4FF..1F502 ; Emoji_Presentation # E1.0 [4] (📿..🔂) prayer beads..repeat single button +1F503 ; Emoji_Presentation # E0.6 [1] (🔃) clockwise vertical arrows +1F504..1F507 ; Emoji_Presentation # E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker +1F508 ; Emoji_Presentation # E0.7 [1] (🔈) speaker low volume +1F509 ; Emoji_Presentation # E1.0 [1] (🔉) speaker medium volume +1F50A..1F514 ; Emoji_Presentation # E0.6 [11] (🔊..🔔) speaker high volume..bell +1F515 ; Emoji_Presentation # E1.0 [1] (🔕) bell with slash +1F516..1F52B ; Emoji_Presentation # E0.6 [22] (🔖..🔫) bookmark..water pistol +1F52C..1F52D ; Emoji_Presentation # E1.0 [2] (🔬..🔭) microscope..telescope +1F52E..1F53D ; Emoji_Presentation # E0.6 [16] (🔮..🔽) crystal ball..downwards button +1F54B..1F54E ; Emoji_Presentation # E1.0 [4] (🕋..🕎) kaaba..menorah +1F550..1F55B ; Emoji_Presentation # E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock +1F55C..1F567 ; Emoji_Presentation # E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty +1F57A ; Emoji_Presentation # E3.0 [1] (🕺) man dancing +1F595..1F596 ; Emoji_Presentation # E1.0 [2] (🖕..🖖) middle finger..vulcan salute +1F5A4 ; Emoji_Presentation # E3.0 [1] (🖤) black heart +1F5FB..1F5FF ; Emoji_Presentation # E0.6 [5] (🗻..🗿) mount fuji..moai +1F600 ; Emoji_Presentation # E1.0 [1] (😀) grinning face +1F601..1F606 ; Emoji_Presentation # E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face +1F607..1F608 ; Emoji_Presentation # E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns +1F609..1F60D ; Emoji_Presentation # E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes +1F60E ; Emoji_Presentation # E1.0 [1] (😎) smiling face with sunglasses +1F60F ; Emoji_Presentation # E0.6 [1] (😏) smirking face +1F610 ; Emoji_Presentation # E0.7 [1] (😐) neutral face +1F611 ; Emoji_Presentation # E1.0 [1] (😑) expressionless face +1F612..1F614 ; Emoji_Presentation # E0.6 [3] (😒..😔) unamused face..pensive face +1F615 ; Emoji_Presentation # E1.0 [1] (😕) confused face +1F616 ; Emoji_Presentation # E0.6 [1] (😖) confounded face +1F617 ; Emoji_Presentation # E1.0 [1] (😗) kissing face +1F618 ; Emoji_Presentation # E0.6 [1] (😘) face blowing a kiss +1F619 ; Emoji_Presentation # E1.0 [1] (😙) kissing face with smiling eyes +1F61A ; Emoji_Presentation # E0.6 [1] (😚) kissing face with closed eyes +1F61B ; Emoji_Presentation # E1.0 [1] (😛) face with tongue +1F61C..1F61E ; Emoji_Presentation # E0.6 [3] (😜..😞) winking face with tongue..disappointed face +1F61F ; Emoji_Presentation # E1.0 [1] (😟) worried face +1F620..1F625 ; Emoji_Presentation # E0.6 [6] (😠..😥) angry face..sad but relieved face +1F626..1F627 ; Emoji_Presentation # E1.0 [2] (😦..😧) frowning face with open mouth..anguished face +1F628..1F62B ; Emoji_Presentation # E0.6 [4] (😨..😫) fearful face..tired face +1F62C ; Emoji_Presentation # E1.0 [1] (😬) grimacing face +1F62D ; Emoji_Presentation # E0.6 [1] (😭) loudly crying face +1F62E..1F62F ; Emoji_Presentation # E1.0 [2] (😮..😯) face with open mouth..hushed face +1F630..1F633 ; Emoji_Presentation # E0.6 [4] (😰..😳) anxious face with sweat..flushed face +1F634 ; Emoji_Presentation # E1.0 [1] (😴) sleeping face +1F635 ; Emoji_Presentation # E0.6 [1] (😵) face with crossed-out eyes +1F636 ; Emoji_Presentation # E1.0 [1] (😶) face without mouth +1F637..1F640 ; Emoji_Presentation # E0.6 [10] (😷..🙀) face with medical mask..weary cat +1F641..1F644 ; Emoji_Presentation # E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes +1F645..1F64F ; Emoji_Presentation # E0.6 [11] (🙅..🙏) person gesturing NO..folded hands +1F680 ; Emoji_Presentation # E0.6 [1] (🚀) rocket +1F681..1F682 ; Emoji_Presentation # E1.0 [2] (🚁..🚂) helicopter..locomotive +1F683..1F685 ; Emoji_Presentation # E0.6 [3] (🚃..🚅) railway car..bullet train +1F686 ; Emoji_Presentation # E1.0 [1] (🚆) train +1F687 ; Emoji_Presentation # E0.6 [1] (🚇) metro +1F688 ; Emoji_Presentation # E1.0 [1] (🚈) light rail +1F689 ; Emoji_Presentation # E0.6 [1] (🚉) station +1F68A..1F68B ; Emoji_Presentation # E1.0 [2] (🚊..🚋) tram..tram car +1F68C ; Emoji_Presentation # E0.6 [1] (🚌) bus +1F68D ; Emoji_Presentation # E0.7 [1] (🚍) oncoming bus +1F68E ; Emoji_Presentation # E1.0 [1] (🚎) trolleybus +1F68F ; Emoji_Presentation # E0.6 [1] (🚏) bus stop +1F690 ; Emoji_Presentation # E1.0 [1] (🚐) minibus +1F691..1F693 ; Emoji_Presentation # E0.6 [3] (🚑..🚓) ambulance..police car +1F694 ; Emoji_Presentation # E0.7 [1] (🚔) oncoming police car +1F695 ; Emoji_Presentation # E0.6 [1] (🚕) taxi +1F696 ; Emoji_Presentation # E1.0 [1] (🚖) oncoming taxi +1F697 ; Emoji_Presentation # E0.6 [1] (🚗) automobile +1F698 ; Emoji_Presentation # E0.7 [1] (🚘) oncoming automobile +1F699..1F69A ; Emoji_Presentation # E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck +1F69B..1F6A1 ; Emoji_Presentation # E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway +1F6A2 ; Emoji_Presentation # E0.6 [1] (🚢) ship +1F6A3 ; Emoji_Presentation # E1.0 [1] (🚣) person rowing boat +1F6A4..1F6A5 ; Emoji_Presentation # E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light +1F6A6 ; Emoji_Presentation # E1.0 [1] (🚦) vertical traffic light +1F6A7..1F6AD ; Emoji_Presentation # E0.6 [7] (🚧..🚭) construction..no smoking +1F6AE..1F6B1 ; Emoji_Presentation # E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water +1F6B2 ; Emoji_Presentation # E0.6 [1] (🚲) bicycle +1F6B3..1F6B5 ; Emoji_Presentation # E1.0 [3] (🚳..🚵) no bicycles..person mountain biking +1F6B6 ; Emoji_Presentation # E0.6 [1] (🚶) person walking +1F6B7..1F6B8 ; Emoji_Presentation # E1.0 [2] (🚷..🚸) no pedestrians..children crossing +1F6B9..1F6BE ; Emoji_Presentation # E0.6 [6] (🚹..🚾) men’s room..water closet +1F6BF ; Emoji_Presentation # E1.0 [1] (🚿) shower +1F6C0 ; Emoji_Presentation # E0.6 [1] (🛀) person taking bath +1F6C1..1F6C5 ; Emoji_Presentation # E1.0 [5] (🛁..🛅) bathtub..left luggage +1F6CC ; Emoji_Presentation # E1.0 [1] (🛌) person in bed +1F6D0 ; Emoji_Presentation # E1.0 [1] (🛐) place of worship +1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart +1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple +1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator +1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless +1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy +1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival +1F6F4..1F6F6 ; Emoji_Presentation # E3.0 [3] (🛴..🛶) kick scooter..canoe +1F6F7..1F6F8 ; Emoji_Presentation # E5.0 [2] (🛷..🛸) sled..flying saucer +1F6F9 ; Emoji_Presentation # E11.0 [1] (🛹) skateboard +1F6FA ; Emoji_Presentation # E12.0 [1] (🛺) auto rickshaw +1F6FB..1F6FC ; Emoji_Presentation # E13.0 [2] (🛻..🛼) pickup truck..roller skate +1F7E0..1F7EB ; Emoji_Presentation # E12.0 [12] (🟠..🟫) orange circle..brown square +1F7F0 ; Emoji_Presentation # E14.0 [1] (🟰) heavy equals sign +1F90C ; Emoji_Presentation # E13.0 [1] (🤌) pinched fingers +1F90D..1F90F ; Emoji_Presentation # E12.0 [3] (🤍..🤏) white heart..pinching hand +1F910..1F918 ; Emoji_Presentation # E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns +1F919..1F91E ; Emoji_Presentation # E3.0 [6] (🤙..🤞) call me hand..crossed fingers +1F91F ; Emoji_Presentation # E5.0 [1] (🤟) love-you gesture +1F920..1F927 ; Emoji_Presentation # E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face +1F928..1F92F ; Emoji_Presentation # E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head +1F930 ; Emoji_Presentation # E3.0 [1] (🤰) pregnant woman +1F931..1F932 ; Emoji_Presentation # E5.0 [2] (🤱..🤲) breast-feeding..palms up together +1F933..1F93A ; Emoji_Presentation # E3.0 [8] (🤳..🤺) selfie..person fencing +1F93C..1F93E ; Emoji_Presentation # E3.0 [3] (🤼..🤾) people wrestling..person playing handball +1F93F ; Emoji_Presentation # E12.0 [1] (🤿) diving mask +1F940..1F945 ; Emoji_Presentation # E3.0 [6] (🥀..🥅) wilted flower..goal net +1F947..1F94B ; Emoji_Presentation # E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform +1F94C ; Emoji_Presentation # E5.0 [1] (🥌) curling stone +1F94D..1F94F ; Emoji_Presentation # E11.0 [3] (🥍..🥏) lacrosse..flying disc +1F950..1F95E ; Emoji_Presentation # E3.0 [15] (🥐..🥞) croissant..pancakes +1F95F..1F96B ; Emoji_Presentation # E5.0 [13] (🥟..🥫) dumpling..canned food +1F96C..1F970 ; Emoji_Presentation # E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts +1F971 ; Emoji_Presentation # E12.0 [1] (🥱) yawning face +1F972 ; Emoji_Presentation # E13.0 [1] (🥲) smiling face with tear +1F973..1F976 ; Emoji_Presentation # E11.0 [4] (🥳..🥶) partying face..cold face +1F977..1F978 ; Emoji_Presentation # E13.0 [2] (🥷..🥸) ninja..disguised face +1F979 ; Emoji_Presentation # E14.0 [1] (🥹) face holding back tears +1F97A ; Emoji_Presentation # E11.0 [1] (🥺) pleading face +1F97B ; Emoji_Presentation # E12.0 [1] (🥻) sari +1F97C..1F97F ; Emoji_Presentation # E11.0 [4] (🥼..🥿) lab coat..flat shoe +1F980..1F984 ; Emoji_Presentation # E1.0 [5] (🦀..🦄) crab..unicorn +1F985..1F991 ; Emoji_Presentation # E3.0 [13] (🦅..🦑) eagle..squid +1F992..1F997 ; Emoji_Presentation # E5.0 [6] (🦒..🦗) giraffe..cricket +1F998..1F9A2 ; Emoji_Presentation # E11.0 [11] (🦘..🦢) kangaroo..swan +1F9A3..1F9A4 ; Emoji_Presentation # E13.0 [2] (🦣..🦤) mammoth..dodo +1F9A5..1F9AA ; Emoji_Presentation # E12.0 [6] (🦥..🦪) sloth..oyster +1F9AB..1F9AD ; Emoji_Presentation # E13.0 [3] (🦫..🦭) beaver..seal +1F9AE..1F9AF ; Emoji_Presentation # E12.0 [2] (🦮..🦯) guide dog..white cane +1F9B0..1F9B9 ; Emoji_Presentation # E11.0 [10] (🦰..🦹) red hair..supervillain +1F9BA..1F9BF ; Emoji_Presentation # E12.0 [6] (🦺..🦿) safety vest..mechanical leg +1F9C0 ; Emoji_Presentation # E1.0 [1] (🧀) cheese wedge +1F9C1..1F9C2 ; Emoji_Presentation # E11.0 [2] (🧁..🧂) cupcake..salt +1F9C3..1F9CA ; Emoji_Presentation # E12.0 [8] (🧃..🧊) beverage box..ice +1F9CB ; Emoji_Presentation # E13.0 [1] (🧋) bubble tea +1F9CC ; Emoji_Presentation # E14.0 [1] (🧌) troll +1F9CD..1F9CF ; Emoji_Presentation # E12.0 [3] (🧍..🧏) person standing..deaf person +1F9D0..1F9E6 ; Emoji_Presentation # E5.0 [23] (🧐..🧦) face with monocle..socks +1F9E7..1F9FF ; Emoji_Presentation # E11.0 [25] (🧧..🧿) red envelope..nazar amulet +1FA70..1FA73 ; Emoji_Presentation # E12.0 [4] (🩰..🩳) ballet shoes..shorts +1FA74 ; Emoji_Presentation # E13.0 [1] (🩴) thong sandal +1FA75..1FA77 ; Emoji_Presentation # E15.0 [3] (🩵..🩷) light blue heart..pink heart +1FA78..1FA7A ; Emoji_Presentation # E12.0 [3] (🩸..🩺) drop of blood..stethoscope +1FA7B..1FA7C ; Emoji_Presentation # E14.0 [2] (🩻..🩼) x-ray..crutch +1FA80..1FA82 ; Emoji_Presentation # E12.0 [3] (🪀..🪂) yo-yo..parachute +1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls +1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute +1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo +1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock +1FAA9..1FAAC ; Emoji_Presentation # E14.0 [4] (🪩..🪬) mirror ball..hamsa +1FAAD..1FAAF ; Emoji_Presentation # E15.0 [3] (🪭..🪯) folding hand fan..khanda +1FAB0..1FAB6 ; Emoji_Presentation # E13.0 [7] (🪰..🪶) fly..feather +1FAB7..1FABA ; Emoji_Presentation # E14.0 [4] (🪷..🪺) lotus..nest with eggs +1FABB..1FABD ; Emoji_Presentation # E15.0 [3] (🪻..🪽) hyacinth..wing +1FABF ; Emoji_Presentation # E15.0 [1] (🪿) goose +1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging +1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown +1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey +1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot +1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar +1FADA..1FADB ; Emoji_Presentation # E15.0 [2] (🫚..🫛) ginger root..pea pod +1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles +1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face +1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands +1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand + +# Total elements: 1205 + +# ================================================ + +# All omitted code points have Emoji_Modifier=No + +1F3FB..1F3FF ; Emoji_Modifier # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone + +# Total elements: 5 + +# ================================================ + +# All omitted code points have Emoji_Modifier_Base=No + +261D ; Emoji_Modifier_Base # E0.6 [1] (☝️) index pointing up +26F9 ; Emoji_Modifier_Base # E0.7 [1] (⛹️) person bouncing ball +270A..270C ; Emoji_Modifier_Base # E0.6 [3] (✊..✌️) raised fist..victory hand +270D ; Emoji_Modifier_Base # E0.7 [1] (✍️) writing hand +1F385 ; Emoji_Modifier_Base # E0.6 [1] (🎅) Santa Claus +1F3C2..1F3C4 ; Emoji_Modifier_Base # E0.6 [3] (🏂..🏄) snowboarder..person surfing +1F3C7 ; Emoji_Modifier_Base # E1.0 [1] (🏇) horse racing +1F3CA ; Emoji_Modifier_Base # E0.6 [1] (🏊) person swimming +1F3CB..1F3CC ; Emoji_Modifier_Base # E0.7 [2] (🏋️..🏌️) person lifting weights..person golfing +1F442..1F443 ; Emoji_Modifier_Base # E0.6 [2] (👂..👃) ear..nose +1F446..1F450 ; Emoji_Modifier_Base # E0.6 [11] (👆..👐) backhand index pointing up..open hands +1F466..1F46B ; Emoji_Modifier_Base # E0.6 [6] (👦..👫) boy..woman and man holding hands +1F46C..1F46D ; Emoji_Modifier_Base # E1.0 [2] (👬..👭) men holding hands..women holding hands +1F46E..1F478 ; Emoji_Modifier_Base # E0.6 [11] (👮..👸) police officer..princess +1F47C ; Emoji_Modifier_Base # E0.6 [1] (👼) baby angel +1F481..1F483 ; Emoji_Modifier_Base # E0.6 [3] (💁..💃) person tipping hand..woman dancing +1F485..1F487 ; Emoji_Modifier_Base # E0.6 [3] (💅..💇) nail polish..person getting haircut +1F48F ; Emoji_Modifier_Base # E0.6 [1] (💏) kiss +1F491 ; Emoji_Modifier_Base # E0.6 [1] (💑) couple with heart +1F4AA ; Emoji_Modifier_Base # E0.6 [1] (💪) flexed biceps +1F574..1F575 ; Emoji_Modifier_Base # E0.7 [2] (🕴️..🕵️) person in suit levitating..detective +1F57A ; Emoji_Modifier_Base # E3.0 [1] (🕺) man dancing +1F590 ; Emoji_Modifier_Base # E0.7 [1] (🖐️) hand with fingers splayed +1F595..1F596 ; Emoji_Modifier_Base # E1.0 [2] (🖕..🖖) middle finger..vulcan salute +1F645..1F647 ; Emoji_Modifier_Base # E0.6 [3] (🙅..🙇) person gesturing NO..person bowing +1F64B..1F64F ; Emoji_Modifier_Base # E0.6 [5] (🙋..🙏) person raising hand..folded hands +1F6A3 ; Emoji_Modifier_Base # E1.0 [1] (🚣) person rowing boat +1F6B4..1F6B5 ; Emoji_Modifier_Base # E1.0 [2] (🚴..🚵) person biking..person mountain biking +1F6B6 ; Emoji_Modifier_Base # E0.6 [1] (🚶) person walking +1F6C0 ; Emoji_Modifier_Base # E0.6 [1] (🛀) person taking bath +1F6CC ; Emoji_Modifier_Base # E1.0 [1] (🛌) person in bed +1F90C ; Emoji_Modifier_Base # E13.0 [1] (🤌) pinched fingers +1F90F ; Emoji_Modifier_Base # E12.0 [1] (🤏) pinching hand +1F918 ; Emoji_Modifier_Base # E1.0 [1] (🤘) sign of the horns +1F919..1F91E ; Emoji_Modifier_Base # E3.0 [6] (🤙..🤞) call me hand..crossed fingers +1F91F ; Emoji_Modifier_Base # E5.0 [1] (🤟) love-you gesture +1F926 ; Emoji_Modifier_Base # E3.0 [1] (🤦) person facepalming +1F930 ; Emoji_Modifier_Base # E3.0 [1] (🤰) pregnant woman +1F931..1F932 ; Emoji_Modifier_Base # E5.0 [2] (🤱..🤲) breast-feeding..palms up together +1F933..1F939 ; Emoji_Modifier_Base # E3.0 [7] (🤳..🤹) selfie..person juggling +1F93C..1F93E ; Emoji_Modifier_Base # E3.0 [3] (🤼..🤾) people wrestling..person playing handball +1F977 ; Emoji_Modifier_Base # E13.0 [1] (🥷) ninja +1F9B5..1F9B6 ; Emoji_Modifier_Base # E11.0 [2] (🦵..🦶) leg..foot +1F9B8..1F9B9 ; Emoji_Modifier_Base # E11.0 [2] (🦸..🦹) superhero..supervillain +1F9BB ; Emoji_Modifier_Base # E12.0 [1] (🦻) ear with hearing aid +1F9CD..1F9CF ; Emoji_Modifier_Base # E12.0 [3] (🧍..🧏) person standing..deaf person +1F9D1..1F9DD ; Emoji_Modifier_Base # E5.0 [13] (🧑..🧝) person..elf +1FAC3..1FAC5 ; Emoji_Modifier_Base # E14.0 [3] (🫃..🫅) pregnant man..person with crown +1FAF0..1FAF6 ; Emoji_Modifier_Base # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands +1FAF7..1FAF8 ; Emoji_Modifier_Base # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand + +# Total elements: 134 + +# ================================================ + +# All omitted code points have Emoji_Component=No + +0023 ; Emoji_Component # E0.0 [1] (#️) hash sign +002A ; Emoji_Component # E0.0 [1] (*️) asterisk +0030..0039 ; Emoji_Component # E0.0 [10] (0️..9️) digit zero..digit nine +200D ; Emoji_Component # E0.0 [1] () zero width joiner +20E3 ; Emoji_Component # E0.0 [1] (⃣) combining enclosing keycap +FE0F ; Emoji_Component # E0.0 [1] () VARIATION SELECTOR-16 +1F1E6..1F1FF ; Emoji_Component # E0.0 [26] (🇦..🇿) regional indicator symbol letter a..regional indicator symbol letter z +1F3FB..1F3FF ; Emoji_Component # E1.0 [5] (🏻..🏿) light skin tone..dark skin tone +1F9B0..1F9B3 ; Emoji_Component # E11.0 [4] (🦰..🦳) red hair..white hair +E0020..E007F ; Emoji_Component # E0.0 [96] (..) tag space..cancel tag + +# Total elements: 146 + +# ================================================ + +# All omitted code points have Extended_Pictographic=No + +00A9 ; Extended_Pictographic# E0.6 [1] (©️) copyright +00AE ; Extended_Pictographic# E0.6 [1] (®️) registered +203C ; Extended_Pictographic# E0.6 [1] (‼️) double exclamation mark +2049 ; Extended_Pictographic# E0.6 [1] (⁉️) exclamation question mark +2122 ; Extended_Pictographic# E0.6 [1] (™️) trade mark +2139 ; Extended_Pictographic# E0.6 [1] (ℹ️) information +2194..2199 ; Extended_Pictographic# E0.6 [6] (↔️..↙️) left-right arrow..down-left arrow +21A9..21AA ; Extended_Pictographic# E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right +231A..231B ; Extended_Pictographic# E0.6 [2] (⌚..⌛) watch..hourglass done +2328 ; Extended_Pictographic# E1.0 [1] (⌨️) keyboard +2388 ; Extended_Pictographic# E0.0 [1] (⎈) HELM SYMBOL +23CF ; Extended_Pictographic# E1.0 [1] (⏏️) eject button +23E9..23EC ; Extended_Pictographic# E0.6 [4] (⏩..⏬) fast-forward button..fast down button +23ED..23EE ; Extended_Pictographic# E0.7 [2] (⏭️..⏮️) next track button..last track button +23EF ; Extended_Pictographic# E1.0 [1] (⏯️) play or pause button +23F0 ; Extended_Pictographic# E0.6 [1] (⏰) alarm clock +23F1..23F2 ; Extended_Pictographic# E1.0 [2] (⏱️..⏲️) stopwatch..timer clock +23F3 ; Extended_Pictographic# E0.6 [1] (⏳) hourglass not done +23F8..23FA ; Extended_Pictographic# E0.7 [3] (⏸️..⏺️) pause button..record button +24C2 ; Extended_Pictographic# E0.6 [1] (Ⓜ️) circled M +25AA..25AB ; Extended_Pictographic# E0.6 [2] (▪️..▫️) black small square..white small square +25B6 ; Extended_Pictographic# E0.6 [1] (▶️) play button +25C0 ; Extended_Pictographic# E0.6 [1] (◀️) reverse button +25FB..25FE ; Extended_Pictographic# E0.6 [4] (◻️..◾) white medium square..black medium-small square +2600..2601 ; Extended_Pictographic# E0.6 [2] (☀️..☁️) sun..cloud +2602..2603 ; Extended_Pictographic# E0.7 [2] (☂️..☃️) umbrella..snowman +2604 ; Extended_Pictographic# E1.0 [1] (☄️) comet +2605 ; Extended_Pictographic# E0.0 [1] (★) BLACK STAR +2607..260D ; Extended_Pictographic# E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION +260E ; Extended_Pictographic# E0.6 [1] (☎️) telephone +260F..2610 ; Extended_Pictographic# E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX +2611 ; Extended_Pictographic# E0.6 [1] (☑️) check box with check +2612 ; Extended_Pictographic# E0.0 [1] (☒) BALLOT BOX WITH X +2614..2615 ; Extended_Pictographic# E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage +2616..2617 ; Extended_Pictographic# E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE +2618 ; Extended_Pictographic# E1.0 [1] (☘️) shamrock +2619..261C ; Extended_Pictographic# E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX +261D ; Extended_Pictographic# E0.6 [1] (☝️) index pointing up +261E..261F ; Extended_Pictographic# E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX +2620 ; Extended_Pictographic# E1.0 [1] (☠️) skull and crossbones +2621 ; Extended_Pictographic# E0.0 [1] (☡) CAUTION SIGN +2622..2623 ; Extended_Pictographic# E1.0 [2] (☢️..☣️) radioactive..biohazard +2624..2625 ; Extended_Pictographic# E0.0 [2] (☤..☥) CADUCEUS..ANKH +2626 ; Extended_Pictographic# E1.0 [1] (☦️) orthodox cross +2627..2629 ; Extended_Pictographic# E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM +262A ; Extended_Pictographic# E0.7 [1] (☪️) star and crescent +262B..262D ; Extended_Pictographic# E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE +262E ; Extended_Pictographic# E1.0 [1] (☮️) peace symbol +262F ; Extended_Pictographic# E0.7 [1] (☯️) yin yang +2630..2637 ; Extended_Pictographic# E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH +2638..2639 ; Extended_Pictographic# E0.7 [2] (☸️..☹️) wheel of dharma..frowning face +263A ; Extended_Pictographic# E0.6 [1] (☺️) smiling face +263B..263F ; Extended_Pictographic# E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY +2640 ; Extended_Pictographic# E4.0 [1] (♀️) female sign +2641 ; Extended_Pictographic# E0.0 [1] (♁) EARTH +2642 ; Extended_Pictographic# E4.0 [1] (♂️) male sign +2643..2647 ; Extended_Pictographic# E0.0 [5] (♃..♇) JUPITER..PLUTO +2648..2653 ; Extended_Pictographic# E0.6 [12] (♈..♓) Aries..Pisces +2654..265E ; Extended_Pictographic# E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT +265F ; Extended_Pictographic# E11.0 [1] (♟️) chess pawn +2660 ; Extended_Pictographic# E0.6 [1] (♠️) spade suit +2661..2662 ; Extended_Pictographic# E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT +2663 ; Extended_Pictographic# E0.6 [1] (♣️) club suit +2664 ; Extended_Pictographic# E0.0 [1] (♤) WHITE SPADE SUIT +2665..2666 ; Extended_Pictographic# E0.6 [2] (♥️..♦️) heart suit..diamond suit +2667 ; Extended_Pictographic# E0.0 [1] (♧) WHITE CLUB SUIT +2668 ; Extended_Pictographic# E0.6 [1] (♨️) hot springs +2669..267A ; Extended_Pictographic# E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS +267B ; Extended_Pictographic# E0.6 [1] (♻️) recycling symbol +267C..267D ; Extended_Pictographic# E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL +267E ; Extended_Pictographic# E11.0 [1] (♾️) infinity +267F ; Extended_Pictographic# E0.6 [1] (♿) wheelchair symbol +2680..2685 ; Extended_Pictographic# E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6 +2690..2691 ; Extended_Pictographic# E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG +2692 ; Extended_Pictographic# E1.0 [1] (⚒️) hammer and pick +2693 ; Extended_Pictographic# E0.6 [1] (⚓) anchor +2694 ; Extended_Pictographic# E1.0 [1] (⚔️) crossed swords +2695 ; Extended_Pictographic# E4.0 [1] (⚕️) medical symbol +2696..2697 ; Extended_Pictographic# E1.0 [2] (⚖️..⚗️) balance scale..alembic +2698 ; Extended_Pictographic# E0.0 [1] (⚘) FLOWER +2699 ; Extended_Pictographic# E1.0 [1] (⚙️) gear +269A ; Extended_Pictographic# E0.0 [1] (⚚) STAFF OF HERMES +269B..269C ; Extended_Pictographic# E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis +269D..269F ; Extended_Pictographic# E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT +26A0..26A1 ; Extended_Pictographic# E0.6 [2] (⚠️..⚡) warning..high voltage +26A2..26A6 ; Extended_Pictographic# E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN +26A7 ; Extended_Pictographic# E13.0 [1] (⚧️) transgender symbol +26A8..26A9 ; Extended_Pictographic# E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN +26AA..26AB ; Extended_Pictographic# E0.6 [2] (⚪..⚫) white circle..black circle +26AC..26AF ; Extended_Pictographic# E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL +26B0..26B1 ; Extended_Pictographic# E1.0 [2] (⚰️..⚱️) coffin..funeral urn +26B2..26BC ; Extended_Pictographic# E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE +26BD..26BE ; Extended_Pictographic# E0.6 [2] (⚽..⚾) soccer ball..baseball +26BF..26C3 ; Extended_Pictographic# E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING +26C4..26C5 ; Extended_Pictographic# E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud +26C6..26C7 ; Extended_Pictographic# E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN +26C8 ; Extended_Pictographic# E0.7 [1] (⛈️) cloud with lightning and rain +26C9..26CD ; Extended_Pictographic# E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR +26CE ; Extended_Pictographic# E0.6 [1] (⛎) Ophiuchus +26CF ; Extended_Pictographic# E0.7 [1] (⛏️) pick +26D0 ; Extended_Pictographic# E0.0 [1] (⛐) CAR SLIDING +26D1 ; Extended_Pictographic# E0.7 [1] (⛑️) rescue worker’s helmet +26D2 ; Extended_Pictographic# E0.0 [1] (⛒) CIRCLED CROSSING LANES +26D3 ; Extended_Pictographic# E0.7 [1] (⛓️) chains +26D4 ; Extended_Pictographic# E0.6 [1] (⛔) no entry +26D5..26E8 ; Extended_Pictographic# E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD +26E9 ; Extended_Pictographic# E0.7 [1] (⛩️) shinto shrine +26EA ; Extended_Pictographic# E0.6 [1] (⛪) church +26EB..26EF ; Extended_Pictographic# E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE +26F0..26F1 ; Extended_Pictographic# E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground +26F2..26F3 ; Extended_Pictographic# E0.6 [2] (⛲..⛳) fountain..flag in hole +26F4 ; Extended_Pictographic# E0.7 [1] (⛴️) ferry +26F5 ; Extended_Pictographic# E0.6 [1] (⛵) sailboat +26F6 ; Extended_Pictographic# E0.0 [1] (⛶) SQUARE FOUR CORNERS +26F7..26F9 ; Extended_Pictographic# E0.7 [3] (⛷️..⛹️) skier..person bouncing ball +26FA ; Extended_Pictographic# E0.6 [1] (⛺) tent +26FB..26FC ; Extended_Pictographic# E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL +26FD ; Extended_Pictographic# E0.6 [1] (⛽) fuel pump +26FE..2701 ; Extended_Pictographic# E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS +2702 ; Extended_Pictographic# E0.6 [1] (✂️) scissors +2703..2704 ; Extended_Pictographic# E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS +2705 ; Extended_Pictographic# E0.6 [1] (✅) check mark button +2708..270C ; Extended_Pictographic# E0.6 [5] (✈️..✌️) airplane..victory hand +270D ; Extended_Pictographic# E0.7 [1] (✍️) writing hand +270E ; Extended_Pictographic# E0.0 [1] (✎) LOWER RIGHT PENCIL +270F ; Extended_Pictographic# E0.6 [1] (✏️) pencil +2710..2711 ; Extended_Pictographic# E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB +2712 ; Extended_Pictographic# E0.6 [1] (✒️) black nib +2714 ; Extended_Pictographic# E0.6 [1] (✔️) check mark +2716 ; Extended_Pictographic# E0.6 [1] (✖️) multiply +271D ; Extended_Pictographic# E0.7 [1] (✝️) latin cross +2721 ; Extended_Pictographic# E0.7 [1] (✡️) star of David +2728 ; Extended_Pictographic# E0.6 [1] (✨) sparkles +2733..2734 ; Extended_Pictographic# E0.6 [2] (✳️..✴️) eight-spoked asterisk..eight-pointed star +2744 ; Extended_Pictographic# E0.6 [1] (❄️) snowflake +2747 ; Extended_Pictographic# E0.6 [1] (❇️) sparkle +274C ; Extended_Pictographic# E0.6 [1] (❌) cross mark +274E ; Extended_Pictographic# E0.6 [1] (❎) cross mark button +2753..2755 ; Extended_Pictographic# E0.6 [3] (❓..❕) red question mark..white exclamation mark +2757 ; Extended_Pictographic# E0.6 [1] (❗) red exclamation mark +2763 ; Extended_Pictographic# E1.0 [1] (❣️) heart exclamation +2764 ; Extended_Pictographic# E0.6 [1] (❤️) red heart +2765..2767 ; Extended_Pictographic# E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET +2795..2797 ; Extended_Pictographic# E0.6 [3] (➕..➗) plus..divide +27A1 ; Extended_Pictographic# E0.6 [1] (➡️) right arrow +27B0 ; Extended_Pictographic# E0.6 [1] (➰) curly loop +27BF ; Extended_Pictographic# E1.0 [1] (➿) double curly loop +2934..2935 ; Extended_Pictographic# E0.6 [2] (⤴️..⤵️) right arrow curving up..right arrow curving down +2B05..2B07 ; Extended_Pictographic# E0.6 [3] (⬅️..⬇️) left arrow..down arrow +2B1B..2B1C ; Extended_Pictographic# E0.6 [2] (⬛..⬜) black large square..white large square +2B50 ; Extended_Pictographic# E0.6 [1] (⭐) star +2B55 ; Extended_Pictographic# E0.6 [1] (⭕) hollow red circle +3030 ; Extended_Pictographic# E0.6 [1] (〰️) wavy dash +303D ; Extended_Pictographic# E0.6 [1] (〽️) part alternation mark +3297 ; Extended_Pictographic# E0.6 [1] (㊗️) Japanese “congratulations” button +3299 ; Extended_Pictographic# E0.6 [1] (㊙️) Japanese “secret” button +1F000..1F003 ; Extended_Pictographic# E0.0 [4] (🀀..🀃) MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND +1F004 ; Extended_Pictographic# E0.6 [1] (🀄) mahjong red dragon +1F005..1F0CE ; Extended_Pictographic# E0.0 [202] (🀅..🃎) MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS +1F0CF ; Extended_Pictographic# E0.6 [1] (🃏) joker +1F0D0..1F0FF ; Extended_Pictographic# E0.0 [48] (..) <reserved-1F0D0>..<reserved-1F0FF> +1F10D..1F10F ; Extended_Pictographic# E0.0 [3] (🄍..🄏) CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +1F12F ; Extended_Pictographic# E0.0 [1] (🄯) COPYLEFT SYMBOL +1F16C..1F16F ; Extended_Pictographic# E0.0 [4] (🅬..🅯) RAISED MR SIGN..CIRCLED HUMAN FIGURE +1F170..1F171 ; Extended_Pictographic# E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) +1F17E..1F17F ; Extended_Pictographic# E0.6 [2] (🅾️..🅿️) O button (blood type)..P button +1F18E ; Extended_Pictographic# E0.6 [1] (🆎) AB button (blood type) +1F191..1F19A ; Extended_Pictographic# E0.6 [10] (🆑..🆚) CL button..VS button +1F1AD..1F1E5 ; Extended_Pictographic# E0.0 [57] (🆭..) MASK WORK SYMBOL..<reserved-1F1E5> +1F201..1F202 ; Extended_Pictographic# E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button +1F203..1F20F ; Extended_Pictographic# E0.0 [13] (..) <reserved-1F203>..<reserved-1F20F> +1F21A ; Extended_Pictographic# E0.6 [1] (🈚) Japanese “free of charge” button +1F22F ; Extended_Pictographic# E0.6 [1] (🈯) Japanese “reserved” button +1F232..1F23A ; Extended_Pictographic# E0.6 [9] (🈲..🈺) Japanese “prohibited” button..Japanese “open for business” button +1F23C..1F23F ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F23C>..<reserved-1F23F> +1F249..1F24F ; Extended_Pictographic# E0.0 [7] (..) <reserved-1F249>..<reserved-1F24F> +1F250..1F251 ; Extended_Pictographic# E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button +1F252..1F2FF ; Extended_Pictographic# E0.0 [174] (..) <reserved-1F252>..<reserved-1F2FF> +1F300..1F30C ; Extended_Pictographic# E0.6 [13] (🌀..🌌) cyclone..milky way +1F30D..1F30E ; Extended_Pictographic# E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas +1F30F ; Extended_Pictographic# E0.6 [1] (🌏) globe showing Asia-Australia +1F310 ; Extended_Pictographic# E1.0 [1] (🌐) globe with meridians +1F311 ; Extended_Pictographic# E0.6 [1] (🌑) new moon +1F312 ; Extended_Pictographic# E1.0 [1] (🌒) waxing crescent moon +1F313..1F315 ; Extended_Pictographic# E0.6 [3] (🌓..🌕) first quarter moon..full moon +1F316..1F318 ; Extended_Pictographic# E1.0 [3] (🌖..🌘) waning gibbous moon..waning crescent moon +1F319 ; Extended_Pictographic# E0.6 [1] (🌙) crescent moon +1F31A ; Extended_Pictographic# E1.0 [1] (🌚) new moon face +1F31B ; Extended_Pictographic# E0.6 [1] (🌛) first quarter moon face +1F31C ; Extended_Pictographic# E0.7 [1] (🌜) last quarter moon face +1F31D..1F31E ; Extended_Pictographic# E1.0 [2] (🌝..🌞) full moon face..sun with face +1F31F..1F320 ; Extended_Pictographic# E0.6 [2] (🌟..🌠) glowing star..shooting star +1F321 ; Extended_Pictographic# E0.7 [1] (🌡️) thermometer +1F322..1F323 ; Extended_Pictographic# E0.0 [2] (🌢..🌣) BLACK DROPLET..WHITE SUN +1F324..1F32C ; Extended_Pictographic# E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face +1F32D..1F32F ; Extended_Pictographic# E1.0 [3] (🌭..🌯) hot dog..burrito +1F330..1F331 ; Extended_Pictographic# E0.6 [2] (🌰..🌱) chestnut..seedling +1F332..1F333 ; Extended_Pictographic# E1.0 [2] (🌲..🌳) evergreen tree..deciduous tree +1F334..1F335 ; Extended_Pictographic# E0.6 [2] (🌴..🌵) palm tree..cactus +1F336 ; Extended_Pictographic# E0.7 [1] (🌶️) hot pepper +1F337..1F34A ; Extended_Pictographic# E0.6 [20] (🌷..🍊) tulip..tangerine +1F34B ; Extended_Pictographic# E1.0 [1] (🍋) lemon +1F34C..1F34F ; Extended_Pictographic# E0.6 [4] (🍌..🍏) banana..green apple +1F350 ; Extended_Pictographic# E1.0 [1] (🍐) pear +1F351..1F37B ; Extended_Pictographic# E0.6 [43] (🍑..🍻) peach..clinking beer mugs +1F37C ; Extended_Pictographic# E1.0 [1] (🍼) baby bottle +1F37D ; Extended_Pictographic# E0.7 [1] (🍽️) fork and knife with plate +1F37E..1F37F ; Extended_Pictographic# E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn +1F380..1F393 ; Extended_Pictographic# E0.6 [20] (🎀..🎓) ribbon..graduation cap +1F394..1F395 ; Extended_Pictographic# E0.0 [2] (🎔..🎕) HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS +1F396..1F397 ; Extended_Pictographic# E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon +1F398 ; Extended_Pictographic# E0.0 [1] (🎘) MUSICAL KEYBOARD WITH JACKS +1F399..1F39B ; Extended_Pictographic# E0.7 [3] (🎙️..🎛️) studio microphone..control knobs +1F39C..1F39D ; Extended_Pictographic# E0.0 [2] (🎜..🎝) BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES +1F39E..1F39F ; Extended_Pictographic# E0.7 [2] (🎞️..🎟️) film frames..admission tickets +1F3A0..1F3C4 ; Extended_Pictographic# E0.6 [37] (🎠..🏄) carousel horse..person surfing +1F3C5 ; Extended_Pictographic# E1.0 [1] (🏅) sports medal +1F3C6 ; Extended_Pictographic# E0.6 [1] (🏆) trophy +1F3C7 ; Extended_Pictographic# E1.0 [1] (🏇) horse racing +1F3C8 ; Extended_Pictographic# E0.6 [1] (🏈) american football +1F3C9 ; Extended_Pictographic# E1.0 [1] (🏉) rugby football +1F3CA ; Extended_Pictographic# E0.6 [1] (🏊) person swimming +1F3CB..1F3CE ; Extended_Pictographic# E0.7 [4] (🏋️..🏎️) person lifting weights..racing car +1F3CF..1F3D3 ; Extended_Pictographic# E1.0 [5] (🏏..🏓) cricket game..ping pong +1F3D4..1F3DF ; Extended_Pictographic# E0.7 [12] (🏔️..🏟️) snow-capped mountain..stadium +1F3E0..1F3E3 ; Extended_Pictographic# E0.6 [4] (🏠..🏣) house..Japanese post office +1F3E4 ; Extended_Pictographic# E1.0 [1] (🏤) post office +1F3E5..1F3F0 ; Extended_Pictographic# E0.6 [12] (🏥..🏰) hospital..castle +1F3F1..1F3F2 ; Extended_Pictographic# E0.0 [2] (🏱..🏲) WHITE PENNANT..BLACK PENNANT +1F3F3 ; Extended_Pictographic# E0.7 [1] (🏳️) white flag +1F3F4 ; Extended_Pictographic# E1.0 [1] (🏴) black flag +1F3F5 ; Extended_Pictographic# E0.7 [1] (🏵️) rosette +1F3F6 ; Extended_Pictographic# E0.0 [1] (🏶) BLACK ROSETTE +1F3F7 ; Extended_Pictographic# E0.7 [1] (🏷️) label +1F3F8..1F3FA ; Extended_Pictographic# E1.0 [3] (🏸..🏺) badminton..amphora +1F400..1F407 ; Extended_Pictographic# E1.0 [8] (🐀..🐇) rat..rabbit +1F408 ; Extended_Pictographic# E0.7 [1] (🐈) cat +1F409..1F40B ; Extended_Pictographic# E1.0 [3] (🐉..🐋) dragon..whale +1F40C..1F40E ; Extended_Pictographic# E0.6 [3] (🐌..🐎) snail..horse +1F40F..1F410 ; Extended_Pictographic# E1.0 [2] (🐏..🐐) ram..goat +1F411..1F412 ; Extended_Pictographic# E0.6 [2] (🐑..🐒) ewe..monkey +1F413 ; Extended_Pictographic# E1.0 [1] (🐓) rooster +1F414 ; Extended_Pictographic# E0.6 [1] (🐔) chicken +1F415 ; Extended_Pictographic# E0.7 [1] (🐕) dog +1F416 ; Extended_Pictographic# E1.0 [1] (🐖) pig +1F417..1F429 ; Extended_Pictographic# E0.6 [19] (🐗..🐩) boar..poodle +1F42A ; Extended_Pictographic# E1.0 [1] (🐪) camel +1F42B..1F43E ; Extended_Pictographic# E0.6 [20] (🐫..🐾) two-hump camel..paw prints +1F43F ; Extended_Pictographic# E0.7 [1] (🐿️) chipmunk +1F440 ; Extended_Pictographic# E0.6 [1] (👀) eyes +1F441 ; Extended_Pictographic# E0.7 [1] (👁️) eye +1F442..1F464 ; Extended_Pictographic# E0.6 [35] (👂..👤) ear..bust in silhouette +1F465 ; Extended_Pictographic# E1.0 [1] (👥) busts in silhouette +1F466..1F46B ; Extended_Pictographic# E0.6 [6] (👦..👫) boy..woman and man holding hands +1F46C..1F46D ; Extended_Pictographic# E1.0 [2] (👬..👭) men holding hands..women holding hands +1F46E..1F4AC ; Extended_Pictographic# E0.6 [63] (👮..💬) police officer..speech balloon +1F4AD ; Extended_Pictographic# E1.0 [1] (💭) thought balloon +1F4AE..1F4B5 ; Extended_Pictographic# E0.6 [8] (💮..💵) white flower..dollar banknote +1F4B6..1F4B7 ; Extended_Pictographic# E1.0 [2] (💶..💷) euro banknote..pound banknote +1F4B8..1F4EB ; Extended_Pictographic# E0.6 [52] (💸..📫) money with wings..closed mailbox with raised flag +1F4EC..1F4ED ; Extended_Pictographic# E0.7 [2] (📬..📭) open mailbox with raised flag..open mailbox with lowered flag +1F4EE ; Extended_Pictographic# E0.6 [1] (📮) postbox +1F4EF ; Extended_Pictographic# E1.0 [1] (📯) postal horn +1F4F0..1F4F4 ; Extended_Pictographic# E0.6 [5] (📰..📴) newspaper..mobile phone off +1F4F5 ; Extended_Pictographic# E1.0 [1] (📵) no mobile phones +1F4F6..1F4F7 ; Extended_Pictographic# E0.6 [2] (📶..📷) antenna bars..camera +1F4F8 ; Extended_Pictographic# E1.0 [1] (📸) camera with flash +1F4F9..1F4FC ; Extended_Pictographic# E0.6 [4] (📹..📼) video camera..videocassette +1F4FD ; Extended_Pictographic# E0.7 [1] (📽️) film projector +1F4FE ; Extended_Pictographic# E0.0 [1] (📾) PORTABLE STEREO +1F4FF..1F502 ; Extended_Pictographic# E1.0 [4] (📿..🔂) prayer beads..repeat single button +1F503 ; Extended_Pictographic# E0.6 [1] (🔃) clockwise vertical arrows +1F504..1F507 ; Extended_Pictographic# E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker +1F508 ; Extended_Pictographic# E0.7 [1] (🔈) speaker low volume +1F509 ; Extended_Pictographic# E1.0 [1] (🔉) speaker medium volume +1F50A..1F514 ; Extended_Pictographic# E0.6 [11] (🔊..🔔) speaker high volume..bell +1F515 ; Extended_Pictographic# E1.0 [1] (🔕) bell with slash +1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..water pistol +1F52C..1F52D ; Extended_Pictographic# E1.0 [2] (🔬..🔭) microscope..telescope +1F52E..1F53D ; Extended_Pictographic# E0.6 [16] (🔮..🔽) crystal ball..downwards button +1F546..1F548 ; Extended_Pictographic# E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS +1F549..1F54A ; Extended_Pictographic# E0.7 [2] (🕉️..🕊️) om..dove +1F54B..1F54E ; Extended_Pictographic# E1.0 [4] (🕋..🕎) kaaba..menorah +1F54F ; Extended_Pictographic# E0.0 [1] (🕏) BOWL OF HYGIEIA +1F550..1F55B ; Extended_Pictographic# E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock +1F55C..1F567 ; Extended_Pictographic# E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty +1F568..1F56E ; Extended_Pictographic# E0.0 [7] (🕨..🕮) RIGHT SPEAKER..BOOK +1F56F..1F570 ; Extended_Pictographic# E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock +1F571..1F572 ; Extended_Pictographic# E0.0 [2] (🕱..🕲) BLACK SKULL AND CROSSBONES..NO PIRACY +1F573..1F579 ; Extended_Pictographic# E0.7 [7] (🕳️..🕹️) hole..joystick +1F57A ; Extended_Pictographic# E3.0 [1] (🕺) man dancing +1F57B..1F586 ; Extended_Pictographic# E0.0 [12] (🕻..🖆) LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE +1F587 ; Extended_Pictographic# E0.7 [1] (🖇️) linked paperclips +1F588..1F589 ; Extended_Pictographic# E0.0 [2] (🖈..🖉) BLACK PUSHPIN..LOWER LEFT PENCIL +1F58A..1F58D ; Extended_Pictographic# E0.7 [4] (🖊️..🖍️) pen..crayon +1F58E..1F58F ; Extended_Pictographic# E0.0 [2] (🖎..🖏) LEFT WRITING HAND..TURNED OK HAND SIGN +1F590 ; Extended_Pictographic# E0.7 [1] (🖐️) hand with fingers splayed +1F591..1F594 ; Extended_Pictographic# E0.0 [4] (🖑..🖔) REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND +1F595..1F596 ; Extended_Pictographic# E1.0 [2] (🖕..🖖) middle finger..vulcan salute +1F597..1F5A3 ; Extended_Pictographic# E0.0 [13] (🖗..🖣) WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX +1F5A4 ; Extended_Pictographic# E3.0 [1] (🖤) black heart +1F5A5 ; Extended_Pictographic# E0.7 [1] (🖥️) desktop computer +1F5A6..1F5A7 ; Extended_Pictographic# E0.0 [2] (🖦..🖧) KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS +1F5A8 ; Extended_Pictographic# E0.7 [1] (🖨️) printer +1F5A9..1F5B0 ; Extended_Pictographic# E0.0 [8] (🖩..🖰) POCKET CALCULATOR..TWO BUTTON MOUSE +1F5B1..1F5B2 ; Extended_Pictographic# E0.7 [2] (🖱️..🖲️) computer mouse..trackball +1F5B3..1F5BB ; Extended_Pictographic# E0.0 [9] (🖳..🖻) OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE +1F5BC ; Extended_Pictographic# E0.7 [1] (🖼️) framed picture +1F5BD..1F5C1 ; Extended_Pictographic# E0.0 [5] (🖽..🗁) FRAME WITH TILES..OPEN FOLDER +1F5C2..1F5C4 ; Extended_Pictographic# E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet +1F5C5..1F5D0 ; Extended_Pictographic# E0.0 [12] (🗅..🗐) EMPTY NOTE..PAGES +1F5D1..1F5D3 ; Extended_Pictographic# E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar +1F5D4..1F5DB ; Extended_Pictographic# E0.0 [8] (🗔..🗛) DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL +1F5DC..1F5DE ; Extended_Pictographic# E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper +1F5DF..1F5E0 ; Extended_Pictographic# E0.0 [2] (🗟..🗠) PAGE WITH CIRCLED TEXT..STOCK CHART +1F5E1 ; Extended_Pictographic# E0.7 [1] (🗡️) dagger +1F5E2 ; Extended_Pictographic# E0.0 [1] (🗢) LIPS +1F5E3 ; Extended_Pictographic# E0.7 [1] (🗣️) speaking head +1F5E4..1F5E7 ; Extended_Pictographic# E0.0 [4] (🗤..🗧) THREE RAYS ABOVE..THREE RAYS RIGHT +1F5E8 ; Extended_Pictographic# E2.0 [1] (🗨️) left speech bubble +1F5E9..1F5EE ; Extended_Pictographic# E0.0 [6] (🗩..🗮) RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE +1F5EF ; Extended_Pictographic# E0.7 [1] (🗯️) right anger bubble +1F5F0..1F5F2 ; Extended_Pictographic# E0.0 [3] (🗰..🗲) MOOD BUBBLE..LIGHTNING MOOD +1F5F3 ; Extended_Pictographic# E0.7 [1] (🗳️) ballot box with ballot +1F5F4..1F5F9 ; Extended_Pictographic# E0.0 [6] (🗴..🗹) BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK +1F5FA ; Extended_Pictographic# E0.7 [1] (🗺️) world map +1F5FB..1F5FF ; Extended_Pictographic# E0.6 [5] (🗻..🗿) mount fuji..moai +1F600 ; Extended_Pictographic# E1.0 [1] (😀) grinning face +1F601..1F606 ; Extended_Pictographic# E0.6 [6] (😁..😆) beaming face with smiling eyes..grinning squinting face +1F607..1F608 ; Extended_Pictographic# E1.0 [2] (😇..😈) smiling face with halo..smiling face with horns +1F609..1F60D ; Extended_Pictographic# E0.6 [5] (😉..😍) winking face..smiling face with heart-eyes +1F60E ; Extended_Pictographic# E1.0 [1] (😎) smiling face with sunglasses +1F60F ; Extended_Pictographic# E0.6 [1] (😏) smirking face +1F610 ; Extended_Pictographic# E0.7 [1] (😐) neutral face +1F611 ; Extended_Pictographic# E1.0 [1] (😑) expressionless face +1F612..1F614 ; Extended_Pictographic# E0.6 [3] (😒..😔) unamused face..pensive face +1F615 ; Extended_Pictographic# E1.0 [1] (😕) confused face +1F616 ; Extended_Pictographic# E0.6 [1] (😖) confounded face +1F617 ; Extended_Pictographic# E1.0 [1] (😗) kissing face +1F618 ; Extended_Pictographic# E0.6 [1] (😘) face blowing a kiss +1F619 ; Extended_Pictographic# E1.0 [1] (😙) kissing face with smiling eyes +1F61A ; Extended_Pictographic# E0.6 [1] (😚) kissing face with closed eyes +1F61B ; Extended_Pictographic# E1.0 [1] (😛) face with tongue +1F61C..1F61E ; Extended_Pictographic# E0.6 [3] (😜..😞) winking face with tongue..disappointed face +1F61F ; Extended_Pictographic# E1.0 [1] (😟) worried face +1F620..1F625 ; Extended_Pictographic# E0.6 [6] (😠..😥) angry face..sad but relieved face +1F626..1F627 ; Extended_Pictographic# E1.0 [2] (😦..😧) frowning face with open mouth..anguished face +1F628..1F62B ; Extended_Pictographic# E0.6 [4] (😨..😫) fearful face..tired face +1F62C ; Extended_Pictographic# E1.0 [1] (😬) grimacing face +1F62D ; Extended_Pictographic# E0.6 [1] (😭) loudly crying face +1F62E..1F62F ; Extended_Pictographic# E1.0 [2] (😮..😯) face with open mouth..hushed face +1F630..1F633 ; Extended_Pictographic# E0.6 [4] (😰..😳) anxious face with sweat..flushed face +1F634 ; Extended_Pictographic# E1.0 [1] (😴) sleeping face +1F635 ; Extended_Pictographic# E0.6 [1] (😵) face with crossed-out eyes +1F636 ; Extended_Pictographic# E1.0 [1] (😶) face without mouth +1F637..1F640 ; Extended_Pictographic# E0.6 [10] (😷..🙀) face with medical mask..weary cat +1F641..1F644 ; Extended_Pictographic# E1.0 [4] (🙁..🙄) slightly frowning face..face with rolling eyes +1F645..1F64F ; Extended_Pictographic# E0.6 [11] (🙅..🙏) person gesturing NO..folded hands +1F680 ; Extended_Pictographic# E0.6 [1] (🚀) rocket +1F681..1F682 ; Extended_Pictographic# E1.0 [2] (🚁..🚂) helicopter..locomotive +1F683..1F685 ; Extended_Pictographic# E0.6 [3] (🚃..🚅) railway car..bullet train +1F686 ; Extended_Pictographic# E1.0 [1] (🚆) train +1F687 ; Extended_Pictographic# E0.6 [1] (🚇) metro +1F688 ; Extended_Pictographic# E1.0 [1] (🚈) light rail +1F689 ; Extended_Pictographic# E0.6 [1] (🚉) station +1F68A..1F68B ; Extended_Pictographic# E1.0 [2] (🚊..🚋) tram..tram car +1F68C ; Extended_Pictographic# E0.6 [1] (🚌) bus +1F68D ; Extended_Pictographic# E0.7 [1] (🚍) oncoming bus +1F68E ; Extended_Pictographic# E1.0 [1] (🚎) trolleybus +1F68F ; Extended_Pictographic# E0.6 [1] (🚏) bus stop +1F690 ; Extended_Pictographic# E1.0 [1] (🚐) minibus +1F691..1F693 ; Extended_Pictographic# E0.6 [3] (🚑..🚓) ambulance..police car +1F694 ; Extended_Pictographic# E0.7 [1] (🚔) oncoming police car +1F695 ; Extended_Pictographic# E0.6 [1] (🚕) taxi +1F696 ; Extended_Pictographic# E1.0 [1] (🚖) oncoming taxi +1F697 ; Extended_Pictographic# E0.6 [1] (🚗) automobile +1F698 ; Extended_Pictographic# E0.7 [1] (🚘) oncoming automobile +1F699..1F69A ; Extended_Pictographic# E0.6 [2] (🚙..🚚) sport utility vehicle..delivery truck +1F69B..1F6A1 ; Extended_Pictographic# E1.0 [7] (🚛..🚡) articulated lorry..aerial tramway +1F6A2 ; Extended_Pictographic# E0.6 [1] (🚢) ship +1F6A3 ; Extended_Pictographic# E1.0 [1] (🚣) person rowing boat +1F6A4..1F6A5 ; Extended_Pictographic# E0.6 [2] (🚤..🚥) speedboat..horizontal traffic light +1F6A6 ; Extended_Pictographic# E1.0 [1] (🚦) vertical traffic light +1F6A7..1F6AD ; Extended_Pictographic# E0.6 [7] (🚧..🚭) construction..no smoking +1F6AE..1F6B1 ; Extended_Pictographic# E1.0 [4] (🚮..🚱) litter in bin sign..non-potable water +1F6B2 ; Extended_Pictographic# E0.6 [1] (🚲) bicycle +1F6B3..1F6B5 ; Extended_Pictographic# E1.0 [3] (🚳..🚵) no bicycles..person mountain biking +1F6B6 ; Extended_Pictographic# E0.6 [1] (🚶) person walking +1F6B7..1F6B8 ; Extended_Pictographic# E1.0 [2] (🚷..🚸) no pedestrians..children crossing +1F6B9..1F6BE ; Extended_Pictographic# E0.6 [6] (🚹..🚾) men’s room..water closet +1F6BF ; Extended_Pictographic# E1.0 [1] (🚿) shower +1F6C0 ; Extended_Pictographic# E0.6 [1] (🛀) person taking bath +1F6C1..1F6C5 ; Extended_Pictographic# E1.0 [5] (🛁..🛅) bathtub..left luggage +1F6C6..1F6CA ; Extended_Pictographic# E0.0 [5] (🛆..🛊) TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL +1F6CB ; Extended_Pictographic# E0.7 [1] (🛋️) couch and lamp +1F6CC ; Extended_Pictographic# E1.0 [1] (🛌) person in bed +1F6CD..1F6CF ; Extended_Pictographic# E0.7 [3] (🛍️..🛏️) shopping bags..bed +1F6D0 ; Extended_Pictographic# E1.0 [1] (🛐) place of worship +1F6D1..1F6D2 ; Extended_Pictographic# E3.0 [2] (🛑..🛒) stop sign..shopping cart +1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA +1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple +1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator +1F6D8..1F6DB ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F6D8>..<reserved-1F6DB> +1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless +1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy +1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat +1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE +1F6E9 ; Extended_Pictographic# E0.7 [1] (🛩️) small airplane +1F6EA ; Extended_Pictographic# E0.0 [1] (🛪) NORTHEAST-POINTING AIRPLANE +1F6EB..1F6EC ; Extended_Pictographic# E1.0 [2] (🛫..🛬) airplane departure..airplane arrival +1F6ED..1F6EF ; Extended_Pictographic# E0.0 [3] (..) <reserved-1F6ED>..<reserved-1F6EF> +1F6F0 ; Extended_Pictographic# E0.7 [1] (🛰️) satellite +1F6F1..1F6F2 ; Extended_Pictographic# E0.0 [2] (🛱..🛲) ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE +1F6F3 ; Extended_Pictographic# E0.7 [1] (🛳️) passenger ship +1F6F4..1F6F6 ; Extended_Pictographic# E3.0 [3] (🛴..🛶) kick scooter..canoe +1F6F7..1F6F8 ; Extended_Pictographic# E5.0 [2] (🛷..🛸) sled..flying saucer +1F6F9 ; Extended_Pictographic# E11.0 [1] (🛹) skateboard +1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw +1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate +1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (..) <reserved-1F6FD>..<reserved-1F6FF> +1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS +1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..) CIRCLED TRIANGLE..<reserved-1F7DF> +1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square +1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F7EC>..<reserved-1F7EF> +1F7F0 ; Extended_Pictographic# E14.0 [1] (🟰) heavy equals sign +1F7F1..1F7FF ; Extended_Pictographic# E0.0 [15] (..) <reserved-1F7F1>..<reserved-1F7FF> +1F80C..1F80F ; Extended_Pictographic# E0.0 [4] (..) <reserved-1F80C>..<reserved-1F80F> +1F848..1F84F ; Extended_Pictographic# E0.0 [8] (..) <reserved-1F848>..<reserved-1F84F> +1F85A..1F85F ; Extended_Pictographic# E0.0 [6] (..) <reserved-1F85A>..<reserved-1F85F> +1F888..1F88F ; Extended_Pictographic# E0.0 [8] (..) <reserved-1F888>..<reserved-1F88F> +1F8AE..1F8FF ; Extended_Pictographic# E0.0 [82] (..) <reserved-1F8AE>..<reserved-1F8FF> +1F90C ; Extended_Pictographic# E13.0 [1] (🤌) pinched fingers +1F90D..1F90F ; Extended_Pictographic# E12.0 [3] (🤍..🤏) white heart..pinching hand +1F910..1F918 ; Extended_Pictographic# E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns +1F919..1F91E ; Extended_Pictographic# E3.0 [6] (🤙..🤞) call me hand..crossed fingers +1F91F ; Extended_Pictographic# E5.0 [1] (🤟) love-you gesture +1F920..1F927 ; Extended_Pictographic# E3.0 [8] (🤠..🤧) cowboy hat face..sneezing face +1F928..1F92F ; Extended_Pictographic# E5.0 [8] (🤨..🤯) face with raised eyebrow..exploding head +1F930 ; Extended_Pictographic# E3.0 [1] (🤰) pregnant woman +1F931..1F932 ; Extended_Pictographic# E5.0 [2] (🤱..🤲) breast-feeding..palms up together +1F933..1F93A ; Extended_Pictographic# E3.0 [8] (🤳..🤺) selfie..person fencing +1F93C..1F93E ; Extended_Pictographic# E3.0 [3] (🤼..🤾) people wrestling..person playing handball +1F93F ; Extended_Pictographic# E12.0 [1] (🤿) diving mask +1F940..1F945 ; Extended_Pictographic# E3.0 [6] (🥀..🥅) wilted flower..goal net +1F947..1F94B ; Extended_Pictographic# E3.0 [5] (🥇..🥋) 1st place medal..martial arts uniform +1F94C ; Extended_Pictographic# E5.0 [1] (🥌) curling stone +1F94D..1F94F ; Extended_Pictographic# E11.0 [3] (🥍..🥏) lacrosse..flying disc +1F950..1F95E ; Extended_Pictographic# E3.0 [15] (🥐..🥞) croissant..pancakes +1F95F..1F96B ; Extended_Pictographic# E5.0 [13] (🥟..🥫) dumpling..canned food +1F96C..1F970 ; Extended_Pictographic# E11.0 [5] (🥬..🥰) leafy green..smiling face with hearts +1F971 ; Extended_Pictographic# E12.0 [1] (🥱) yawning face +1F972 ; Extended_Pictographic# E13.0 [1] (🥲) smiling face with tear +1F973..1F976 ; Extended_Pictographic# E11.0 [4] (🥳..🥶) partying face..cold face +1F977..1F978 ; Extended_Pictographic# E13.0 [2] (🥷..🥸) ninja..disguised face +1F979 ; Extended_Pictographic# E14.0 [1] (🥹) face holding back tears +1F97A ; Extended_Pictographic# E11.0 [1] (🥺) pleading face +1F97B ; Extended_Pictographic# E12.0 [1] (🥻) sari +1F97C..1F97F ; Extended_Pictographic# E11.0 [4] (🥼..🥿) lab coat..flat shoe +1F980..1F984 ; Extended_Pictographic# E1.0 [5] (🦀..🦄) crab..unicorn +1F985..1F991 ; Extended_Pictographic# E3.0 [13] (🦅..🦑) eagle..squid +1F992..1F997 ; Extended_Pictographic# E5.0 [6] (🦒..🦗) giraffe..cricket +1F998..1F9A2 ; Extended_Pictographic# E11.0 [11] (🦘..🦢) kangaroo..swan +1F9A3..1F9A4 ; Extended_Pictographic# E13.0 [2] (🦣..🦤) mammoth..dodo +1F9A5..1F9AA ; Extended_Pictographic# E12.0 [6] (🦥..🦪) sloth..oyster +1F9AB..1F9AD ; Extended_Pictographic# E13.0 [3] (🦫..🦭) beaver..seal +1F9AE..1F9AF ; Extended_Pictographic# E12.0 [2] (🦮..🦯) guide dog..white cane +1F9B0..1F9B9 ; Extended_Pictographic# E11.0 [10] (🦰..🦹) red hair..supervillain +1F9BA..1F9BF ; Extended_Pictographic# E12.0 [6] (🦺..🦿) safety vest..mechanical leg +1F9C0 ; Extended_Pictographic# E1.0 [1] (🧀) cheese wedge +1F9C1..1F9C2 ; Extended_Pictographic# E11.0 [2] (🧁..🧂) cupcake..salt +1F9C3..1F9CA ; Extended_Pictographic# E12.0 [8] (🧃..🧊) beverage box..ice +1F9CB ; Extended_Pictographic# E13.0 [1] (🧋) bubble tea +1F9CC ; Extended_Pictographic# E14.0 [1] (🧌) troll +1F9CD..1F9CF ; Extended_Pictographic# E12.0 [3] (🧍..🧏) person standing..deaf person +1F9D0..1F9E6 ; Extended_Pictographic# E5.0 [23] (🧐..🧦) face with monocle..socks +1F9E7..1F9FF ; Extended_Pictographic# E11.0 [25] (🧧..🧿) red envelope..nazar amulet +1FA00..1FA6F ; Extended_Pictographic# E0.0 [112] (🨀..) NEUTRAL CHESS KING..<reserved-1FA6F> +1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts +1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal +1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart +1FA78..1FA7A ; Extended_Pictographic# E12.0 [3] (🩸..🩺) drop of blood..stethoscope +1FA7B..1FA7C ; Extended_Pictographic# E14.0 [2] (🩻..🩼) x-ray..crutch +1FA7D..1FA7F ; Extended_Pictographic# E0.0 [3] (..) <reserved-1FA7D>..<reserved-1FA7F> +1FA80..1FA82 ; Extended_Pictographic# E12.0 [3] (🪀..🪂) yo-yo..parachute +1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls +1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute +1FA89..1FA8F ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FA89>..<reserved-1FA8F> +1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo +1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock +1FAA9..1FAAC ; Extended_Pictographic# E14.0 [4] (🪩..🪬) mirror ball..hamsa +1FAAD..1FAAF ; Extended_Pictographic# E15.0 [3] (🪭..🪯) folding hand fan..khanda +1FAB0..1FAB6 ; Extended_Pictographic# E13.0 [7] (🪰..🪶) fly..feather +1FAB7..1FABA ; Extended_Pictographic# E14.0 [4] (🪷..🪺) lotus..nest with eggs +1FABB..1FABD ; Extended_Pictographic# E15.0 [3] (🪻..🪽) hyacinth..wing +1FABE ; Extended_Pictographic# E0.0 [1] () <reserved-1FABE> +1FABF ; Extended_Pictographic# E15.0 [1] (🪿) goose +1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging +1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown +1FAC6..1FACD ; Extended_Pictographic# E0.0 [8] (..) <reserved-1FAC6>..<reserved-1FACD> +1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey +1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot +1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar +1FADA..1FADB ; Extended_Pictographic# E15.0 [2] (🫚..🫛) ginger root..pea pod +1FADC..1FADF ; Extended_Pictographic# E0.0 [4] (..) <reserved-1FADC>..<reserved-1FADF> +1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles +1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face +1FAE9..1FAEF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAE9>..<reserved-1FAEF> +1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands +1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand +1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (..) <reserved-1FAF9>..<reserved-1FAFF> +1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (..) <reserved-1FC00>..<reserved-1FFFD> + +# Total elements: 3537 + +#EOF diff --git a/vendor/librune/gen/gbrk b/vendor/librune/gen/gbrk new file mode 100755 index 0000000..577c2c9 --- /dev/null +++ b/vendor/librune/gen/gbrk @@ -0,0 +1,114 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/gbrk/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/gbrk + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/gbrk_lookup.h + +readonly URL1='https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt' +readonly URL2='https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt' +readonly URL3='https://www.unicode.org/Public/UCD/latest/ucd/DerivedCoreProperties.txt' + +cache "$URL1" & +cache "$URL2" & +cache "$URL3" & +wait + +cat <<C +/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_GBRK_LOOKUP_H +#define RUNE_INTERNAL_GBRK_LOOKUP_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "types.h" + +typedef enum { + GBP_OTHER = 0, + + GBP_CTRL = 1 << 0, /* Control */ + GBP_EXT = 1 << 1, /* Extend */ + GBP_PIC = 1 << 2, /* Extended_Pictographic */ + GBP_PREP = 1 << 3, /* Prepend */ + GBP_RI = 1 << 4, /* Regional_Indicator */ + GBP_SM = 1 << 5, /* SpacingMark */ + GBP_ZWJ = 1 << 6, /* ZWJ */ + + GBP_HNGL_L = 1 << 7, /* Hangul L */ + GBP_HNGL_LV = 1 << 8, /* Hangul LV */ + GBP_HNGL_LVT = 1 << 9, /* Hangul LVT */ + GBP_HNGL_T = 1 << 10, /* Hangul T */ + GBP_HNGL_V = 1 << 11, /* Hangul V */ + + GBP_INDC_CNSNT = 1 << 12, /* Indic Consonant */ + GBP_INDC_EXT = 1 << 13, /* Indic Extend */ + GBP_INDC_LNK = 1 << 14, /* Indic Linker */ +} gbrk_prop; + +static const struct { + rune lo, hi; + gbrk_prop val; +} gbrk_prop_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" + map["Control"] = "CTRL" + map["Extend"] = "EXT" + map["Extended_Pictographic"] = "PIC" + map["Prepend"] = "PREP" + map["Regional_Indicator"] = "RI" + map["SpacingMark"] = "SM" + map["ZWJ"] = "ZWJ" + + map["L"] = "HNGL_L" + map["LV"] = "HNGL_LV" + map["LVT"] = "HNGL_LVT" + map["T"] = "HNGL_T" + map["V"] = "HNGL_V" + + map["InCB; Consonant"] = "INDC_CNSNT" + map["InCB; Extend"] = "INDC_EXT" + map["InCB; Linker"] = "INDC_LNK" +} + +map[$2] { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) { + s = "GBP_" map[$2] + props[i] = props[i] ? props[i] " | " s : s + } +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{0x%06X, 0x%06X, %s},\n", lo, i, props[lo] + } +} +' /tmp/librune/gbrk/* | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_GBRK_LOOKUP_H */ +C diff --git a/vendor/librune/gen/mkfile b/vendor/librune/gen/mkfile new file mode 100755 index 0000000..a55b08a --- /dev/null +++ b/vendor/librune/gen/mkfile @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e +cd "${0%/*}/.." +exec >Makefile + +cat <<make +.POSIX: + +CC = cc +CFLAGS = -Wall -Wextra -Wpedantic -g -ggdb3 -fanalyzer -Iinclude + +make + +printf 'objs = \\\n' +find lib -name '*.c' | sort | sed ' + s/c$/o/ + s/.*/\t& \\/ + $s/ \\$// +' + +cat <<make + +all: \$(objs) + +make + +find lib -name '*.c' | sort | sed -E 's/(.*)c$/\1o: \1c/' + +cat <<make + +clean: + find lib -name '*.o' -delete + +ls: + @echo "alias ls='ls --color=auto -I \"*.o\" -I \"compile_commands.json\"'" >&2 +make diff --git a/vendor/librune/gen/rtype-dt b/vendor/librune/gen/rtype-dt new file mode 100755 index 0000000..927b54f --- /dev/null +++ b/vendor/librune/gen/rtype-dt @@ -0,0 +1,98 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/dt.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedDecompositionType.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-dt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_DT_H +#define RUNE_INTERNAL_RTYPE_DT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_dt_bf rtype_dt_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0xFF; i++) + printf "%12s,\n", "DT_" (props[i] ? toupper(props[i]) : "NONE") +} +' /tmp/librune/rtype/DerivedDecompositionType.txt \ +| paste -d' ' - - - - \ +| sed 's/^/\t/' + +cat <<C +}; + +static const struct { + rune lo, hi; + rprop_dt_bf val; +} rtype_dt_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf("\t{RUNE_C(0x%06X), RUNE_C(0x%06X), DT_%s},\n", + lo, i, toupper(props[lo])) + } +} +' /tmp/librune/rtype/DerivedDecompositionType.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_DT_H */ +C diff --git a/vendor/librune/gen/rtype-equideo b/vendor/librune/gen/rtype-equideo new file mode 100755 index 0000000..794e239 --- /dev/null +++ b/vendor/librune/gen/rtype-equideo @@ -0,0 +1,64 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/equideo.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/EquivalentUnifiedIdeograph.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-equideo; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_EQUIDEO_H +#define RUNE_INTERNAL_RTYPE_EQUIDEO_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rune.h" + +static const struct { + rune key, val; +} rtype_equideo_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = strtonum("0X" $2) +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", i, props[i] + } +} +' /tmp/librune/rtype/EquivalentUnifiedIdeograph.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_EQUIDEO_H */ +C diff --git a/vendor/librune/gen/rtype-gc b/vendor/librune/gen/rtype-gc new file mode 100755 index 0000000..33d1662 --- /dev/null +++ b/vendor/librune/gen/rtype-gc @@ -0,0 +1,107 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/gc.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/UnicodeData.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-gc; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_GC_H +#define RUNE_INTERNAL_RTYPE_GC_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_gc_bf rtype_gc_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = ";" +} + +{ + s = "GC_" toupper($3) + lo = strtonum("0X" $1) + + if ($2 ~ /First/) { + getline + hi = strtonum("0X" $1) + } else + hi = lo + + for (i = lo; i <= hi; i++) + props[i] = s +} + +END { + for (i = 0; i <= 0xFF; i++) + print props[i] "," +} +' /tmp/librune/rtype/UnicodeData.txt \ +| paste -d' ' - - - - - - - - \ +| sed 's/^/\t/' + +cat <<C +}; + +static const struct { + rune lo, hi; + rprop_gc_bf val; +} rtype_gc_tbl[] = { +C + +gawk ' +BEGIN { + FS = ";" +} + +{ + s = "GC_" toupper($3) + lo = strtonum("0X" $1) + + if ($2 ~ /First/) { + getline + hi = strtonum("0X" $1) + } else + hi = lo + + for (i = lo; i <= hi; i++) + props[i] = s +} + +END { + for (i = 0x100; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), %s},\n", lo, i, props[lo] + } +} +' /tmp/librune/rtype/UnicodeData.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_GC_H */ +C diff --git a/vendor/librune/gen/rtype-jg b/vendor/librune/gen/rtype-jg new file mode 100755 index 0000000..6576437 --- /dev/null +++ b/vendor/librune/gen/rtype-jg @@ -0,0 +1,69 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/jg.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedJoiningGroup.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-jg; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_JG_H +#define RUNE_INTERNAL_RTYPE_JG_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const struct { + rune lo, hi; + rprop_jg_bf val; +} rtype_jg_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = toupper($2) +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), JG_%s},\n", lo, i, props[lo] + } +} +' /tmp/librune/rtype/DerivedJoiningGroup.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_JG_H */ +C diff --git a/vendor/librune/gen/rtype-jt b/vendor/librune/gen/rtype-jt new file mode 100755 index 0000000..81185ec --- /dev/null +++ b/vendor/librune/gen/rtype-jt @@ -0,0 +1,97 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/jt.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedJoiningType.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-jt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_JT_H +#define RUNE_INTERNAL_RTYPE_JT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_jt_bf rtype_jt_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +$2 ~ /[UCDRLT]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0xFF; i++) + printf "JT_%s,\n", props[i] ? props[i] : "U" +} +' /tmp/librune/rtype/DerivedJoiningType.txt \ +| paste -d' ' - - - - - - - - \ +| sed 's/^/\t/' + +cat <<C +}; + +static const struct { + rune lo, hi; + rprop_jt_bf val; +} rtype_jt_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +$2 ~ /[UCDRLT]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), JT_%s},\n", lo, i, props[lo] + } +} +' /tmp/librune/rtype/DerivedJoiningType.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_JT_H */ +C diff --git a/vendor/librune/gen/rtype-nt b/vendor/librune/gen/rtype-nt new file mode 100755 index 0000000..7dc149f --- /dev/null +++ b/vendor/librune/gen/rtype-nt @@ -0,0 +1,97 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/nt.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedNumericType.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-nt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_NT_H +#define RUNE_INTERNAL_RTYPE_NT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_nt_bf rtype_nt_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = toupper($2) +} + +END { + for (i = 0; i <= 0xFF; i++) + printf "%10s,\n", "NT_" (props[i] ? props[i] : "NONE") +} +' /tmp/librune/rtype/DerivedNumericType.txt \ +| paste -d' ' - - - - - - - - \ +| sed 's/^/\t/' + +cat <<C +}; + +static const struct { + rune lo, hi; + rprop_nt_bf val; +} rtype_nt_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = toupper($2) +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), NT_%s},\n", lo, i, props[lo] + } +} +' /tmp/librune/rtype/DerivedNumericType.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_NT_H */ +C diff --git a/vendor/librune/gen/rtype-nv b/vendor/librune/gen/rtype-nv new file mode 100755 index 0000000..f5dd9d4 --- /dev/null +++ b/vendor/librune/gen/rtype-nv @@ -0,0 +1,68 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/nv.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedNumericValues.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-nv; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_NV_H +#define RUNE_INTERNAL_RTYPE_NV_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const struct { + rune key; + double val; +} rtype_nv_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) { + gsub(/^; /, "", $3) + props[i] = "(double)" $3 + } +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + printf "\t{RUNE_C(0x%06X), %s},\n", i, props[i] + } +} +' /tmp/librune/rtype/DerivedNumericValues.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_NV_H */ +C diff --git a/vendor/librune/gen/rtype-prop b/vendor/librune/gen/rtype-prop new file mode 100755 index 0000000..759a07d --- /dev/null +++ b/vendor/librune/gen/rtype-prop @@ -0,0 +1,155 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +cd "${0%/*}/.." + +readonly URL1='https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt' +readonly URL2='https://www.unicode.org/Public/UCD/latest/ucd/DerivedCoreProperties.txt' +readonly URL3='https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt' +readonly URL4='https://www.unicode.org/Public/UCD/latest/ucd/DerivedNormalizationProps.txt' +readonly URL5='https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedBinaryProperties.txt' + +cache "$URL1" & +cache "$URL2" & +cache "$URL3" & +cache "$URL4" & +cache "$URL5" & +wait + +props1=' +bidi_c=Bidi_Control +dash=Dash +dep=Deprecated +dia=Diacritic +ext=Extender +hex=Hex_Digit +idbo=IDS_Binary_Operator +id_compat_math_continue=ID_Compat_Math_Continue +id_compat_math_start=ID_Compat_Math_Start +ideo=Ideographic +loe=Logical_Order_Exception +pat_syn=Pattern_Syntax +pcm=Prepended_Concatenation_Mark +qmark=Quotation_Mark +radical=Radical +sd=Soft_Dotted +sterm=Sentence_Terminal +term=Terminal_Punctuation +uideo=Unified_Ideograph +vs=Variation_Selector +wspace=White_Space +' + +props2=' +alpha=Alphabetic +cased=Cased +ci=Case_Ignorable +cwcf=Changes_When_Casefolded +cwcm=Changes_When_Casemapped +cwl=Changes_When_Lowercased +cwt=Changes_When_Titlecased +cwu=Changes_When_Uppercased +di=Default_Ignorable_Code_Point +gr_base=Grapheme_Base +gr_ext=Grapheme_Extend +idc=ID_Continue +ids=ID_Start +incb=Indic_Conjunct_Break +lower=Lowercase +math=Math +upper=Uppercase +xidc=XID_Continue +xids=XID_Start +' + +props3=' +ebase=Emoji_Modifier_Base +ecomp=Emoji_Component +emod=Emoji_Modifier +emoji=Emoji +epres=Emoji_Presentation +extpic=Extended_Pictographic +' + +props4=' +cwkcf=Changes_When_NFKC_Casefolded +' + +props5=' +bidi_m=Bidi_Mirrored +' + +manual=' +ahex=ASCII_Hex_Digit +idst=IDS_Trinary_Operator +idsu=IDS_Unary_Operator +join_c=Join_Control +nchar=Noncharacter_Code_Point +pat_ws=Pattern_White_Space +ri=Regional_Indicator +' + +gen() +{ + local p=${1%%=*} + gawk -M -v prop=${1#*=} -v word=$2 -v short=$p \ + -f gen/rtype-prop.awk /tmp/librune/rtype/$3 \ + >lib/rtype/rprop_${2}_${p}.c + printf 'DONE rprop_%s_%s()\n' $2 $p >&2 +} + +for prop in $props1 +do + gen $prop is PropList.txt & +done + +for prop in $props2 +do + gen $prop is DerivedCoreProperties.txt & +done + +for prop in $props3 +do + gen $prop is emoji-data.txt & +done + +for prop in $props4 +do + gen $prop is DerivedNormalizationProps.txt & +done + +for prop in $props5 +do + gen $prop is DerivedBinaryProperties.txt & +done + +printf '[[unsequenced]] bool rprop_is_%s(rune);\n' \ + $(printf '%s\n' $props1 $props2 $props3 $props4 $props5 | cut -d= -f1) \ +| gawk ' + /PROP PREDICATES END/ { no = 0 } + FILENAME != "-" && !no { print } + FILENAME == "-" { funcs[++i] = $0 } + + /PROP PREDICATES START/ { + no = 1 + asort(funcs) + for (i = 1; i <= length(funcs); i++) + print funcs[i] + } +' - include/rtype.h | sponge include/rtype.h + +wait +for prop in $manual +do + shrt=${prop%%=*} + printf 'Function rprop_is_%s() implemented manually\n' $shrt >&2 +done diff --git a/vendor/librune/gen/rtype-prop.awk b/vendor/librune/gen/rtype-prop.awk new file mode 100644 index 0000000..138b3ab --- /dev/null +++ b/vendor/librune/gen/rtype-prop.awk @@ -0,0 +1,72 @@ +BEGIN { + FS = "( *#.*| +; +)" + + print "/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */" + print "" + print "#include \"rtype.h\"" + print "#include \"rune.h\"" + print "" + print "#include \"internal/common.h\"" + print "" + print "/* clang-format off */" + print "" +} + +$2 == prop || (prop == "Indic_Conjunct_Break" && $2 ~ /InCB;/) { + n = split($1, a, /\.\./) + lo = strtonum("0x" a[1]) + hi = strtonum("0x" a[n]) + + for (i = lo; i <= hi; i++) + xs[i] = 1 +} + +END { + if (word == "is") { + for (i = 0; i <= 0xFF; i++) { + if (xs[i]) + mask = or(mask, lshift(1, i)) + } + } + if (mask > 0) { + print "#if BIT_LOOKUP" + print "static const unsigned _BitInt(LATIN1_MAX + 1) mask =" + printf "\t0x%064Xuwb;\n", mask + print "#endif" + print "" + } + + print "static const struct {" + print "\trune lo, hi;" + print "} lookup_tbl[] = {" + + for (i = 0; i <= 0x10FFFF; i++) { + if (!xs[i]) + continue + lo = i + while (xs[i + 1]) + i++ + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X)},\n", lo, i + } + + print "};" + print "" + print "#define TYPE bool" + print "#define TABLE lookup_tbl" + print "#define DEFAULT false" + print "#define HAS_VALUE 0" + print "#include \"internal/rtype/lookup-func.h\"" + print "" + print "bool" + printf "rprop_%s_%s(rune ch)\n", word, short + print "{" + if (mask > 0) { + print "\treturn" + print "#if BIT_LOOKUP" + print "\t\tch <= LATIN1_MAX ? (mask & (1 << ch)) :" + print "#endif" + print "\t\tlookup(ch);" + } else + print "\treturn lookup(ch);" + print "}" +} diff --git a/vendor/librune/gen/rtype-vo b/vendor/librune/gen/rtype-vo new file mode 100755 index 0000000..7c2f65f --- /dev/null +++ b/vendor/librune/gen/rtype-vo @@ -0,0 +1,100 @@ +#!/bin/sh + +cache() +{ + name="/tmp/librune/rtype/$(basename "$1")" + if test ! -f "$name" + then + mkdir -p /tmp/librune/rtype + wget -q "$1" -O "$name" + fi +} + +set -e +cd "${0%/*}/.." +exec >include/internal/rtype/vo.h + +readonly URL='https://www.unicode.org/Public/UCD/latest/ucd/VerticalOrientation.txt' +cache "$URL" + +cat <<C +/* This file is autogenerated by gen/rtype-vo; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_VO_H +#define RUNE_INTERNAL_RTYPE_VO_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_vo_bf rtype_vo_lat1_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0xFF; i++) + printf "%5s,\n", "VO_" (props[i] ? toupper(props[i]) : "R") +} +' /tmp/librune/rtype/VerticalOrientation.txt \ +| paste -d' ' - - - - - - - - \ +| sed 's/^/\t/' + +cat <<C +}; + +/* This lookup table omits VO_R entries. As VO_R is the default value, we can + remove them from the lookup table for a dramatic decrease in size. */ +static const struct { + rune lo, hi; + rprop_vo_bf val; +} rtype_vo_tbl[] = { +C + +gawk ' +BEGIN { + FS = "( *#.*| +; +)" +} + +/^[^#]/ { + n = split($1, a, /\.\./) + lo = strtonum("0X" a[1]) + hi = strtonum("0X" a[n]) + + for (i = lo; i <= hi; i++) + props[i] = $2 +} + +END { + for (i = 0; i <= 0x10FFFF; i++) { + if (!props[i]) + continue + lo = i + while (props[lo] == props[i + 1]) + i++ + if ((p = toupper(props[lo])) != "R") + printf "\t{RUNE_C(0x%06X), RUNE_C(0x%06X), VO_%s},\n", lo, i, p + } +} +' /tmp/librune/rtype/VerticalOrientation.txt | sort + +cat <<C +}; + +#endif /* !RUNE_INTERNAL_RTYPE_VO_H */ +C diff --git a/vendor/librune/include/builder.h b/vendor/librune/include/builder.h new file mode 100644 index 0000000..403d77b --- /dev/null +++ b/vendor/librune/include/builder.h @@ -0,0 +1,35 @@ +#ifndef RUNE_BUILDER_H +#define RUNE_BUILDER_H + +#define _RUNE_NEEDS_U8VIEW 1 +#include "internal/types.h" /* IWYU pragma: export */ + +struct u8str { + char8_t *p; + size_t len, cap; +}; + +struct u8str *u8strinit(struct u8str *, size_t); +struct u8str *u8strgrow(struct u8str *, size_t); +struct u8str *u8strfit(struct u8str *); +void u8strfree(struct u8str); + +struct u8str *u8strpushr(struct u8str *, rune); +struct u8str *u8strpushstr(struct u8str *, const char *); +struct u8str *u8strpushu8(struct u8str *, struct u8view); + +[[gnu::always_inline]] static inline struct u8view +u8strtou8(struct u8str s) +{ + return (struct u8view){s.p, s.len}; +} + +#define u8strpush(b, x) \ + _Generic((x), \ + char: u8strpushr, \ + int: u8strpushr, \ + rune: u8strpushr, \ + char *: u8strpushstr, \ + struct u8view: u8strpushu8)((b), (x)) + +#endif /* !RUNE_BUILDER_H */ diff --git a/vendor/librune/include/gbrk.h b/vendor/librune/include/gbrk.h new file mode 100644 index 0000000..7cdb31c --- /dev/null +++ b/vendor/librune/include/gbrk.h @@ -0,0 +1,10 @@ +#ifndef RUNE_GBRK_H +#define RUNE_GBRK_H + +#define _RUNE_NEEDS_U8VIEW 1 +#include "internal/types.h" /* IWYU pragma: export */ + +size_t u8glen(const char8_t *, size_t); +size_t u8gnext(struct u8view *, const char8_t **, size_t *); + +#endif /* !RUNE_GBRK_H */ diff --git a/vendor/librune/include/internal/common.h b/vendor/librune/include/internal/common.h new file mode 100644 index 0000000..a05f33c --- /dev/null +++ b/vendor/librune/include/internal/common.h @@ -0,0 +1,29 @@ +#ifndef RUNE_INTERNAL_COMMON_H +#define RUNE_INTERNAL_COMMON_H + +/* IWYU pragma: private */ + +#include <limits.h> + +#define lengthof(a) (sizeof(a) / sizeof(*(a))) + +#define U1(x) (((x)&0x80) == 0x00) +#define U2(x) (((x)&0xE0) == 0xC0) +#define U3(x) (((x)&0xF0) == 0xE0) +#define U4(x) (((x)&0xF8) == 0xF0) +#define UC(x) (((x)&0xC0) == 0x80) + +/* Maximum value of a 1–4-byte long UTF-8 sequence */ +#include "rune.h" +#define _1B_MAX RUNE_C(0x00007F) +#define _2B_MAX RUNE_C(0x0007FF) +#define _3B_MAX RUNE_C(0x00FFFF) +#define _4B_MAX RUNE_C(0x10FFFF) + +#define LATIN1_MAX 0xFF + +#if BITINT_MAXWIDTH >= LATIN1_MAX + 1 +# define BIT_LOOKUP 1 +#endif + +#endif /* !RUNE_INTERNAL_COMMON_H */ diff --git a/vendor/librune/include/internal/gbrk_lookup.h b/vendor/librune/include/internal/gbrk_lookup.h new file mode 100644 index 0000000..634aa83 --- /dev/null +++ b/vendor/librune/include/internal/gbrk_lookup.h @@ -0,0 +1,1568 @@ +/* This file is autogenerated by gen/gbrk; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_GBRK_LOOKUP_H +#define RUNE_INTERNAL_GBRK_LOOKUP_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "types.h" + +typedef enum { + GBP_OTHER = 0, + + GBP_CTRL = 1 << 0, /* Control */ + GBP_EXT = 1 << 1, /* Extend */ + GBP_PIC = 1 << 2, /* Extended_Pictographic */ + GBP_PREP = 1 << 3, /* Prepend */ + GBP_RI = 1 << 4, /* Regional_Indicator */ + GBP_SM = 1 << 5, /* SpacingMark */ + GBP_ZWJ = 1 << 6, /* ZWJ */ + + GBP_HNGL_L = 1 << 7, /* Hangul L */ + GBP_HNGL_LV = 1 << 8, /* Hangul LV */ + GBP_HNGL_LVT = 1 << 9, /* Hangul LVT */ + GBP_HNGL_T = 1 << 10, /* Hangul T */ + GBP_HNGL_V = 1 << 11, /* Hangul V */ + + GBP_INDC_CNSNT = 1 << 12, /* Indic Consonant */ + GBP_INDC_EXT = 1 << 13, /* Indic Extend */ + GBP_INDC_LNK = 1 << 14, /* Indic Linker */ +} gbrk_prop; + +static const struct { + rune lo, hi; + gbrk_prop val; +} gbrk_prop_tbl[] = { + {0x000000, 0x000009, GBP_CTRL}, + {0x00000B, 0x00000C, GBP_CTRL}, + {0x00000E, 0x00001F, GBP_CTRL}, + {0x00007F, 0x00009F, GBP_CTRL}, + {0x0000A9, 0x0000A9, GBP_PIC}, + {0x0000AD, 0x0000AD, GBP_CTRL}, + {0x0000AE, 0x0000AE, GBP_PIC}, + {0x000300, 0x00034E, GBP_INDC_EXT | GBP_EXT}, + {0x00034F, 0x00034F, GBP_EXT}, + {0x000350, 0x00036F, GBP_INDC_EXT | GBP_EXT}, + {0x000483, 0x000487, GBP_INDC_EXT | GBP_EXT}, + {0x000488, 0x000489, GBP_EXT}, + {0x000591, 0x0005BD, GBP_INDC_EXT | GBP_EXT}, + {0x0005BF, 0x0005BF, GBP_INDC_EXT | GBP_EXT}, + {0x0005C1, 0x0005C2, GBP_INDC_EXT | GBP_EXT}, + {0x0005C4, 0x0005C5, GBP_INDC_EXT | GBP_EXT}, + {0x0005C7, 0x0005C7, GBP_INDC_EXT | GBP_EXT}, + {0x000600, 0x000605, GBP_PREP}, + {0x000610, 0x00061A, GBP_INDC_EXT | GBP_EXT}, + {0x00061C, 0x00061C, GBP_CTRL}, + {0x00064B, 0x00065F, GBP_INDC_EXT | GBP_EXT}, + {0x000670, 0x000670, GBP_INDC_EXT | GBP_EXT}, + {0x0006D6, 0x0006DC, GBP_INDC_EXT | GBP_EXT}, + {0x0006DD, 0x0006DD, GBP_PREP}, + {0x0006DF, 0x0006E4, GBP_INDC_EXT | GBP_EXT}, + {0x0006E7, 0x0006E8, GBP_INDC_EXT | GBP_EXT}, + {0x0006EA, 0x0006ED, GBP_INDC_EXT | GBP_EXT}, + {0x00070F, 0x00070F, GBP_PREP}, + {0x000711, 0x000711, GBP_INDC_EXT | GBP_EXT}, + {0x000730, 0x00074A, GBP_INDC_EXT | GBP_EXT}, + {0x0007A6, 0x0007B0, GBP_EXT}, + {0x0007EB, 0x0007F3, GBP_INDC_EXT | GBP_EXT}, + {0x0007FD, 0x0007FD, GBP_INDC_EXT | GBP_EXT}, + {0x000816, 0x000819, GBP_INDC_EXT | GBP_EXT}, + {0x00081B, 0x000823, GBP_INDC_EXT | GBP_EXT}, + {0x000825, 0x000827, GBP_INDC_EXT | GBP_EXT}, + {0x000829, 0x00082D, GBP_INDC_EXT | GBP_EXT}, + {0x000859, 0x00085B, GBP_INDC_EXT | GBP_EXT}, + {0x000890, 0x000891, GBP_PREP}, + {0x000898, 0x00089F, GBP_INDC_EXT | GBP_EXT}, + {0x0008CA, 0x0008E1, GBP_INDC_EXT | GBP_EXT}, + {0x0008E2, 0x0008E2, GBP_PREP}, + {0x0008E3, 0x0008FF, GBP_INDC_EXT | GBP_EXT}, + {0x000900, 0x000902, GBP_EXT}, + {0x000903, 0x000903, GBP_SM}, + {0x000915, 0x000939, GBP_INDC_CNSNT}, + {0x00093A, 0x00093A, GBP_EXT}, + {0x00093B, 0x00093B, GBP_SM}, + {0x00093C, 0x00093C, GBP_INDC_EXT | GBP_EXT}, + {0x00093E, 0x000940, GBP_SM}, + {0x000941, 0x000948, GBP_EXT}, + {0x000949, 0x00094C, GBP_SM}, + {0x00094D, 0x00094D, GBP_INDC_LNK | GBP_EXT}, + {0x00094E, 0x00094F, GBP_SM}, + {0x000951, 0x000954, GBP_INDC_EXT | GBP_EXT}, + {0x000955, 0x000957, GBP_EXT}, + {0x000958, 0x00095F, GBP_INDC_CNSNT}, + {0x000962, 0x000963, GBP_EXT}, + {0x000978, 0x00097F, GBP_INDC_CNSNT}, + {0x000981, 0x000981, GBP_EXT}, + {0x000982, 0x000983, GBP_SM}, + {0x000995, 0x0009A8, GBP_INDC_CNSNT}, + {0x0009AA, 0x0009B0, GBP_INDC_CNSNT}, + {0x0009B2, 0x0009B2, GBP_INDC_CNSNT}, + {0x0009B6, 0x0009B9, GBP_INDC_CNSNT}, + {0x0009BC, 0x0009BC, GBP_INDC_EXT | GBP_EXT}, + {0x0009BE, 0x0009BE, GBP_EXT}, + {0x0009BF, 0x0009C0, GBP_SM}, + {0x0009C1, 0x0009C4, GBP_EXT}, + {0x0009C7, 0x0009C8, GBP_SM}, + {0x0009CB, 0x0009CC, GBP_SM}, + {0x0009CD, 0x0009CD, GBP_INDC_LNK | GBP_EXT}, + {0x0009D7, 0x0009D7, GBP_EXT}, + {0x0009DC, 0x0009DD, GBP_INDC_CNSNT}, + {0x0009DF, 0x0009DF, GBP_INDC_CNSNT}, + {0x0009E2, 0x0009E3, GBP_EXT}, + {0x0009F0, 0x0009F1, GBP_INDC_CNSNT}, + {0x0009FE, 0x0009FE, GBP_INDC_EXT | GBP_EXT}, + {0x000A01, 0x000A02, GBP_EXT}, + {0x000A03, 0x000A03, GBP_SM}, + {0x000A3C, 0x000A3C, GBP_INDC_EXT | GBP_EXT}, + {0x000A3E, 0x000A40, GBP_SM}, + {0x000A41, 0x000A42, GBP_EXT}, + {0x000A47, 0x000A48, GBP_EXT}, + {0x000A4B, 0x000A4D, GBP_EXT}, + {0x000A51, 0x000A51, GBP_EXT}, + {0x000A70, 0x000A71, GBP_EXT}, + {0x000A75, 0x000A75, GBP_EXT}, + {0x000A81, 0x000A82, GBP_EXT}, + {0x000A83, 0x000A83, GBP_SM}, + {0x000A95, 0x000AA8, GBP_INDC_CNSNT}, + {0x000AAA, 0x000AB0, GBP_INDC_CNSNT}, + {0x000AB2, 0x000AB3, GBP_INDC_CNSNT}, + {0x000AB5, 0x000AB9, GBP_INDC_CNSNT}, + {0x000ABC, 0x000ABC, GBP_INDC_EXT | GBP_EXT}, + {0x000ABE, 0x000AC0, GBP_SM}, + {0x000AC1, 0x000AC5, GBP_EXT}, + {0x000AC7, 0x000AC8, GBP_EXT}, + {0x000AC9, 0x000AC9, GBP_SM}, + {0x000ACB, 0x000ACC, GBP_SM}, + {0x000ACD, 0x000ACD, GBP_INDC_LNK | GBP_EXT}, + {0x000AE2, 0x000AE3, GBP_EXT}, + {0x000AF9, 0x000AF9, GBP_INDC_CNSNT}, + {0x000AFA, 0x000AFF, GBP_EXT}, + {0x000B01, 0x000B01, GBP_EXT}, + {0x000B02, 0x000B03, GBP_SM}, + {0x000B15, 0x000B28, GBP_INDC_CNSNT}, + {0x000B2A, 0x000B30, GBP_INDC_CNSNT}, + {0x000B32, 0x000B33, GBP_INDC_CNSNT}, + {0x000B35, 0x000B39, GBP_INDC_CNSNT}, + {0x000B3C, 0x000B3C, GBP_INDC_EXT | GBP_EXT}, + {0x000B3E, 0x000B3F, GBP_EXT}, + {0x000B40, 0x000B40, GBP_SM}, + {0x000B41, 0x000B44, GBP_EXT}, + {0x000B47, 0x000B48, GBP_SM}, + {0x000B4B, 0x000B4C, GBP_SM}, + {0x000B4D, 0x000B4D, GBP_INDC_LNK | GBP_EXT}, + {0x000B55, 0x000B57, GBP_EXT}, + {0x000B5C, 0x000B5D, GBP_INDC_CNSNT}, + {0x000B5F, 0x000B5F, GBP_INDC_CNSNT}, + {0x000B62, 0x000B63, GBP_EXT}, + {0x000B71, 0x000B71, GBP_INDC_CNSNT}, + {0x000B82, 0x000B82, GBP_EXT}, + {0x000BBE, 0x000BBE, GBP_EXT}, + {0x000BBF, 0x000BBF, GBP_SM}, + {0x000BC0, 0x000BC0, GBP_EXT}, + {0x000BC1, 0x000BC2, GBP_SM}, + {0x000BC6, 0x000BC8, GBP_SM}, + {0x000BCA, 0x000BCC, GBP_SM}, + {0x000BCD, 0x000BCD, GBP_EXT}, + {0x000BD7, 0x000BD7, GBP_EXT}, + {0x000C00, 0x000C00, GBP_EXT}, + {0x000C01, 0x000C03, GBP_SM}, + {0x000C04, 0x000C04, GBP_EXT}, + {0x000C15, 0x000C28, GBP_INDC_CNSNT}, + {0x000C2A, 0x000C39, GBP_INDC_CNSNT}, + {0x000C3C, 0x000C3C, GBP_INDC_EXT | GBP_EXT}, + {0x000C3E, 0x000C40, GBP_EXT}, + {0x000C41, 0x000C44, GBP_SM}, + {0x000C46, 0x000C48, GBP_EXT}, + {0x000C4A, 0x000C4C, GBP_EXT}, + {0x000C4D, 0x000C4D, GBP_INDC_LNK | GBP_EXT}, + {0x000C55, 0x000C56, GBP_INDC_EXT | GBP_EXT}, + {0x000C58, 0x000C5A, GBP_INDC_CNSNT}, + {0x000C62, 0x000C63, GBP_EXT}, + {0x000C81, 0x000C81, GBP_EXT}, + {0x000C82, 0x000C83, GBP_SM}, + {0x000CBC, 0x000CBC, GBP_INDC_EXT | GBP_EXT}, + {0x000CBE, 0x000CBE, GBP_SM}, + {0x000CBF, 0x000CBF, GBP_EXT}, + {0x000CC0, 0x000CC1, GBP_SM}, + {0x000CC2, 0x000CC2, GBP_EXT}, + {0x000CC3, 0x000CC4, GBP_SM}, + {0x000CC6, 0x000CC6, GBP_EXT}, + {0x000CC7, 0x000CC8, GBP_SM}, + {0x000CCA, 0x000CCB, GBP_SM}, + {0x000CCC, 0x000CCD, GBP_EXT}, + {0x000CD5, 0x000CD6, GBP_EXT}, + {0x000CE2, 0x000CE3, GBP_EXT}, + {0x000CF3, 0x000CF3, GBP_SM}, + {0x000D00, 0x000D01, GBP_EXT}, + {0x000D02, 0x000D03, GBP_SM}, + {0x000D15, 0x000D3A, GBP_INDC_CNSNT}, + {0x000D3B, 0x000D3C, GBP_INDC_EXT | GBP_EXT}, + {0x000D3E, 0x000D3E, GBP_EXT}, + {0x000D3F, 0x000D40, GBP_SM}, + {0x000D41, 0x000D44, GBP_EXT}, + {0x000D46, 0x000D48, GBP_SM}, + {0x000D4A, 0x000D4C, GBP_SM}, + {0x000D4D, 0x000D4D, GBP_INDC_LNK | GBP_EXT}, + {0x000D4E, 0x000D4E, GBP_PREP}, + {0x000D57, 0x000D57, GBP_EXT}, + {0x000D62, 0x000D63, GBP_EXT}, + {0x000D81, 0x000D81, GBP_EXT}, + {0x000D82, 0x000D83, GBP_SM}, + {0x000DCA, 0x000DCA, GBP_EXT}, + {0x000DCF, 0x000DCF, GBP_EXT}, + {0x000DD0, 0x000DD1, GBP_SM}, + {0x000DD2, 0x000DD4, GBP_EXT}, + {0x000DD6, 0x000DD6, GBP_EXT}, + {0x000DD8, 0x000DDE, GBP_SM}, + {0x000DDF, 0x000DDF, GBP_EXT}, + {0x000DF2, 0x000DF3, GBP_SM}, + {0x000E31, 0x000E31, GBP_EXT}, + {0x000E33, 0x000E33, GBP_SM}, + {0x000E34, 0x000E37, GBP_EXT}, + {0x000E38, 0x000E3A, GBP_INDC_EXT | GBP_EXT}, + {0x000E47, 0x000E47, GBP_EXT}, + {0x000E48, 0x000E4B, GBP_INDC_EXT | GBP_EXT}, + {0x000E4C, 0x000E4E, GBP_EXT}, + {0x000EB1, 0x000EB1, GBP_EXT}, + {0x000EB3, 0x000EB3, GBP_SM}, + {0x000EB4, 0x000EB7, GBP_EXT}, + {0x000EB8, 0x000EBA, GBP_INDC_EXT | GBP_EXT}, + {0x000EBB, 0x000EBC, GBP_EXT}, + {0x000EC8, 0x000ECB, GBP_INDC_EXT | GBP_EXT}, + {0x000ECC, 0x000ECE, GBP_EXT}, + {0x000F18, 0x000F19, GBP_INDC_EXT | GBP_EXT}, + {0x000F35, 0x000F35, GBP_INDC_EXT | GBP_EXT}, + {0x000F37, 0x000F37, GBP_INDC_EXT | GBP_EXT}, + {0x000F39, 0x000F39, GBP_INDC_EXT | GBP_EXT}, + {0x000F3E, 0x000F3F, GBP_SM}, + {0x000F71, 0x000F72, GBP_INDC_EXT | GBP_EXT}, + {0x000F73, 0x000F73, GBP_EXT}, + {0x000F74, 0x000F74, GBP_INDC_EXT | GBP_EXT}, + {0x000F75, 0x000F79, GBP_EXT}, + {0x000F7A, 0x000F7D, GBP_INDC_EXT | GBP_EXT}, + {0x000F7E, 0x000F7E, GBP_EXT}, + {0x000F7F, 0x000F7F, GBP_SM}, + {0x000F80, 0x000F80, GBP_INDC_EXT | GBP_EXT}, + {0x000F81, 0x000F81, GBP_EXT}, + {0x000F82, 0x000F84, GBP_INDC_EXT | GBP_EXT}, + {0x000F86, 0x000F87, GBP_INDC_EXT | GBP_EXT}, + {0x000F8D, 0x000F97, GBP_EXT}, + {0x000F99, 0x000FBC, GBP_EXT}, + {0x000FC6, 0x000FC6, GBP_INDC_EXT | GBP_EXT}, + {0x00102D, 0x001030, GBP_EXT}, + {0x001031, 0x001031, GBP_SM}, + {0x001032, 0x001036, GBP_EXT}, + {0x001037, 0x001037, GBP_INDC_EXT | GBP_EXT}, + {0x001039, 0x00103A, GBP_INDC_EXT | GBP_EXT}, + {0x00103B, 0x00103C, GBP_SM}, + {0x00103D, 0x00103E, GBP_EXT}, + {0x001056, 0x001057, GBP_SM}, + {0x001058, 0x001059, GBP_EXT}, + {0x00105E, 0x001060, GBP_EXT}, + {0x001071, 0x001074, GBP_EXT}, + {0x001082, 0x001082, GBP_EXT}, + {0x001084, 0x001084, GBP_SM}, + {0x001085, 0x001086, GBP_EXT}, + {0x00108D, 0x00108D, GBP_INDC_EXT | GBP_EXT}, + {0x00109D, 0x00109D, GBP_EXT}, + {0x001100, 0x00115F, GBP_HNGL_L}, + {0x001160, 0x0011A7, GBP_HNGL_V}, + {0x0011A8, 0x0011FF, GBP_HNGL_T}, + {0x00135D, 0x00135F, GBP_INDC_EXT | GBP_EXT}, + {0x001712, 0x001713, GBP_EXT}, + {0x001714, 0x001714, GBP_INDC_EXT | GBP_EXT}, + {0x001715, 0x001715, GBP_SM}, + {0x001732, 0x001733, GBP_EXT}, + {0x001734, 0x001734, GBP_SM}, + {0x001752, 0x001753, GBP_EXT}, + {0x001772, 0x001773, GBP_EXT}, + {0x0017B4, 0x0017B5, GBP_EXT}, + {0x0017B6, 0x0017B6, GBP_SM}, + {0x0017B7, 0x0017BD, GBP_EXT}, + {0x0017BE, 0x0017C5, GBP_SM}, + {0x0017C6, 0x0017C6, GBP_EXT}, + {0x0017C7, 0x0017C8, GBP_SM}, + {0x0017C9, 0x0017D1, GBP_EXT}, + {0x0017D2, 0x0017D2, GBP_INDC_EXT | GBP_EXT}, + {0x0017D3, 0x0017D3, GBP_EXT}, + {0x0017DD, 0x0017DD, GBP_INDC_EXT | GBP_EXT}, + {0x00180B, 0x00180D, GBP_EXT}, + {0x00180E, 0x00180E, GBP_CTRL}, + {0x00180F, 0x00180F, GBP_EXT}, + {0x001885, 0x001886, GBP_EXT}, + {0x0018A9, 0x0018A9, GBP_INDC_EXT | GBP_EXT}, + {0x001920, 0x001922, GBP_EXT}, + {0x001923, 0x001926, GBP_SM}, + {0x001927, 0x001928, GBP_EXT}, + {0x001929, 0x00192B, GBP_SM}, + {0x001930, 0x001931, GBP_SM}, + {0x001932, 0x001932, GBP_EXT}, + {0x001933, 0x001938, GBP_SM}, + {0x001939, 0x00193B, GBP_INDC_EXT | GBP_EXT}, + {0x001A17, 0x001A18, GBP_INDC_EXT | GBP_EXT}, + {0x001A19, 0x001A1A, GBP_SM}, + {0x001A1B, 0x001A1B, GBP_EXT}, + {0x001A55, 0x001A55, GBP_SM}, + {0x001A56, 0x001A56, GBP_EXT}, + {0x001A57, 0x001A57, GBP_SM}, + {0x001A58, 0x001A5E, GBP_EXT}, + {0x001A60, 0x001A60, GBP_INDC_EXT | GBP_EXT}, + {0x001A62, 0x001A62, GBP_EXT}, + {0x001A65, 0x001A6C, GBP_EXT}, + {0x001A6D, 0x001A72, GBP_SM}, + {0x001A73, 0x001A74, GBP_EXT}, + {0x001A75, 0x001A7C, GBP_INDC_EXT | GBP_EXT}, + {0x001A7F, 0x001A7F, GBP_INDC_EXT | GBP_EXT}, + {0x001AB0, 0x001ABD, GBP_INDC_EXT | GBP_EXT}, + {0x001ABE, 0x001ABE, GBP_EXT}, + {0x001ABF, 0x001ACE, GBP_INDC_EXT | GBP_EXT}, + {0x001B00, 0x001B03, GBP_EXT}, + {0x001B04, 0x001B04, GBP_SM}, + {0x001B34, 0x001B34, GBP_INDC_EXT | GBP_EXT}, + {0x001B35, 0x001B3A, GBP_EXT}, + {0x001B3B, 0x001B3B, GBP_SM}, + {0x001B3C, 0x001B3C, GBP_EXT}, + {0x001B3D, 0x001B41, GBP_SM}, + {0x001B42, 0x001B42, GBP_EXT}, + {0x001B43, 0x001B44, GBP_SM}, + {0x001B6B, 0x001B73, GBP_INDC_EXT | GBP_EXT}, + {0x001B80, 0x001B81, GBP_EXT}, + {0x001B82, 0x001B82, GBP_SM}, + {0x001BA1, 0x001BA1, GBP_SM}, + {0x001BA2, 0x001BA5, GBP_EXT}, + {0x001BA6, 0x001BA7, GBP_SM}, + {0x001BA8, 0x001BA9, GBP_EXT}, + {0x001BAA, 0x001BAA, GBP_SM}, + {0x001BAB, 0x001BAB, GBP_INDC_EXT | GBP_EXT}, + {0x001BAC, 0x001BAD, GBP_EXT}, + {0x001BE6, 0x001BE6, GBP_INDC_EXT | GBP_EXT}, + {0x001BE7, 0x001BE7, GBP_SM}, + {0x001BE8, 0x001BE9, GBP_EXT}, + {0x001BEA, 0x001BEC, GBP_SM}, + {0x001BED, 0x001BED, GBP_EXT}, + {0x001BEE, 0x001BEE, GBP_SM}, + {0x001BEF, 0x001BF1, GBP_EXT}, + {0x001BF2, 0x001BF3, GBP_SM}, + {0x001C24, 0x001C2B, GBP_SM}, + {0x001C2C, 0x001C33, GBP_EXT}, + {0x001C34, 0x001C35, GBP_SM}, + {0x001C36, 0x001C36, GBP_EXT}, + {0x001C37, 0x001C37, GBP_INDC_EXT | GBP_EXT}, + {0x001CD0, 0x001CD2, GBP_INDC_EXT | GBP_EXT}, + {0x001CD4, 0x001CE0, GBP_INDC_EXT | GBP_EXT}, + {0x001CE1, 0x001CE1, GBP_SM}, + {0x001CE2, 0x001CE8, GBP_INDC_EXT | GBP_EXT}, + {0x001CED, 0x001CED, GBP_INDC_EXT | GBP_EXT}, + {0x001CF4, 0x001CF4, GBP_INDC_EXT | GBP_EXT}, + {0x001CF7, 0x001CF7, GBP_SM}, + {0x001CF8, 0x001CF9, GBP_INDC_EXT | GBP_EXT}, + {0x001DC0, 0x001DFF, GBP_INDC_EXT | GBP_EXT}, + {0x00200B, 0x00200B, GBP_CTRL}, + {0x00200C, 0x00200C, GBP_EXT}, + {0x00200D, 0x00200D, GBP_INDC_EXT | GBP_ZWJ}, + {0x00200E, 0x00200F, GBP_CTRL}, + {0x002028, 0x00202E, GBP_CTRL}, + {0x00203C, 0x00203C, GBP_PIC}, + {0x002049, 0x002049, GBP_PIC}, + {0x002060, 0x00206F, GBP_CTRL}, + {0x0020D0, 0x0020DC, GBP_INDC_EXT | GBP_EXT}, + {0x0020DD, 0x0020E0, GBP_EXT}, + {0x0020E1, 0x0020E1, GBP_INDC_EXT | GBP_EXT}, + {0x0020E2, 0x0020E4, GBP_EXT}, + {0x0020E5, 0x0020F0, GBP_INDC_EXT | GBP_EXT}, + {0x002122, 0x002122, GBP_PIC}, + {0x002139, 0x002139, GBP_PIC}, + {0x002194, 0x002199, GBP_PIC}, + {0x0021A9, 0x0021AA, GBP_PIC}, + {0x00231A, 0x00231B, GBP_PIC}, + {0x002328, 0x002328, GBP_PIC}, + {0x002388, 0x002388, GBP_PIC}, + {0x0023CF, 0x0023CF, GBP_PIC}, + {0x0023E9, 0x0023F3, GBP_PIC}, + {0x0023F8, 0x0023FA, GBP_PIC}, + {0x0024C2, 0x0024C2, GBP_PIC}, + {0x0025AA, 0x0025AB, GBP_PIC}, + {0x0025B6, 0x0025B6, GBP_PIC}, + {0x0025C0, 0x0025C0, GBP_PIC}, + {0x0025FB, 0x0025FE, GBP_PIC}, + {0x002600, 0x002605, GBP_PIC}, + {0x002607, 0x002612, GBP_PIC}, + {0x002614, 0x002685, GBP_PIC}, + {0x002690, 0x002705, GBP_PIC}, + {0x002708, 0x002712, GBP_PIC}, + {0x002714, 0x002714, GBP_PIC}, + {0x002716, 0x002716, GBP_PIC}, + {0x00271D, 0x00271D, GBP_PIC}, + {0x002721, 0x002721, GBP_PIC}, + {0x002728, 0x002728, GBP_PIC}, + {0x002733, 0x002734, GBP_PIC}, + {0x002744, 0x002744, GBP_PIC}, + {0x002747, 0x002747, GBP_PIC}, + {0x00274C, 0x00274C, GBP_PIC}, + {0x00274E, 0x00274E, GBP_PIC}, + {0x002753, 0x002755, GBP_PIC}, + {0x002757, 0x002757, GBP_PIC}, + {0x002763, 0x002767, GBP_PIC}, + {0x002795, 0x002797, GBP_PIC}, + {0x0027A1, 0x0027A1, GBP_PIC}, + {0x0027B0, 0x0027B0, GBP_PIC}, + {0x0027BF, 0x0027BF, GBP_PIC}, + {0x002934, 0x002935, GBP_PIC}, + {0x002B05, 0x002B07, GBP_PIC}, + {0x002B1B, 0x002B1C, GBP_PIC}, + {0x002B50, 0x002B50, GBP_PIC}, + {0x002B55, 0x002B55, GBP_PIC}, + {0x002CEF, 0x002CF1, GBP_INDC_EXT | GBP_EXT}, + {0x002D7F, 0x002D7F, GBP_INDC_EXT | GBP_EXT}, + {0x002DE0, 0x002DFF, GBP_INDC_EXT | GBP_EXT}, + {0x00302A, 0x00302F, GBP_INDC_EXT | GBP_EXT}, + {0x003030, 0x003030, GBP_PIC}, + {0x00303D, 0x00303D, GBP_PIC}, + {0x003099, 0x00309A, GBP_INDC_EXT | GBP_EXT}, + {0x003297, 0x003297, GBP_PIC}, + {0x003299, 0x003299, GBP_PIC}, + {0x00A66F, 0x00A66F, GBP_INDC_EXT | GBP_EXT}, + {0x00A670, 0x00A672, GBP_EXT}, + {0x00A674, 0x00A67D, GBP_INDC_EXT | GBP_EXT}, + {0x00A69E, 0x00A69F, GBP_INDC_EXT | GBP_EXT}, + {0x00A6F0, 0x00A6F1, GBP_INDC_EXT | GBP_EXT}, + {0x00A802, 0x00A802, GBP_EXT}, + {0x00A806, 0x00A806, GBP_EXT}, + {0x00A80B, 0x00A80B, GBP_EXT}, + {0x00A823, 0x00A824, GBP_SM}, + {0x00A825, 0x00A826, GBP_EXT}, + {0x00A827, 0x00A827, GBP_SM}, + {0x00A82C, 0x00A82C, GBP_INDC_EXT | GBP_EXT}, + {0x00A880, 0x00A881, GBP_SM}, + {0x00A8B4, 0x00A8C3, GBP_SM}, + {0x00A8C4, 0x00A8C5, GBP_EXT}, + {0x00A8E0, 0x00A8F1, GBP_INDC_EXT | GBP_EXT}, + {0x00A8FF, 0x00A8FF, GBP_EXT}, + {0x00A926, 0x00A92A, GBP_EXT}, + {0x00A92B, 0x00A92D, GBP_INDC_EXT | GBP_EXT}, + {0x00A947, 0x00A951, GBP_EXT}, + {0x00A952, 0x00A953, GBP_SM}, + {0x00A960, 0x00A97C, GBP_HNGL_L}, + {0x00A980, 0x00A982, GBP_EXT}, + {0x00A983, 0x00A983, GBP_SM}, + {0x00A9B3, 0x00A9B3, GBP_INDC_EXT | GBP_EXT}, + {0x00A9B4, 0x00A9B5, GBP_SM}, + {0x00A9B6, 0x00A9B9, GBP_EXT}, + {0x00A9BA, 0x00A9BB, GBP_SM}, + {0x00A9BC, 0x00A9BD, GBP_EXT}, + {0x00A9BE, 0x00A9C0, GBP_SM}, + {0x00A9E5, 0x00A9E5, GBP_EXT}, + {0x00AA29, 0x00AA2E, GBP_EXT}, + {0x00AA2F, 0x00AA30, GBP_SM}, + {0x00AA31, 0x00AA32, GBP_EXT}, + {0x00AA33, 0x00AA34, GBP_SM}, + {0x00AA35, 0x00AA36, GBP_EXT}, + {0x00AA43, 0x00AA43, GBP_EXT}, + {0x00AA4C, 0x00AA4C, GBP_EXT}, + {0x00AA4D, 0x00AA4D, GBP_SM}, + {0x00AA7C, 0x00AA7C, GBP_EXT}, + {0x00AAB0, 0x00AAB0, GBP_INDC_EXT | GBP_EXT}, + {0x00AAB2, 0x00AAB4, GBP_INDC_EXT | GBP_EXT}, + {0x00AAB7, 0x00AAB8, GBP_INDC_EXT | GBP_EXT}, + {0x00AABE, 0x00AABF, GBP_INDC_EXT | GBP_EXT}, + {0x00AAC1, 0x00AAC1, GBP_INDC_EXT | GBP_EXT}, + {0x00AAEB, 0x00AAEB, GBP_SM}, + {0x00AAEC, 0x00AAED, GBP_EXT}, + {0x00AAEE, 0x00AAEF, GBP_SM}, + {0x00AAF5, 0x00AAF5, GBP_SM}, + {0x00AAF6, 0x00AAF6, GBP_INDC_EXT | GBP_EXT}, + {0x00ABE3, 0x00ABE4, GBP_SM}, + {0x00ABE5, 0x00ABE5, GBP_EXT}, + {0x00ABE6, 0x00ABE7, GBP_SM}, + {0x00ABE8, 0x00ABE8, GBP_EXT}, + {0x00ABE9, 0x00ABEA, GBP_SM}, + {0x00ABEC, 0x00ABEC, GBP_SM}, + {0x00ABED, 0x00ABED, GBP_INDC_EXT | GBP_EXT}, + {0x00AC00, 0x00AC00, GBP_HNGL_LV}, + {0x00AC01, 0x00AC1B, GBP_HNGL_LVT}, + {0x00AC1C, 0x00AC1C, GBP_HNGL_LV}, + {0x00AC1D, 0x00AC37, GBP_HNGL_LVT}, + {0x00AC38, 0x00AC38, GBP_HNGL_LV}, + {0x00AC39, 0x00AC53, GBP_HNGL_LVT}, + {0x00AC54, 0x00AC54, GBP_HNGL_LV}, + {0x00AC55, 0x00AC6F, GBP_HNGL_LVT}, + {0x00AC70, 0x00AC70, GBP_HNGL_LV}, + {0x00AC71, 0x00AC8B, GBP_HNGL_LVT}, + {0x00AC8C, 0x00AC8C, GBP_HNGL_LV}, + {0x00AC8D, 0x00ACA7, GBP_HNGL_LVT}, + {0x00ACA8, 0x00ACA8, GBP_HNGL_LV}, + {0x00ACA9, 0x00ACC3, GBP_HNGL_LVT}, + {0x00ACC4, 0x00ACC4, GBP_HNGL_LV}, + {0x00ACC5, 0x00ACDF, GBP_HNGL_LVT}, + {0x00ACE0, 0x00ACE0, GBP_HNGL_LV}, + {0x00ACE1, 0x00ACFB, GBP_HNGL_LVT}, + {0x00ACFC, 0x00ACFC, GBP_HNGL_LV}, + {0x00ACFD, 0x00AD17, GBP_HNGL_LVT}, + {0x00AD18, 0x00AD18, GBP_HNGL_LV}, + {0x00AD19, 0x00AD33, GBP_HNGL_LVT}, + {0x00AD34, 0x00AD34, GBP_HNGL_LV}, + {0x00AD35, 0x00AD4F, GBP_HNGL_LVT}, + {0x00AD50, 0x00AD50, GBP_HNGL_LV}, + {0x00AD51, 0x00AD6B, GBP_HNGL_LVT}, + {0x00AD6C, 0x00AD6C, GBP_HNGL_LV}, + {0x00AD6D, 0x00AD87, GBP_HNGL_LVT}, + {0x00AD88, 0x00AD88, GBP_HNGL_LV}, + {0x00AD89, 0x00ADA3, GBP_HNGL_LVT}, + {0x00ADA4, 0x00ADA4, GBP_HNGL_LV}, + {0x00ADA5, 0x00ADBF, GBP_HNGL_LVT}, + {0x00ADC0, 0x00ADC0, GBP_HNGL_LV}, + {0x00ADC1, 0x00ADDB, GBP_HNGL_LVT}, + {0x00ADDC, 0x00ADDC, GBP_HNGL_LV}, + {0x00ADDD, 0x00ADF7, GBP_HNGL_LVT}, + {0x00ADF8, 0x00ADF8, GBP_HNGL_LV}, + {0x00ADF9, 0x00AE13, GBP_HNGL_LVT}, + {0x00AE14, 0x00AE14, GBP_HNGL_LV}, + {0x00AE15, 0x00AE2F, GBP_HNGL_LVT}, + {0x00AE30, 0x00AE30, GBP_HNGL_LV}, + {0x00AE31, 0x00AE4B, GBP_HNGL_LVT}, + {0x00AE4C, 0x00AE4C, GBP_HNGL_LV}, + {0x00AE4D, 0x00AE67, GBP_HNGL_LVT}, + {0x00AE68, 0x00AE68, GBP_HNGL_LV}, + {0x00AE69, 0x00AE83, GBP_HNGL_LVT}, + {0x00AE84, 0x00AE84, GBP_HNGL_LV}, + {0x00AE85, 0x00AE9F, GBP_HNGL_LVT}, + {0x00AEA0, 0x00AEA0, GBP_HNGL_LV}, + {0x00AEA1, 0x00AEBB, GBP_HNGL_LVT}, + {0x00AEBC, 0x00AEBC, GBP_HNGL_LV}, + {0x00AEBD, 0x00AED7, GBP_HNGL_LVT}, + {0x00AED8, 0x00AED8, GBP_HNGL_LV}, + {0x00AED9, 0x00AEF3, GBP_HNGL_LVT}, + {0x00AEF4, 0x00AEF4, GBP_HNGL_LV}, + {0x00AEF5, 0x00AF0F, GBP_HNGL_LVT}, + {0x00AF10, 0x00AF10, GBP_HNGL_LV}, + {0x00AF11, 0x00AF2B, GBP_HNGL_LVT}, + {0x00AF2C, 0x00AF2C, GBP_HNGL_LV}, + {0x00AF2D, 0x00AF47, GBP_HNGL_LVT}, + {0x00AF48, 0x00AF48, GBP_HNGL_LV}, + {0x00AF49, 0x00AF63, GBP_HNGL_LVT}, + {0x00AF64, 0x00AF64, GBP_HNGL_LV}, + {0x00AF65, 0x00AF7F, GBP_HNGL_LVT}, + {0x00AF80, 0x00AF80, GBP_HNGL_LV}, + {0x00AF81, 0x00AF9B, GBP_HNGL_LVT}, + {0x00AF9C, 0x00AF9C, GBP_HNGL_LV}, + {0x00AF9D, 0x00AFB7, GBP_HNGL_LVT}, + {0x00AFB8, 0x00AFB8, GBP_HNGL_LV}, + {0x00AFB9, 0x00AFD3, GBP_HNGL_LVT}, + {0x00AFD4, 0x00AFD4, GBP_HNGL_LV}, + {0x00AFD5, 0x00AFEF, GBP_HNGL_LVT}, + {0x00AFF0, 0x00AFF0, GBP_HNGL_LV}, + {0x00AFF1, 0x00B00B, GBP_HNGL_LVT}, + {0x00B00C, 0x00B00C, GBP_HNGL_LV}, + {0x00B00D, 0x00B027, GBP_HNGL_LVT}, + {0x00B028, 0x00B028, GBP_HNGL_LV}, + {0x00B029, 0x00B043, GBP_HNGL_LVT}, + {0x00B044, 0x00B044, GBP_HNGL_LV}, + {0x00B045, 0x00B05F, GBP_HNGL_LVT}, + {0x00B060, 0x00B060, GBP_HNGL_LV}, + {0x00B061, 0x00B07B, GBP_HNGL_LVT}, + {0x00B07C, 0x00B07C, GBP_HNGL_LV}, + {0x00B07D, 0x00B097, GBP_HNGL_LVT}, + {0x00B098, 0x00B098, GBP_HNGL_LV}, + {0x00B099, 0x00B0B3, GBP_HNGL_LVT}, + {0x00B0B4, 0x00B0B4, GBP_HNGL_LV}, + {0x00B0B5, 0x00B0CF, GBP_HNGL_LVT}, + {0x00B0D0, 0x00B0D0, GBP_HNGL_LV}, + {0x00B0D1, 0x00B0EB, GBP_HNGL_LVT}, + {0x00B0EC, 0x00B0EC, GBP_HNGL_LV}, + {0x00B0ED, 0x00B107, GBP_HNGL_LVT}, + {0x00B108, 0x00B108, GBP_HNGL_LV}, + {0x00B109, 0x00B123, GBP_HNGL_LVT}, + {0x00B124, 0x00B124, GBP_HNGL_LV}, + {0x00B125, 0x00B13F, GBP_HNGL_LVT}, + {0x00B140, 0x00B140, GBP_HNGL_LV}, + {0x00B141, 0x00B15B, GBP_HNGL_LVT}, + {0x00B15C, 0x00B15C, GBP_HNGL_LV}, + {0x00B15D, 0x00B177, GBP_HNGL_LVT}, + {0x00B178, 0x00B178, GBP_HNGL_LV}, + {0x00B179, 0x00B193, GBP_HNGL_LVT}, + {0x00B194, 0x00B194, GBP_HNGL_LV}, + {0x00B195, 0x00B1AF, GBP_HNGL_LVT}, + {0x00B1B0, 0x00B1B0, GBP_HNGL_LV}, + {0x00B1B1, 0x00B1CB, GBP_HNGL_LVT}, + {0x00B1CC, 0x00B1CC, GBP_HNGL_LV}, + {0x00B1CD, 0x00B1E7, GBP_HNGL_LVT}, + {0x00B1E8, 0x00B1E8, GBP_HNGL_LV}, + {0x00B1E9, 0x00B203, GBP_HNGL_LVT}, + {0x00B204, 0x00B204, GBP_HNGL_LV}, + {0x00B205, 0x00B21F, GBP_HNGL_LVT}, + {0x00B220, 0x00B220, GBP_HNGL_LV}, + {0x00B221, 0x00B23B, GBP_HNGL_LVT}, + {0x00B23C, 0x00B23C, GBP_HNGL_LV}, + {0x00B23D, 0x00B257, GBP_HNGL_LVT}, + {0x00B258, 0x00B258, GBP_HNGL_LV}, + {0x00B259, 0x00B273, GBP_HNGL_LVT}, + {0x00B274, 0x00B274, GBP_HNGL_LV}, + {0x00B275, 0x00B28F, GBP_HNGL_LVT}, + {0x00B290, 0x00B290, GBP_HNGL_LV}, + {0x00B291, 0x00B2AB, GBP_HNGL_LVT}, + {0x00B2AC, 0x00B2AC, GBP_HNGL_LV}, + {0x00B2AD, 0x00B2C7, GBP_HNGL_LVT}, + {0x00B2C8, 0x00B2C8, GBP_HNGL_LV}, + {0x00B2C9, 0x00B2E3, GBP_HNGL_LVT}, + {0x00B2E4, 0x00B2E4, GBP_HNGL_LV}, + {0x00B2E5, 0x00B2FF, GBP_HNGL_LVT}, + {0x00B300, 0x00B300, GBP_HNGL_LV}, + {0x00B301, 0x00B31B, GBP_HNGL_LVT}, + {0x00B31C, 0x00B31C, GBP_HNGL_LV}, + {0x00B31D, 0x00B337, GBP_HNGL_LVT}, + {0x00B338, 0x00B338, GBP_HNGL_LV}, + {0x00B339, 0x00B353, GBP_HNGL_LVT}, + {0x00B354, 0x00B354, GBP_HNGL_LV}, + {0x00B355, 0x00B36F, GBP_HNGL_LVT}, + {0x00B370, 0x00B370, GBP_HNGL_LV}, + {0x00B371, 0x00B38B, GBP_HNGL_LVT}, + {0x00B38C, 0x00B38C, GBP_HNGL_LV}, + {0x00B38D, 0x00B3A7, GBP_HNGL_LVT}, + {0x00B3A8, 0x00B3A8, GBP_HNGL_LV}, + {0x00B3A9, 0x00B3C3, GBP_HNGL_LVT}, + {0x00B3C4, 0x00B3C4, GBP_HNGL_LV}, + {0x00B3C5, 0x00B3DF, GBP_HNGL_LVT}, + {0x00B3E0, 0x00B3E0, GBP_HNGL_LV}, + {0x00B3E1, 0x00B3FB, GBP_HNGL_LVT}, + {0x00B3FC, 0x00B3FC, GBP_HNGL_LV}, + {0x00B3FD, 0x00B417, GBP_HNGL_LVT}, + {0x00B418, 0x00B418, GBP_HNGL_LV}, + {0x00B419, 0x00B433, GBP_HNGL_LVT}, + {0x00B434, 0x00B434, GBP_HNGL_LV}, + {0x00B435, 0x00B44F, GBP_HNGL_LVT}, + {0x00B450, 0x00B450, GBP_HNGL_LV}, + {0x00B451, 0x00B46B, GBP_HNGL_LVT}, + {0x00B46C, 0x00B46C, GBP_HNGL_LV}, + {0x00B46D, 0x00B487, GBP_HNGL_LVT}, + {0x00B488, 0x00B488, GBP_HNGL_LV}, + {0x00B489, 0x00B4A3, GBP_HNGL_LVT}, + {0x00B4A4, 0x00B4A4, GBP_HNGL_LV}, + {0x00B4A5, 0x00B4BF, GBP_HNGL_LVT}, + {0x00B4C0, 0x00B4C0, GBP_HNGL_LV}, + {0x00B4C1, 0x00B4DB, GBP_HNGL_LVT}, + {0x00B4DC, 0x00B4DC, GBP_HNGL_LV}, + {0x00B4DD, 0x00B4F7, GBP_HNGL_LVT}, + {0x00B4F8, 0x00B4F8, GBP_HNGL_LV}, + {0x00B4F9, 0x00B513, GBP_HNGL_LVT}, + {0x00B514, 0x00B514, GBP_HNGL_LV}, + {0x00B515, 0x00B52F, GBP_HNGL_LVT}, + {0x00B530, 0x00B530, GBP_HNGL_LV}, + {0x00B531, 0x00B54B, GBP_HNGL_LVT}, + {0x00B54C, 0x00B54C, GBP_HNGL_LV}, + {0x00B54D, 0x00B567, GBP_HNGL_LVT}, + {0x00B568, 0x00B568, GBP_HNGL_LV}, + {0x00B569, 0x00B583, GBP_HNGL_LVT}, + {0x00B584, 0x00B584, GBP_HNGL_LV}, + {0x00B585, 0x00B59F, GBP_HNGL_LVT}, + {0x00B5A0, 0x00B5A0, GBP_HNGL_LV}, + {0x00B5A1, 0x00B5BB, GBP_HNGL_LVT}, + {0x00B5BC, 0x00B5BC, GBP_HNGL_LV}, + {0x00B5BD, 0x00B5D7, GBP_HNGL_LVT}, + {0x00B5D8, 0x00B5D8, GBP_HNGL_LV}, + {0x00B5D9, 0x00B5F3, GBP_HNGL_LVT}, + {0x00B5F4, 0x00B5F4, GBP_HNGL_LV}, + {0x00B5F5, 0x00B60F, GBP_HNGL_LVT}, + {0x00B610, 0x00B610, GBP_HNGL_LV}, + {0x00B611, 0x00B62B, GBP_HNGL_LVT}, + {0x00B62C, 0x00B62C, GBP_HNGL_LV}, + {0x00B62D, 0x00B647, GBP_HNGL_LVT}, + {0x00B648, 0x00B648, GBP_HNGL_LV}, + {0x00B649, 0x00B663, GBP_HNGL_LVT}, + {0x00B664, 0x00B664, GBP_HNGL_LV}, + {0x00B665, 0x00B67F, GBP_HNGL_LVT}, + {0x00B680, 0x00B680, GBP_HNGL_LV}, + {0x00B681, 0x00B69B, GBP_HNGL_LVT}, + {0x00B69C, 0x00B69C, GBP_HNGL_LV}, + {0x00B69D, 0x00B6B7, GBP_HNGL_LVT}, + {0x00B6B8, 0x00B6B8, GBP_HNGL_LV}, + {0x00B6B9, 0x00B6D3, GBP_HNGL_LVT}, + {0x00B6D4, 0x00B6D4, GBP_HNGL_LV}, + {0x00B6D5, 0x00B6EF, GBP_HNGL_LVT}, + {0x00B6F0, 0x00B6F0, GBP_HNGL_LV}, + {0x00B6F1, 0x00B70B, GBP_HNGL_LVT}, + {0x00B70C, 0x00B70C, GBP_HNGL_LV}, + {0x00B70D, 0x00B727, GBP_HNGL_LVT}, + {0x00B728, 0x00B728, GBP_HNGL_LV}, + {0x00B729, 0x00B743, GBP_HNGL_LVT}, + {0x00B744, 0x00B744, GBP_HNGL_LV}, + {0x00B745, 0x00B75F, GBP_HNGL_LVT}, + {0x00B760, 0x00B760, GBP_HNGL_LV}, + {0x00B761, 0x00B77B, GBP_HNGL_LVT}, + {0x00B77C, 0x00B77C, GBP_HNGL_LV}, + {0x00B77D, 0x00B797, GBP_HNGL_LVT}, + {0x00B798, 0x00B798, GBP_HNGL_LV}, + {0x00B799, 0x00B7B3, GBP_HNGL_LVT}, + {0x00B7B4, 0x00B7B4, GBP_HNGL_LV}, + {0x00B7B5, 0x00B7CF, GBP_HNGL_LVT}, + {0x00B7D0, 0x00B7D0, GBP_HNGL_LV}, + {0x00B7D1, 0x00B7EB, GBP_HNGL_LVT}, + {0x00B7EC, 0x00B7EC, GBP_HNGL_LV}, + {0x00B7ED, 0x00B807, GBP_HNGL_LVT}, + {0x00B808, 0x00B808, GBP_HNGL_LV}, + {0x00B809, 0x00B823, GBP_HNGL_LVT}, + {0x00B824, 0x00B824, GBP_HNGL_LV}, + {0x00B825, 0x00B83F, GBP_HNGL_LVT}, + {0x00B840, 0x00B840, GBP_HNGL_LV}, + {0x00B841, 0x00B85B, GBP_HNGL_LVT}, + {0x00B85C, 0x00B85C, GBP_HNGL_LV}, + {0x00B85D, 0x00B877, GBP_HNGL_LVT}, + {0x00B878, 0x00B878, GBP_HNGL_LV}, + {0x00B879, 0x00B893, GBP_HNGL_LVT}, + {0x00B894, 0x00B894, GBP_HNGL_LV}, + {0x00B895, 0x00B8AF, GBP_HNGL_LVT}, + {0x00B8B0, 0x00B8B0, GBP_HNGL_LV}, + {0x00B8B1, 0x00B8CB, GBP_HNGL_LVT}, + {0x00B8CC, 0x00B8CC, GBP_HNGL_LV}, + {0x00B8CD, 0x00B8E7, GBP_HNGL_LVT}, + {0x00B8E8, 0x00B8E8, GBP_HNGL_LV}, + {0x00B8E9, 0x00B903, GBP_HNGL_LVT}, + {0x00B904, 0x00B904, GBP_HNGL_LV}, + {0x00B905, 0x00B91F, GBP_HNGL_LVT}, + {0x00B920, 0x00B920, GBP_HNGL_LV}, + {0x00B921, 0x00B93B, GBP_HNGL_LVT}, + {0x00B93C, 0x00B93C, GBP_HNGL_LV}, + {0x00B93D, 0x00B957, GBP_HNGL_LVT}, + {0x00B958, 0x00B958, GBP_HNGL_LV}, + {0x00B959, 0x00B973, GBP_HNGL_LVT}, + {0x00B974, 0x00B974, GBP_HNGL_LV}, + {0x00B975, 0x00B98F, GBP_HNGL_LVT}, + {0x00B990, 0x00B990, GBP_HNGL_LV}, + {0x00B991, 0x00B9AB, GBP_HNGL_LVT}, + {0x00B9AC, 0x00B9AC, GBP_HNGL_LV}, + {0x00B9AD, 0x00B9C7, GBP_HNGL_LVT}, + {0x00B9C8, 0x00B9C8, GBP_HNGL_LV}, + {0x00B9C9, 0x00B9E3, GBP_HNGL_LVT}, + {0x00B9E4, 0x00B9E4, GBP_HNGL_LV}, + {0x00B9E5, 0x00B9FF, GBP_HNGL_LVT}, + {0x00BA00, 0x00BA00, GBP_HNGL_LV}, + {0x00BA01, 0x00BA1B, GBP_HNGL_LVT}, + {0x00BA1C, 0x00BA1C, GBP_HNGL_LV}, + {0x00BA1D, 0x00BA37, GBP_HNGL_LVT}, + {0x00BA38, 0x00BA38, GBP_HNGL_LV}, + {0x00BA39, 0x00BA53, GBP_HNGL_LVT}, + {0x00BA54, 0x00BA54, GBP_HNGL_LV}, + {0x00BA55, 0x00BA6F, GBP_HNGL_LVT}, + {0x00BA70, 0x00BA70, GBP_HNGL_LV}, + {0x00BA71, 0x00BA8B, GBP_HNGL_LVT}, + {0x00BA8C, 0x00BA8C, GBP_HNGL_LV}, + {0x00BA8D, 0x00BAA7, GBP_HNGL_LVT}, + {0x00BAA8, 0x00BAA8, GBP_HNGL_LV}, + {0x00BAA9, 0x00BAC3, GBP_HNGL_LVT}, + {0x00BAC4, 0x00BAC4, GBP_HNGL_LV}, + {0x00BAC5, 0x00BADF, GBP_HNGL_LVT}, + {0x00BAE0, 0x00BAE0, GBP_HNGL_LV}, + {0x00BAE1, 0x00BAFB, GBP_HNGL_LVT}, + {0x00BAFC, 0x00BAFC, GBP_HNGL_LV}, + {0x00BAFD, 0x00BB17, GBP_HNGL_LVT}, + {0x00BB18, 0x00BB18, GBP_HNGL_LV}, + {0x00BB19, 0x00BB33, GBP_HNGL_LVT}, + {0x00BB34, 0x00BB34, GBP_HNGL_LV}, + {0x00BB35, 0x00BB4F, GBP_HNGL_LVT}, + {0x00BB50, 0x00BB50, GBP_HNGL_LV}, + {0x00BB51, 0x00BB6B, GBP_HNGL_LVT}, + {0x00BB6C, 0x00BB6C, GBP_HNGL_LV}, + {0x00BB6D, 0x00BB87, GBP_HNGL_LVT}, + {0x00BB88, 0x00BB88, GBP_HNGL_LV}, + {0x00BB89, 0x00BBA3, GBP_HNGL_LVT}, + {0x00BBA4, 0x00BBA4, GBP_HNGL_LV}, + {0x00BBA5, 0x00BBBF, GBP_HNGL_LVT}, + {0x00BBC0, 0x00BBC0, GBP_HNGL_LV}, + {0x00BBC1, 0x00BBDB, GBP_HNGL_LVT}, + {0x00BBDC, 0x00BBDC, GBP_HNGL_LV}, + {0x00BBDD, 0x00BBF7, GBP_HNGL_LVT}, + {0x00BBF8, 0x00BBF8, GBP_HNGL_LV}, + {0x00BBF9, 0x00BC13, GBP_HNGL_LVT}, + {0x00BC14, 0x00BC14, GBP_HNGL_LV}, + {0x00BC15, 0x00BC2F, GBP_HNGL_LVT}, + {0x00BC30, 0x00BC30, GBP_HNGL_LV}, + {0x00BC31, 0x00BC4B, GBP_HNGL_LVT}, + {0x00BC4C, 0x00BC4C, GBP_HNGL_LV}, + {0x00BC4D, 0x00BC67, GBP_HNGL_LVT}, + {0x00BC68, 0x00BC68, GBP_HNGL_LV}, + {0x00BC69, 0x00BC83, GBP_HNGL_LVT}, + {0x00BC84, 0x00BC84, GBP_HNGL_LV}, + {0x00BC85, 0x00BC9F, GBP_HNGL_LVT}, + {0x00BCA0, 0x00BCA0, GBP_HNGL_LV}, + {0x00BCA1, 0x00BCBB, GBP_HNGL_LVT}, + {0x00BCBC, 0x00BCBC, GBP_HNGL_LV}, + {0x00BCBD, 0x00BCD7, GBP_HNGL_LVT}, + {0x00BCD8, 0x00BCD8, GBP_HNGL_LV}, + {0x00BCD9, 0x00BCF3, GBP_HNGL_LVT}, + {0x00BCF4, 0x00BCF4, GBP_HNGL_LV}, + {0x00BCF5, 0x00BD0F, GBP_HNGL_LVT}, + {0x00BD10, 0x00BD10, GBP_HNGL_LV}, + {0x00BD11, 0x00BD2B, GBP_HNGL_LVT}, + {0x00BD2C, 0x00BD2C, GBP_HNGL_LV}, + {0x00BD2D, 0x00BD47, GBP_HNGL_LVT}, + {0x00BD48, 0x00BD48, GBP_HNGL_LV}, + {0x00BD49, 0x00BD63, GBP_HNGL_LVT}, + {0x00BD64, 0x00BD64, GBP_HNGL_LV}, + {0x00BD65, 0x00BD7F, GBP_HNGL_LVT}, + {0x00BD80, 0x00BD80, GBP_HNGL_LV}, + {0x00BD81, 0x00BD9B, GBP_HNGL_LVT}, + {0x00BD9C, 0x00BD9C, GBP_HNGL_LV}, + {0x00BD9D, 0x00BDB7, GBP_HNGL_LVT}, + {0x00BDB8, 0x00BDB8, GBP_HNGL_LV}, + {0x00BDB9, 0x00BDD3, GBP_HNGL_LVT}, + {0x00BDD4, 0x00BDD4, GBP_HNGL_LV}, + {0x00BDD5, 0x00BDEF, GBP_HNGL_LVT}, + {0x00BDF0, 0x00BDF0, GBP_HNGL_LV}, + {0x00BDF1, 0x00BE0B, GBP_HNGL_LVT}, + {0x00BE0C, 0x00BE0C, GBP_HNGL_LV}, + {0x00BE0D, 0x00BE27, GBP_HNGL_LVT}, + {0x00BE28, 0x00BE28, GBP_HNGL_LV}, + {0x00BE29, 0x00BE43, GBP_HNGL_LVT}, + {0x00BE44, 0x00BE44, GBP_HNGL_LV}, + {0x00BE45, 0x00BE5F, GBP_HNGL_LVT}, + {0x00BE60, 0x00BE60, GBP_HNGL_LV}, + {0x00BE61, 0x00BE7B, GBP_HNGL_LVT}, + {0x00BE7C, 0x00BE7C, GBP_HNGL_LV}, + {0x00BE7D, 0x00BE97, GBP_HNGL_LVT}, + {0x00BE98, 0x00BE98, GBP_HNGL_LV}, + {0x00BE99, 0x00BEB3, GBP_HNGL_LVT}, + {0x00BEB4, 0x00BEB4, GBP_HNGL_LV}, + {0x00BEB5, 0x00BECF, GBP_HNGL_LVT}, + {0x00BED0, 0x00BED0, GBP_HNGL_LV}, + {0x00BED1, 0x00BEEB, GBP_HNGL_LVT}, + {0x00BEEC, 0x00BEEC, GBP_HNGL_LV}, + {0x00BEED, 0x00BF07, GBP_HNGL_LVT}, + {0x00BF08, 0x00BF08, GBP_HNGL_LV}, + {0x00BF09, 0x00BF23, GBP_HNGL_LVT}, + {0x00BF24, 0x00BF24, GBP_HNGL_LV}, + {0x00BF25, 0x00BF3F, GBP_HNGL_LVT}, + {0x00BF40, 0x00BF40, GBP_HNGL_LV}, + {0x00BF41, 0x00BF5B, GBP_HNGL_LVT}, + {0x00BF5C, 0x00BF5C, GBP_HNGL_LV}, + {0x00BF5D, 0x00BF77, GBP_HNGL_LVT}, + {0x00BF78, 0x00BF78, GBP_HNGL_LV}, + {0x00BF79, 0x00BF93, GBP_HNGL_LVT}, + {0x00BF94, 0x00BF94, GBP_HNGL_LV}, + {0x00BF95, 0x00BFAF, GBP_HNGL_LVT}, + {0x00BFB0, 0x00BFB0, GBP_HNGL_LV}, + {0x00BFB1, 0x00BFCB, GBP_HNGL_LVT}, + {0x00BFCC, 0x00BFCC, GBP_HNGL_LV}, + {0x00BFCD, 0x00BFE7, GBP_HNGL_LVT}, + {0x00BFE8, 0x00BFE8, GBP_HNGL_LV}, + {0x00BFE9, 0x00C003, GBP_HNGL_LVT}, + {0x00C004, 0x00C004, GBP_HNGL_LV}, + {0x00C005, 0x00C01F, GBP_HNGL_LVT}, + {0x00C020, 0x00C020, GBP_HNGL_LV}, + {0x00C021, 0x00C03B, GBP_HNGL_LVT}, + {0x00C03C, 0x00C03C, GBP_HNGL_LV}, + {0x00C03D, 0x00C057, GBP_HNGL_LVT}, + {0x00C058, 0x00C058, GBP_HNGL_LV}, + {0x00C059, 0x00C073, GBP_HNGL_LVT}, + {0x00C074, 0x00C074, GBP_HNGL_LV}, + {0x00C075, 0x00C08F, GBP_HNGL_LVT}, + {0x00C090, 0x00C090, GBP_HNGL_LV}, + {0x00C091, 0x00C0AB, GBP_HNGL_LVT}, + {0x00C0AC, 0x00C0AC, GBP_HNGL_LV}, + {0x00C0AD, 0x00C0C7, GBP_HNGL_LVT}, + {0x00C0C8, 0x00C0C8, GBP_HNGL_LV}, + {0x00C0C9, 0x00C0E3, GBP_HNGL_LVT}, + {0x00C0E4, 0x00C0E4, GBP_HNGL_LV}, + {0x00C0E5, 0x00C0FF, GBP_HNGL_LVT}, + {0x00C100, 0x00C100, GBP_HNGL_LV}, + {0x00C101, 0x00C11B, GBP_HNGL_LVT}, + {0x00C11C, 0x00C11C, GBP_HNGL_LV}, + {0x00C11D, 0x00C137, GBP_HNGL_LVT}, + {0x00C138, 0x00C138, GBP_HNGL_LV}, + {0x00C139, 0x00C153, GBP_HNGL_LVT}, + {0x00C154, 0x00C154, GBP_HNGL_LV}, + {0x00C155, 0x00C16F, GBP_HNGL_LVT}, + {0x00C170, 0x00C170, GBP_HNGL_LV}, + {0x00C171, 0x00C18B, GBP_HNGL_LVT}, + {0x00C18C, 0x00C18C, GBP_HNGL_LV}, + {0x00C18D, 0x00C1A7, GBP_HNGL_LVT}, + {0x00C1A8, 0x00C1A8, GBP_HNGL_LV}, + {0x00C1A9, 0x00C1C3, GBP_HNGL_LVT}, + {0x00C1C4, 0x00C1C4, GBP_HNGL_LV}, + {0x00C1C5, 0x00C1DF, GBP_HNGL_LVT}, + {0x00C1E0, 0x00C1E0, GBP_HNGL_LV}, + {0x00C1E1, 0x00C1FB, GBP_HNGL_LVT}, + {0x00C1FC, 0x00C1FC, GBP_HNGL_LV}, + {0x00C1FD, 0x00C217, GBP_HNGL_LVT}, + {0x00C218, 0x00C218, GBP_HNGL_LV}, + {0x00C219, 0x00C233, GBP_HNGL_LVT}, + {0x00C234, 0x00C234, GBP_HNGL_LV}, + {0x00C235, 0x00C24F, GBP_HNGL_LVT}, + {0x00C250, 0x00C250, GBP_HNGL_LV}, + {0x00C251, 0x00C26B, GBP_HNGL_LVT}, + {0x00C26C, 0x00C26C, GBP_HNGL_LV}, + {0x00C26D, 0x00C287, GBP_HNGL_LVT}, + {0x00C288, 0x00C288, GBP_HNGL_LV}, + {0x00C289, 0x00C2A3, GBP_HNGL_LVT}, + {0x00C2A4, 0x00C2A4, GBP_HNGL_LV}, + {0x00C2A5, 0x00C2BF, GBP_HNGL_LVT}, + {0x00C2C0, 0x00C2C0, GBP_HNGL_LV}, + {0x00C2C1, 0x00C2DB, GBP_HNGL_LVT}, + {0x00C2DC, 0x00C2DC, GBP_HNGL_LV}, + {0x00C2DD, 0x00C2F7, GBP_HNGL_LVT}, + {0x00C2F8, 0x00C2F8, GBP_HNGL_LV}, + {0x00C2F9, 0x00C313, GBP_HNGL_LVT}, + {0x00C314, 0x00C314, GBP_HNGL_LV}, + {0x00C315, 0x00C32F, GBP_HNGL_LVT}, + {0x00C330, 0x00C330, GBP_HNGL_LV}, + {0x00C331, 0x00C34B, GBP_HNGL_LVT}, + {0x00C34C, 0x00C34C, GBP_HNGL_LV}, + {0x00C34D, 0x00C367, GBP_HNGL_LVT}, + {0x00C368, 0x00C368, GBP_HNGL_LV}, + {0x00C369, 0x00C383, GBP_HNGL_LVT}, + {0x00C384, 0x00C384, GBP_HNGL_LV}, + {0x00C385, 0x00C39F, GBP_HNGL_LVT}, + {0x00C3A0, 0x00C3A0, GBP_HNGL_LV}, + {0x00C3A1, 0x00C3BB, GBP_HNGL_LVT}, + {0x00C3BC, 0x00C3BC, GBP_HNGL_LV}, + {0x00C3BD, 0x00C3D7, GBP_HNGL_LVT}, + {0x00C3D8, 0x00C3D8, GBP_HNGL_LV}, + {0x00C3D9, 0x00C3F3, GBP_HNGL_LVT}, + {0x00C3F4, 0x00C3F4, GBP_HNGL_LV}, + {0x00C3F5, 0x00C40F, GBP_HNGL_LVT}, + {0x00C410, 0x00C410, GBP_HNGL_LV}, + {0x00C411, 0x00C42B, GBP_HNGL_LVT}, + {0x00C42C, 0x00C42C, GBP_HNGL_LV}, + {0x00C42D, 0x00C447, GBP_HNGL_LVT}, + {0x00C448, 0x00C448, GBP_HNGL_LV}, + {0x00C449, 0x00C463, GBP_HNGL_LVT}, + {0x00C464, 0x00C464, GBP_HNGL_LV}, + {0x00C465, 0x00C47F, GBP_HNGL_LVT}, + {0x00C480, 0x00C480, GBP_HNGL_LV}, + {0x00C481, 0x00C49B, GBP_HNGL_LVT}, + {0x00C49C, 0x00C49C, GBP_HNGL_LV}, + {0x00C49D, 0x00C4B7, GBP_HNGL_LVT}, + {0x00C4B8, 0x00C4B8, GBP_HNGL_LV}, + {0x00C4B9, 0x00C4D3, GBP_HNGL_LVT}, + {0x00C4D4, 0x00C4D4, GBP_HNGL_LV}, + {0x00C4D5, 0x00C4EF, GBP_HNGL_LVT}, + {0x00C4F0, 0x00C4F0, GBP_HNGL_LV}, + {0x00C4F1, 0x00C50B, GBP_HNGL_LVT}, + {0x00C50C, 0x00C50C, GBP_HNGL_LV}, + {0x00C50D, 0x00C527, GBP_HNGL_LVT}, + {0x00C528, 0x00C528, GBP_HNGL_LV}, + {0x00C529, 0x00C543, GBP_HNGL_LVT}, + {0x00C544, 0x00C544, GBP_HNGL_LV}, + {0x00C545, 0x00C55F, GBP_HNGL_LVT}, + {0x00C560, 0x00C560, GBP_HNGL_LV}, + {0x00C561, 0x00C57B, GBP_HNGL_LVT}, + {0x00C57C, 0x00C57C, GBP_HNGL_LV}, + {0x00C57D, 0x00C597, GBP_HNGL_LVT}, + {0x00C598, 0x00C598, GBP_HNGL_LV}, + {0x00C599, 0x00C5B3, GBP_HNGL_LVT}, + {0x00C5B4, 0x00C5B4, GBP_HNGL_LV}, + {0x00C5B5, 0x00C5CF, GBP_HNGL_LVT}, + {0x00C5D0, 0x00C5D0, GBP_HNGL_LV}, + {0x00C5D1, 0x00C5EB, GBP_HNGL_LVT}, + {0x00C5EC, 0x00C5EC, GBP_HNGL_LV}, + {0x00C5ED, 0x00C607, GBP_HNGL_LVT}, + {0x00C608, 0x00C608, GBP_HNGL_LV}, + {0x00C609, 0x00C623, GBP_HNGL_LVT}, + {0x00C624, 0x00C624, GBP_HNGL_LV}, + {0x00C625, 0x00C63F, GBP_HNGL_LVT}, + {0x00C640, 0x00C640, GBP_HNGL_LV}, + {0x00C641, 0x00C65B, GBP_HNGL_LVT}, + {0x00C65C, 0x00C65C, GBP_HNGL_LV}, + {0x00C65D, 0x00C677, GBP_HNGL_LVT}, + {0x00C678, 0x00C678, GBP_HNGL_LV}, + {0x00C679, 0x00C693, GBP_HNGL_LVT}, + {0x00C694, 0x00C694, GBP_HNGL_LV}, + {0x00C695, 0x00C6AF, GBP_HNGL_LVT}, + {0x00C6B0, 0x00C6B0, GBP_HNGL_LV}, + {0x00C6B1, 0x00C6CB, GBP_HNGL_LVT}, + {0x00C6CC, 0x00C6CC, GBP_HNGL_LV}, + {0x00C6CD, 0x00C6E7, GBP_HNGL_LVT}, + {0x00C6E8, 0x00C6E8, GBP_HNGL_LV}, + {0x00C6E9, 0x00C703, GBP_HNGL_LVT}, + {0x00C704, 0x00C704, GBP_HNGL_LV}, + {0x00C705, 0x00C71F, GBP_HNGL_LVT}, + {0x00C720, 0x00C720, GBP_HNGL_LV}, + {0x00C721, 0x00C73B, GBP_HNGL_LVT}, + {0x00C73C, 0x00C73C, GBP_HNGL_LV}, + {0x00C73D, 0x00C757, GBP_HNGL_LVT}, + {0x00C758, 0x00C758, GBP_HNGL_LV}, + {0x00C759, 0x00C773, GBP_HNGL_LVT}, + {0x00C774, 0x00C774, GBP_HNGL_LV}, + {0x00C775, 0x00C78F, GBP_HNGL_LVT}, + {0x00C790, 0x00C790, GBP_HNGL_LV}, + {0x00C791, 0x00C7AB, GBP_HNGL_LVT}, + {0x00C7AC, 0x00C7AC, GBP_HNGL_LV}, + {0x00C7AD, 0x00C7C7, GBP_HNGL_LVT}, + {0x00C7C8, 0x00C7C8, GBP_HNGL_LV}, + {0x00C7C9, 0x00C7E3, GBP_HNGL_LVT}, + {0x00C7E4, 0x00C7E4, GBP_HNGL_LV}, + {0x00C7E5, 0x00C7FF, GBP_HNGL_LVT}, + {0x00C800, 0x00C800, GBP_HNGL_LV}, + {0x00C801, 0x00C81B, GBP_HNGL_LVT}, + {0x00C81C, 0x00C81C, GBP_HNGL_LV}, + {0x00C81D, 0x00C837, GBP_HNGL_LVT}, + {0x00C838, 0x00C838, GBP_HNGL_LV}, + {0x00C839, 0x00C853, GBP_HNGL_LVT}, + {0x00C854, 0x00C854, GBP_HNGL_LV}, + {0x00C855, 0x00C86F, GBP_HNGL_LVT}, + {0x00C870, 0x00C870, GBP_HNGL_LV}, + {0x00C871, 0x00C88B, GBP_HNGL_LVT}, + {0x00C88C, 0x00C88C, GBP_HNGL_LV}, + {0x00C88D, 0x00C8A7, GBP_HNGL_LVT}, + {0x00C8A8, 0x00C8A8, GBP_HNGL_LV}, + {0x00C8A9, 0x00C8C3, GBP_HNGL_LVT}, + {0x00C8C4, 0x00C8C4, GBP_HNGL_LV}, + {0x00C8C5, 0x00C8DF, GBP_HNGL_LVT}, + {0x00C8E0, 0x00C8E0, GBP_HNGL_LV}, + {0x00C8E1, 0x00C8FB, GBP_HNGL_LVT}, + {0x00C8FC, 0x00C8FC, GBP_HNGL_LV}, + {0x00C8FD, 0x00C917, GBP_HNGL_LVT}, + {0x00C918, 0x00C918, GBP_HNGL_LV}, + {0x00C919, 0x00C933, GBP_HNGL_LVT}, + {0x00C934, 0x00C934, GBP_HNGL_LV}, + {0x00C935, 0x00C94F, GBP_HNGL_LVT}, + {0x00C950, 0x00C950, GBP_HNGL_LV}, + {0x00C951, 0x00C96B, GBP_HNGL_LVT}, + {0x00C96C, 0x00C96C, GBP_HNGL_LV}, + {0x00C96D, 0x00C987, GBP_HNGL_LVT}, + {0x00C988, 0x00C988, GBP_HNGL_LV}, + {0x00C989, 0x00C9A3, GBP_HNGL_LVT}, + {0x00C9A4, 0x00C9A4, GBP_HNGL_LV}, + {0x00C9A5, 0x00C9BF, GBP_HNGL_LVT}, + {0x00C9C0, 0x00C9C0, GBP_HNGL_LV}, + {0x00C9C1, 0x00C9DB, GBP_HNGL_LVT}, + {0x00C9DC, 0x00C9DC, GBP_HNGL_LV}, + {0x00C9DD, 0x00C9F7, GBP_HNGL_LVT}, + {0x00C9F8, 0x00C9F8, GBP_HNGL_LV}, + {0x00C9F9, 0x00CA13, GBP_HNGL_LVT}, + {0x00CA14, 0x00CA14, GBP_HNGL_LV}, + {0x00CA15, 0x00CA2F, GBP_HNGL_LVT}, + {0x00CA30, 0x00CA30, GBP_HNGL_LV}, + {0x00CA31, 0x00CA4B, GBP_HNGL_LVT}, + {0x00CA4C, 0x00CA4C, GBP_HNGL_LV}, + {0x00CA4D, 0x00CA67, GBP_HNGL_LVT}, + {0x00CA68, 0x00CA68, GBP_HNGL_LV}, + {0x00CA69, 0x00CA83, GBP_HNGL_LVT}, + {0x00CA84, 0x00CA84, GBP_HNGL_LV}, + {0x00CA85, 0x00CA9F, GBP_HNGL_LVT}, + {0x00CAA0, 0x00CAA0, GBP_HNGL_LV}, + {0x00CAA1, 0x00CABB, GBP_HNGL_LVT}, + {0x00CABC, 0x00CABC, GBP_HNGL_LV}, + {0x00CABD, 0x00CAD7, GBP_HNGL_LVT}, + {0x00CAD8, 0x00CAD8, GBP_HNGL_LV}, + {0x00CAD9, 0x00CAF3, GBP_HNGL_LVT}, + {0x00CAF4, 0x00CAF4, GBP_HNGL_LV}, + {0x00CAF5, 0x00CB0F, GBP_HNGL_LVT}, + {0x00CB10, 0x00CB10, GBP_HNGL_LV}, + {0x00CB11, 0x00CB2B, GBP_HNGL_LVT}, + {0x00CB2C, 0x00CB2C, GBP_HNGL_LV}, + {0x00CB2D, 0x00CB47, GBP_HNGL_LVT}, + {0x00CB48, 0x00CB48, GBP_HNGL_LV}, + {0x00CB49, 0x00CB63, GBP_HNGL_LVT}, + {0x00CB64, 0x00CB64, GBP_HNGL_LV}, + {0x00CB65, 0x00CB7F, GBP_HNGL_LVT}, + {0x00CB80, 0x00CB80, GBP_HNGL_LV}, + {0x00CB81, 0x00CB9B, GBP_HNGL_LVT}, + {0x00CB9C, 0x00CB9C, GBP_HNGL_LV}, + {0x00CB9D, 0x00CBB7, GBP_HNGL_LVT}, + {0x00CBB8, 0x00CBB8, GBP_HNGL_LV}, + {0x00CBB9, 0x00CBD3, GBP_HNGL_LVT}, + {0x00CBD4, 0x00CBD4, GBP_HNGL_LV}, + {0x00CBD5, 0x00CBEF, GBP_HNGL_LVT}, + {0x00CBF0, 0x00CBF0, GBP_HNGL_LV}, + {0x00CBF1, 0x00CC0B, GBP_HNGL_LVT}, + {0x00CC0C, 0x00CC0C, GBP_HNGL_LV}, + {0x00CC0D, 0x00CC27, GBP_HNGL_LVT}, + {0x00CC28, 0x00CC28, GBP_HNGL_LV}, + {0x00CC29, 0x00CC43, GBP_HNGL_LVT}, + {0x00CC44, 0x00CC44, GBP_HNGL_LV}, + {0x00CC45, 0x00CC5F, GBP_HNGL_LVT}, + {0x00CC60, 0x00CC60, GBP_HNGL_LV}, + {0x00CC61, 0x00CC7B, GBP_HNGL_LVT}, + {0x00CC7C, 0x00CC7C, GBP_HNGL_LV}, + {0x00CC7D, 0x00CC97, GBP_HNGL_LVT}, + {0x00CC98, 0x00CC98, GBP_HNGL_LV}, + {0x00CC99, 0x00CCB3, GBP_HNGL_LVT}, + {0x00CCB4, 0x00CCB4, GBP_HNGL_LV}, + {0x00CCB5, 0x00CCCF, GBP_HNGL_LVT}, + {0x00CCD0, 0x00CCD0, GBP_HNGL_LV}, + {0x00CCD1, 0x00CCEB, GBP_HNGL_LVT}, + {0x00CCEC, 0x00CCEC, GBP_HNGL_LV}, + {0x00CCED, 0x00CD07, GBP_HNGL_LVT}, + {0x00CD08, 0x00CD08, GBP_HNGL_LV}, + {0x00CD09, 0x00CD23, GBP_HNGL_LVT}, + {0x00CD24, 0x00CD24, GBP_HNGL_LV}, + {0x00CD25, 0x00CD3F, GBP_HNGL_LVT}, + {0x00CD40, 0x00CD40, GBP_HNGL_LV}, + {0x00CD41, 0x00CD5B, GBP_HNGL_LVT}, + {0x00CD5C, 0x00CD5C, GBP_HNGL_LV}, + {0x00CD5D, 0x00CD77, GBP_HNGL_LVT}, + {0x00CD78, 0x00CD78, GBP_HNGL_LV}, + {0x00CD79, 0x00CD93, GBP_HNGL_LVT}, + {0x00CD94, 0x00CD94, GBP_HNGL_LV}, + {0x00CD95, 0x00CDAF, GBP_HNGL_LVT}, + {0x00CDB0, 0x00CDB0, GBP_HNGL_LV}, + {0x00CDB1, 0x00CDCB, GBP_HNGL_LVT}, + {0x00CDCC, 0x00CDCC, GBP_HNGL_LV}, + {0x00CDCD, 0x00CDE7, GBP_HNGL_LVT}, + {0x00CDE8, 0x00CDE8, GBP_HNGL_LV}, + {0x00CDE9, 0x00CE03, GBP_HNGL_LVT}, + {0x00CE04, 0x00CE04, GBP_HNGL_LV}, + {0x00CE05, 0x00CE1F, GBP_HNGL_LVT}, + {0x00CE20, 0x00CE20, GBP_HNGL_LV}, + {0x00CE21, 0x00CE3B, GBP_HNGL_LVT}, + {0x00CE3C, 0x00CE3C, GBP_HNGL_LV}, + {0x00CE3D, 0x00CE57, GBP_HNGL_LVT}, + {0x00CE58, 0x00CE58, GBP_HNGL_LV}, + {0x00CE59, 0x00CE73, GBP_HNGL_LVT}, + {0x00CE74, 0x00CE74, GBP_HNGL_LV}, + {0x00CE75, 0x00CE8F, GBP_HNGL_LVT}, + {0x00CE90, 0x00CE90, GBP_HNGL_LV}, + {0x00CE91, 0x00CEAB, GBP_HNGL_LVT}, + {0x00CEAC, 0x00CEAC, GBP_HNGL_LV}, + {0x00CEAD, 0x00CEC7, GBP_HNGL_LVT}, + {0x00CEC8, 0x00CEC8, GBP_HNGL_LV}, + {0x00CEC9, 0x00CEE3, GBP_HNGL_LVT}, + {0x00CEE4, 0x00CEE4, GBP_HNGL_LV}, + {0x00CEE5, 0x00CEFF, GBP_HNGL_LVT}, + {0x00CF00, 0x00CF00, GBP_HNGL_LV}, + {0x00CF01, 0x00CF1B, GBP_HNGL_LVT}, + {0x00CF1C, 0x00CF1C, GBP_HNGL_LV}, + {0x00CF1D, 0x00CF37, GBP_HNGL_LVT}, + {0x00CF38, 0x00CF38, GBP_HNGL_LV}, + {0x00CF39, 0x00CF53, GBP_HNGL_LVT}, + {0x00CF54, 0x00CF54, GBP_HNGL_LV}, + {0x00CF55, 0x00CF6F, GBP_HNGL_LVT}, + {0x00CF70, 0x00CF70, GBP_HNGL_LV}, + {0x00CF71, 0x00CF8B, GBP_HNGL_LVT}, + {0x00CF8C, 0x00CF8C, GBP_HNGL_LV}, + {0x00CF8D, 0x00CFA7, GBP_HNGL_LVT}, + {0x00CFA8, 0x00CFA8, GBP_HNGL_LV}, + {0x00CFA9, 0x00CFC3, GBP_HNGL_LVT}, + {0x00CFC4, 0x00CFC4, GBP_HNGL_LV}, + {0x00CFC5, 0x00CFDF, GBP_HNGL_LVT}, + {0x00CFE0, 0x00CFE0, GBP_HNGL_LV}, + {0x00CFE1, 0x00CFFB, GBP_HNGL_LVT}, + {0x00CFFC, 0x00CFFC, GBP_HNGL_LV}, + {0x00CFFD, 0x00D017, GBP_HNGL_LVT}, + {0x00D018, 0x00D018, GBP_HNGL_LV}, + {0x00D019, 0x00D033, GBP_HNGL_LVT}, + {0x00D034, 0x00D034, GBP_HNGL_LV}, + {0x00D035, 0x00D04F, GBP_HNGL_LVT}, + {0x00D050, 0x00D050, GBP_HNGL_LV}, + {0x00D051, 0x00D06B, GBP_HNGL_LVT}, + {0x00D06C, 0x00D06C, GBP_HNGL_LV}, + {0x00D06D, 0x00D087, GBP_HNGL_LVT}, + {0x00D088, 0x00D088, GBP_HNGL_LV}, + {0x00D089, 0x00D0A3, GBP_HNGL_LVT}, + {0x00D0A4, 0x00D0A4, GBP_HNGL_LV}, + {0x00D0A5, 0x00D0BF, GBP_HNGL_LVT}, + {0x00D0C0, 0x00D0C0, GBP_HNGL_LV}, + {0x00D0C1, 0x00D0DB, GBP_HNGL_LVT}, + {0x00D0DC, 0x00D0DC, GBP_HNGL_LV}, + {0x00D0DD, 0x00D0F7, GBP_HNGL_LVT}, + {0x00D0F8, 0x00D0F8, GBP_HNGL_LV}, + {0x00D0F9, 0x00D113, GBP_HNGL_LVT}, + {0x00D114, 0x00D114, GBP_HNGL_LV}, + {0x00D115, 0x00D12F, GBP_HNGL_LVT}, + {0x00D130, 0x00D130, GBP_HNGL_LV}, + {0x00D131, 0x00D14B, GBP_HNGL_LVT}, + {0x00D14C, 0x00D14C, GBP_HNGL_LV}, + {0x00D14D, 0x00D167, GBP_HNGL_LVT}, + {0x00D168, 0x00D168, GBP_HNGL_LV}, + {0x00D169, 0x00D183, GBP_HNGL_LVT}, + {0x00D184, 0x00D184, GBP_HNGL_LV}, + {0x00D185, 0x00D19F, GBP_HNGL_LVT}, + {0x00D1A0, 0x00D1A0, GBP_HNGL_LV}, + {0x00D1A1, 0x00D1BB, GBP_HNGL_LVT}, + {0x00D1BC, 0x00D1BC, GBP_HNGL_LV}, + {0x00D1BD, 0x00D1D7, GBP_HNGL_LVT}, + {0x00D1D8, 0x00D1D8, GBP_HNGL_LV}, + {0x00D1D9, 0x00D1F3, GBP_HNGL_LVT}, + {0x00D1F4, 0x00D1F4, GBP_HNGL_LV}, + {0x00D1F5, 0x00D20F, GBP_HNGL_LVT}, + {0x00D210, 0x00D210, GBP_HNGL_LV}, + {0x00D211, 0x00D22B, GBP_HNGL_LVT}, + {0x00D22C, 0x00D22C, GBP_HNGL_LV}, + {0x00D22D, 0x00D247, GBP_HNGL_LVT}, + {0x00D248, 0x00D248, GBP_HNGL_LV}, + {0x00D249, 0x00D263, GBP_HNGL_LVT}, + {0x00D264, 0x00D264, GBP_HNGL_LV}, + {0x00D265, 0x00D27F, GBP_HNGL_LVT}, + {0x00D280, 0x00D280, GBP_HNGL_LV}, + {0x00D281, 0x00D29B, GBP_HNGL_LVT}, + {0x00D29C, 0x00D29C, GBP_HNGL_LV}, + {0x00D29D, 0x00D2B7, GBP_HNGL_LVT}, + {0x00D2B8, 0x00D2B8, GBP_HNGL_LV}, + {0x00D2B9, 0x00D2D3, GBP_HNGL_LVT}, + {0x00D2D4, 0x00D2D4, GBP_HNGL_LV}, + {0x00D2D5, 0x00D2EF, GBP_HNGL_LVT}, + {0x00D2F0, 0x00D2F0, GBP_HNGL_LV}, + {0x00D2F1, 0x00D30B, GBP_HNGL_LVT}, + {0x00D30C, 0x00D30C, GBP_HNGL_LV}, + {0x00D30D, 0x00D327, GBP_HNGL_LVT}, + {0x00D328, 0x00D328, GBP_HNGL_LV}, + {0x00D329, 0x00D343, GBP_HNGL_LVT}, + {0x00D344, 0x00D344, GBP_HNGL_LV}, + {0x00D345, 0x00D35F, GBP_HNGL_LVT}, + {0x00D360, 0x00D360, GBP_HNGL_LV}, + {0x00D361, 0x00D37B, GBP_HNGL_LVT}, + {0x00D37C, 0x00D37C, GBP_HNGL_LV}, + {0x00D37D, 0x00D397, GBP_HNGL_LVT}, + {0x00D398, 0x00D398, GBP_HNGL_LV}, + {0x00D399, 0x00D3B3, GBP_HNGL_LVT}, + {0x00D3B4, 0x00D3B4, GBP_HNGL_LV}, + {0x00D3B5, 0x00D3CF, GBP_HNGL_LVT}, + {0x00D3D0, 0x00D3D0, GBP_HNGL_LV}, + {0x00D3D1, 0x00D3EB, GBP_HNGL_LVT}, + {0x00D3EC, 0x00D3EC, GBP_HNGL_LV}, + {0x00D3ED, 0x00D407, GBP_HNGL_LVT}, + {0x00D408, 0x00D408, GBP_HNGL_LV}, + {0x00D409, 0x00D423, GBP_HNGL_LVT}, + {0x00D424, 0x00D424, GBP_HNGL_LV}, + {0x00D425, 0x00D43F, GBP_HNGL_LVT}, + {0x00D440, 0x00D440, GBP_HNGL_LV}, + {0x00D441, 0x00D45B, GBP_HNGL_LVT}, + {0x00D45C, 0x00D45C, GBP_HNGL_LV}, + {0x00D45D, 0x00D477, GBP_HNGL_LVT}, + {0x00D478, 0x00D478, GBP_HNGL_LV}, + {0x00D479, 0x00D493, GBP_HNGL_LVT}, + {0x00D494, 0x00D494, GBP_HNGL_LV}, + {0x00D495, 0x00D4AF, GBP_HNGL_LVT}, + {0x00D4B0, 0x00D4B0, GBP_HNGL_LV}, + {0x00D4B1, 0x00D4CB, GBP_HNGL_LVT}, + {0x00D4CC, 0x00D4CC, GBP_HNGL_LV}, + {0x00D4CD, 0x00D4E7, GBP_HNGL_LVT}, + {0x00D4E8, 0x00D4E8, GBP_HNGL_LV}, + {0x00D4E9, 0x00D503, GBP_HNGL_LVT}, + {0x00D504, 0x00D504, GBP_HNGL_LV}, + {0x00D505, 0x00D51F, GBP_HNGL_LVT}, + {0x00D520, 0x00D520, GBP_HNGL_LV}, + {0x00D521, 0x00D53B, GBP_HNGL_LVT}, + {0x00D53C, 0x00D53C, GBP_HNGL_LV}, + {0x00D53D, 0x00D557, GBP_HNGL_LVT}, + {0x00D558, 0x00D558, GBP_HNGL_LV}, + {0x00D559, 0x00D573, GBP_HNGL_LVT}, + {0x00D574, 0x00D574, GBP_HNGL_LV}, + {0x00D575, 0x00D58F, GBP_HNGL_LVT}, + {0x00D590, 0x00D590, GBP_HNGL_LV}, + {0x00D591, 0x00D5AB, GBP_HNGL_LVT}, + {0x00D5AC, 0x00D5AC, GBP_HNGL_LV}, + {0x00D5AD, 0x00D5C7, GBP_HNGL_LVT}, + {0x00D5C8, 0x00D5C8, GBP_HNGL_LV}, + {0x00D5C9, 0x00D5E3, GBP_HNGL_LVT}, + {0x00D5E4, 0x00D5E4, GBP_HNGL_LV}, + {0x00D5E5, 0x00D5FF, GBP_HNGL_LVT}, + {0x00D600, 0x00D600, GBP_HNGL_LV}, + {0x00D601, 0x00D61B, GBP_HNGL_LVT}, + {0x00D61C, 0x00D61C, GBP_HNGL_LV}, + {0x00D61D, 0x00D637, GBP_HNGL_LVT}, + {0x00D638, 0x00D638, GBP_HNGL_LV}, + {0x00D639, 0x00D653, GBP_HNGL_LVT}, + {0x00D654, 0x00D654, GBP_HNGL_LV}, + {0x00D655, 0x00D66F, GBP_HNGL_LVT}, + {0x00D670, 0x00D670, GBP_HNGL_LV}, + {0x00D671, 0x00D68B, GBP_HNGL_LVT}, + {0x00D68C, 0x00D68C, GBP_HNGL_LV}, + {0x00D68D, 0x00D6A7, GBP_HNGL_LVT}, + {0x00D6A8, 0x00D6A8, GBP_HNGL_LV}, + {0x00D6A9, 0x00D6C3, GBP_HNGL_LVT}, + {0x00D6C4, 0x00D6C4, GBP_HNGL_LV}, + {0x00D6C5, 0x00D6DF, GBP_HNGL_LVT}, + {0x00D6E0, 0x00D6E0, GBP_HNGL_LV}, + {0x00D6E1, 0x00D6FB, GBP_HNGL_LVT}, + {0x00D6FC, 0x00D6FC, GBP_HNGL_LV}, + {0x00D6FD, 0x00D717, GBP_HNGL_LVT}, + {0x00D718, 0x00D718, GBP_HNGL_LV}, + {0x00D719, 0x00D733, GBP_HNGL_LVT}, + {0x00D734, 0x00D734, GBP_HNGL_LV}, + {0x00D735, 0x00D74F, GBP_HNGL_LVT}, + {0x00D750, 0x00D750, GBP_HNGL_LV}, + {0x00D751, 0x00D76B, GBP_HNGL_LVT}, + {0x00D76C, 0x00D76C, GBP_HNGL_LV}, + {0x00D76D, 0x00D787, GBP_HNGL_LVT}, + {0x00D788, 0x00D788, GBP_HNGL_LV}, + {0x00D789, 0x00D7A3, GBP_HNGL_LVT}, + {0x00D7B0, 0x00D7C6, GBP_HNGL_V}, + {0x00D7CB, 0x00D7FB, GBP_HNGL_T}, + {0x00FB1E, 0x00FB1E, GBP_INDC_EXT | GBP_EXT}, + {0x00FE00, 0x00FE0F, GBP_EXT}, + {0x00FE20, 0x00FE2F, GBP_INDC_EXT | GBP_EXT}, + {0x00FEFF, 0x00FEFF, GBP_CTRL}, + {0x00FF9E, 0x00FF9F, GBP_EXT}, + {0x00FFF0, 0x00FFFB, GBP_CTRL}, + {0x0101FD, 0x0101FD, GBP_INDC_EXT | GBP_EXT}, + {0x0102E0, 0x0102E0, GBP_INDC_EXT | GBP_EXT}, + {0x010376, 0x01037A, GBP_INDC_EXT | GBP_EXT}, + {0x010A01, 0x010A03, GBP_EXT}, + {0x010A05, 0x010A06, GBP_EXT}, + {0x010A0C, 0x010A0C, GBP_EXT}, + {0x010A0D, 0x010A0D, GBP_INDC_EXT | GBP_EXT}, + {0x010A0E, 0x010A0E, GBP_EXT}, + {0x010A0F, 0x010A0F, GBP_INDC_EXT | GBP_EXT}, + {0x010A38, 0x010A3A, GBP_INDC_EXT | GBP_EXT}, + {0x010A3F, 0x010A3F, GBP_INDC_EXT | GBP_EXT}, + {0x010AE5, 0x010AE6, GBP_INDC_EXT | GBP_EXT}, + {0x010D24, 0x010D27, GBP_INDC_EXT | GBP_EXT}, + {0x010EAB, 0x010EAC, GBP_INDC_EXT | GBP_EXT}, + {0x010EFD, 0x010EFF, GBP_INDC_EXT | GBP_EXT}, + {0x010F46, 0x010F50, GBP_INDC_EXT | GBP_EXT}, + {0x010F82, 0x010F85, GBP_INDC_EXT | GBP_EXT}, + {0x011000, 0x011000, GBP_SM}, + {0x011001, 0x011001, GBP_EXT}, + {0x011002, 0x011002, GBP_SM}, + {0x011038, 0x011046, GBP_EXT}, + {0x011070, 0x011070, GBP_INDC_EXT | GBP_EXT}, + {0x011073, 0x011074, GBP_EXT}, + {0x01107F, 0x01107F, GBP_INDC_EXT | GBP_EXT}, + {0x011080, 0x011081, GBP_EXT}, + {0x011082, 0x011082, GBP_SM}, + {0x0110B0, 0x0110B2, GBP_SM}, + {0x0110B3, 0x0110B6, GBP_EXT}, + {0x0110B7, 0x0110B8, GBP_SM}, + {0x0110B9, 0x0110B9, GBP_EXT}, + {0x0110BA, 0x0110BA, GBP_INDC_EXT | GBP_EXT}, + {0x0110BD, 0x0110BD, GBP_PREP}, + {0x0110C2, 0x0110C2, GBP_EXT}, + {0x0110CD, 0x0110CD, GBP_PREP}, + {0x011100, 0x011102, GBP_INDC_EXT | GBP_EXT}, + {0x011127, 0x01112B, GBP_EXT}, + {0x01112C, 0x01112C, GBP_SM}, + {0x01112D, 0x011132, GBP_EXT}, + {0x011133, 0x011134, GBP_INDC_EXT | GBP_EXT}, + {0x011145, 0x011146, GBP_SM}, + {0x011173, 0x011173, GBP_INDC_EXT | GBP_EXT}, + {0x011180, 0x011181, GBP_EXT}, + {0x011182, 0x011182, GBP_SM}, + {0x0111B3, 0x0111B5, GBP_SM}, + {0x0111B6, 0x0111BE, GBP_EXT}, + {0x0111BF, 0x0111C0, GBP_SM}, + {0x0111C2, 0x0111C3, GBP_PREP}, + {0x0111C9, 0x0111C9, GBP_EXT}, + {0x0111CA, 0x0111CA, GBP_INDC_EXT | GBP_EXT}, + {0x0111CB, 0x0111CC, GBP_EXT}, + {0x0111CE, 0x0111CE, GBP_SM}, + {0x0111CF, 0x0111CF, GBP_EXT}, + {0x01122C, 0x01122E, GBP_SM}, + {0x01122F, 0x011231, GBP_EXT}, + {0x011232, 0x011233, GBP_SM}, + {0x011234, 0x011234, GBP_EXT}, + {0x011235, 0x011235, GBP_SM}, + {0x011236, 0x011236, GBP_INDC_EXT | GBP_EXT}, + {0x011237, 0x011237, GBP_EXT}, + {0x01123E, 0x01123E, GBP_EXT}, + {0x011241, 0x011241, GBP_EXT}, + {0x0112DF, 0x0112DF, GBP_EXT}, + {0x0112E0, 0x0112E2, GBP_SM}, + {0x0112E3, 0x0112E8, GBP_EXT}, + {0x0112E9, 0x0112EA, GBP_INDC_EXT | GBP_EXT}, + {0x011300, 0x011301, GBP_EXT}, + {0x011302, 0x011303, GBP_SM}, + {0x01133B, 0x01133C, GBP_INDC_EXT | GBP_EXT}, + {0x01133E, 0x01133E, GBP_EXT}, + {0x01133F, 0x01133F, GBP_SM}, + {0x011340, 0x011340, GBP_EXT}, + {0x011341, 0x011344, GBP_SM}, + {0x011347, 0x011348, GBP_SM}, + {0x01134B, 0x01134D, GBP_SM}, + {0x011357, 0x011357, GBP_EXT}, + {0x011362, 0x011363, GBP_SM}, + {0x011366, 0x01136C, GBP_INDC_EXT | GBP_EXT}, + {0x011370, 0x011374, GBP_INDC_EXT | GBP_EXT}, + {0x011435, 0x011437, GBP_SM}, + {0x011438, 0x01143F, GBP_EXT}, + {0x011440, 0x011441, GBP_SM}, + {0x011442, 0x011444, GBP_EXT}, + {0x011445, 0x011445, GBP_SM}, + {0x011446, 0x011446, GBP_INDC_EXT | GBP_EXT}, + {0x01145E, 0x01145E, GBP_INDC_EXT | GBP_EXT}, + {0x0114B0, 0x0114B0, GBP_EXT}, + {0x0114B1, 0x0114B2, GBP_SM}, + {0x0114B3, 0x0114B8, GBP_EXT}, + {0x0114B9, 0x0114B9, GBP_SM}, + {0x0114BA, 0x0114BA, GBP_EXT}, + {0x0114BB, 0x0114BC, GBP_SM}, + {0x0114BD, 0x0114BD, GBP_EXT}, + {0x0114BE, 0x0114BE, GBP_SM}, + {0x0114BF, 0x0114C0, GBP_EXT}, + {0x0114C1, 0x0114C1, GBP_SM}, + {0x0114C2, 0x0114C2, GBP_EXT}, + {0x0114C3, 0x0114C3, GBP_INDC_EXT | GBP_EXT}, + {0x0115AF, 0x0115AF, GBP_EXT}, + {0x0115B0, 0x0115B1, GBP_SM}, + {0x0115B2, 0x0115B5, GBP_EXT}, + {0x0115B8, 0x0115BB, GBP_SM}, + {0x0115BC, 0x0115BD, GBP_EXT}, + {0x0115BE, 0x0115BE, GBP_SM}, + {0x0115BF, 0x0115BF, GBP_EXT}, + {0x0115C0, 0x0115C0, GBP_INDC_EXT | GBP_EXT}, + {0x0115DC, 0x0115DD, GBP_EXT}, + {0x011630, 0x011632, GBP_SM}, + {0x011633, 0x01163A, GBP_EXT}, + {0x01163B, 0x01163C, GBP_SM}, + {0x01163D, 0x01163D, GBP_EXT}, + {0x01163E, 0x01163E, GBP_SM}, + {0x01163F, 0x011640, GBP_EXT}, + {0x0116AB, 0x0116AB, GBP_EXT}, + {0x0116AC, 0x0116AC, GBP_SM}, + {0x0116AD, 0x0116AD, GBP_EXT}, + {0x0116AE, 0x0116AF, GBP_SM}, + {0x0116B0, 0x0116B5, GBP_EXT}, + {0x0116B6, 0x0116B6, GBP_SM}, + {0x0116B7, 0x0116B7, GBP_INDC_EXT | GBP_EXT}, + {0x01171D, 0x01171F, GBP_EXT}, + {0x011722, 0x011725, GBP_EXT}, + {0x011726, 0x011726, GBP_SM}, + {0x011727, 0x01172A, GBP_EXT}, + {0x01172B, 0x01172B, GBP_INDC_EXT | GBP_EXT}, + {0x01182C, 0x01182E, GBP_SM}, + {0x01182F, 0x011837, GBP_EXT}, + {0x011838, 0x011838, GBP_SM}, + {0x011839, 0x011839, GBP_EXT}, + {0x01183A, 0x01183A, GBP_INDC_EXT | GBP_EXT}, + {0x011930, 0x011930, GBP_EXT}, + {0x011931, 0x011935, GBP_SM}, + {0x011937, 0x011938, GBP_SM}, + {0x01193B, 0x01193C, GBP_EXT}, + {0x01193D, 0x01193D, GBP_SM}, + {0x01193E, 0x01193E, GBP_INDC_EXT | GBP_EXT}, + {0x01193F, 0x01193F, GBP_PREP}, + {0x011940, 0x011940, GBP_SM}, + {0x011941, 0x011941, GBP_PREP}, + {0x011942, 0x011942, GBP_SM}, + {0x011943, 0x011943, GBP_INDC_EXT | GBP_EXT}, + {0x0119D1, 0x0119D3, GBP_SM}, + {0x0119D4, 0x0119D7, GBP_EXT}, + {0x0119DA, 0x0119DB, GBP_EXT}, + {0x0119DC, 0x0119DF, GBP_SM}, + {0x0119E0, 0x0119E0, GBP_EXT}, + {0x0119E4, 0x0119E4, GBP_SM}, + {0x011A01, 0x011A0A, GBP_EXT}, + {0x011A33, 0x011A33, GBP_EXT}, + {0x011A34, 0x011A34, GBP_INDC_EXT | GBP_EXT}, + {0x011A35, 0x011A38, GBP_EXT}, + {0x011A39, 0x011A39, GBP_SM}, + {0x011A3A, 0x011A3A, GBP_PREP}, + {0x011A3B, 0x011A3E, GBP_EXT}, + {0x011A47, 0x011A47, GBP_INDC_EXT | GBP_EXT}, + {0x011A51, 0x011A56, GBP_EXT}, + {0x011A57, 0x011A58, GBP_SM}, + {0x011A59, 0x011A5B, GBP_EXT}, + {0x011A84, 0x011A89, GBP_PREP}, + {0x011A8A, 0x011A96, GBP_EXT}, + {0x011A97, 0x011A97, GBP_SM}, + {0x011A98, 0x011A98, GBP_EXT}, + {0x011A99, 0x011A99, GBP_INDC_EXT | GBP_EXT}, + {0x011C2F, 0x011C2F, GBP_SM}, + {0x011C30, 0x011C36, GBP_EXT}, + {0x011C38, 0x011C3D, GBP_EXT}, + {0x011C3E, 0x011C3E, GBP_SM}, + {0x011C3F, 0x011C3F, GBP_EXT}, + {0x011C92, 0x011CA7, GBP_EXT}, + {0x011CA9, 0x011CA9, GBP_SM}, + {0x011CAA, 0x011CB0, GBP_EXT}, + {0x011CB1, 0x011CB1, GBP_SM}, + {0x011CB2, 0x011CB3, GBP_EXT}, + {0x011CB4, 0x011CB4, GBP_SM}, + {0x011CB5, 0x011CB6, GBP_EXT}, + {0x011D31, 0x011D36, GBP_EXT}, + {0x011D3A, 0x011D3A, GBP_EXT}, + {0x011D3C, 0x011D3D, GBP_EXT}, + {0x011D3F, 0x011D41, GBP_EXT}, + {0x011D42, 0x011D42, GBP_INDC_EXT | GBP_EXT}, + {0x011D43, 0x011D43, GBP_EXT}, + {0x011D44, 0x011D45, GBP_INDC_EXT | GBP_EXT}, + {0x011D46, 0x011D46, GBP_PREP}, + {0x011D47, 0x011D47, GBP_EXT}, + {0x011D8A, 0x011D8E, GBP_SM}, + {0x011D90, 0x011D91, GBP_EXT}, + {0x011D93, 0x011D94, GBP_SM}, + {0x011D95, 0x011D95, GBP_EXT}, + {0x011D96, 0x011D96, GBP_SM}, + {0x011D97, 0x011D97, GBP_INDC_EXT | GBP_EXT}, + {0x011EF3, 0x011EF4, GBP_EXT}, + {0x011EF5, 0x011EF6, GBP_SM}, + {0x011F00, 0x011F01, GBP_EXT}, + {0x011F02, 0x011F02, GBP_PREP}, + {0x011F03, 0x011F03, GBP_SM}, + {0x011F34, 0x011F35, GBP_SM}, + {0x011F36, 0x011F3A, GBP_EXT}, + {0x011F3E, 0x011F3F, GBP_SM}, + {0x011F40, 0x011F40, GBP_EXT}, + {0x011F41, 0x011F41, GBP_SM}, + {0x011F42, 0x011F42, GBP_INDC_EXT | GBP_EXT}, + {0x013430, 0x01343F, GBP_CTRL}, + {0x013440, 0x013440, GBP_EXT}, + {0x013447, 0x013455, GBP_EXT}, + {0x016AF0, 0x016AF4, GBP_INDC_EXT | GBP_EXT}, + {0x016B30, 0x016B36, GBP_INDC_EXT | GBP_EXT}, + {0x016F4F, 0x016F4F, GBP_EXT}, + {0x016F51, 0x016F87, GBP_SM}, + {0x016F8F, 0x016F92, GBP_EXT}, + {0x016FE4, 0x016FE4, GBP_EXT}, + {0x016FF0, 0x016FF1, GBP_SM}, + {0x01BC9D, 0x01BC9D, GBP_EXT}, + {0x01BC9E, 0x01BC9E, GBP_INDC_EXT | GBP_EXT}, + {0x01BCA0, 0x01BCA3, GBP_CTRL}, + {0x01CF00, 0x01CF2D, GBP_EXT}, + {0x01CF30, 0x01CF46, GBP_EXT}, + {0x01D165, 0x01D165, GBP_INDC_EXT | GBP_EXT}, + {0x01D166, 0x01D166, GBP_SM}, + {0x01D167, 0x01D169, GBP_INDC_EXT | GBP_EXT}, + {0x01D16D, 0x01D16D, GBP_SM}, + {0x01D16E, 0x01D172, GBP_INDC_EXT | GBP_EXT}, + {0x01D173, 0x01D17A, GBP_CTRL}, + {0x01D17B, 0x01D182, GBP_INDC_EXT | GBP_EXT}, + {0x01D185, 0x01D18B, GBP_INDC_EXT | GBP_EXT}, + {0x01D1AA, 0x01D1AD, GBP_INDC_EXT | GBP_EXT}, + {0x01D242, 0x01D244, GBP_INDC_EXT | GBP_EXT}, + {0x01DA00, 0x01DA36, GBP_EXT}, + {0x01DA3B, 0x01DA6C, GBP_EXT}, + {0x01DA75, 0x01DA75, GBP_EXT}, + {0x01DA84, 0x01DA84, GBP_EXT}, + {0x01DA9B, 0x01DA9F, GBP_EXT}, + {0x01DAA1, 0x01DAAF, GBP_EXT}, + {0x01E000, 0x01E006, GBP_INDC_EXT | GBP_EXT}, + {0x01E008, 0x01E018, GBP_INDC_EXT | GBP_EXT}, + {0x01E01B, 0x01E021, GBP_INDC_EXT | GBP_EXT}, + {0x01E023, 0x01E024, GBP_INDC_EXT | GBP_EXT}, + {0x01E026, 0x01E02A, GBP_INDC_EXT | GBP_EXT}, + {0x01E08F, 0x01E08F, GBP_INDC_EXT | GBP_EXT}, + {0x01E130, 0x01E136, GBP_INDC_EXT | GBP_EXT}, + {0x01E2AE, 0x01E2AE, GBP_INDC_EXT | GBP_EXT}, + {0x01E2EC, 0x01E2EF, GBP_INDC_EXT | GBP_EXT}, + {0x01E4EC, 0x01E4EF, GBP_INDC_EXT | GBP_EXT}, + {0x01E8D0, 0x01E8D6, GBP_INDC_EXT | GBP_EXT}, + {0x01E944, 0x01E94A, GBP_INDC_EXT | GBP_EXT}, + {0x01F000, 0x01F0FF, GBP_PIC}, + {0x01F10D, 0x01F10F, GBP_PIC}, + {0x01F12F, 0x01F12F, GBP_PIC}, + {0x01F16C, 0x01F171, GBP_PIC}, + {0x01F17E, 0x01F17F, GBP_PIC}, + {0x01F18E, 0x01F18E, GBP_PIC}, + {0x01F191, 0x01F19A, GBP_PIC}, + {0x01F1AD, 0x01F1E5, GBP_PIC}, + {0x01F1E6, 0x01F1FF, GBP_RI}, + {0x01F201, 0x01F20F, GBP_PIC}, + {0x01F21A, 0x01F21A, GBP_PIC}, + {0x01F22F, 0x01F22F, GBP_PIC}, + {0x01F232, 0x01F23A, GBP_PIC}, + {0x01F23C, 0x01F23F, GBP_PIC}, + {0x01F249, 0x01F3FA, GBP_PIC}, + {0x01F3FB, 0x01F3FF, GBP_EXT}, + {0x01F400, 0x01F53D, GBP_PIC}, + {0x01F546, 0x01F64F, GBP_PIC}, + {0x01F680, 0x01F6FF, GBP_PIC}, + {0x01F774, 0x01F77F, GBP_PIC}, + {0x01F7D5, 0x01F7FF, GBP_PIC}, + {0x01F80C, 0x01F80F, GBP_PIC}, + {0x01F848, 0x01F84F, GBP_PIC}, + {0x01F85A, 0x01F85F, GBP_PIC}, + {0x01F888, 0x01F88F, GBP_PIC}, + {0x01F8AE, 0x01F8FF, GBP_PIC}, + {0x01F90C, 0x01F93A, GBP_PIC}, + {0x01F93C, 0x01F945, GBP_PIC}, + {0x01F947, 0x01FAFF, GBP_PIC}, + {0x01FC00, 0x01FFFD, GBP_PIC}, + {0x0E0000, 0x0E001F, GBP_CTRL}, + {0x0E0020, 0x0E007F, GBP_EXT}, + {0x0E0080, 0x0E00FF, GBP_CTRL}, + {0x0E0100, 0x0E01EF, GBP_EXT}, + {0x0E01F0, 0x0E0FFF, GBP_CTRL}, +}; + +#endif /* !RUNE_INTERNAL_GBRK_LOOKUP_H */ diff --git a/vendor/librune/include/internal/qmacros.h b/vendor/librune/include/internal/qmacros.h new file mode 100644 index 0000000..5369c48 --- /dev/null +++ b/vendor/librune/include/internal/qmacros.h @@ -0,0 +1,25 @@ +#ifndef RUNE_INTERNAL_QMACROS_H +#define RUNE_INTERNAL_QMACROS_H + +/* Macros for qualifier-preserving functions. These are wrappers around some + functions declared above which will return a const-qualified pointer if the + input string is const-qualified, and a non-const-qualified pointer otherwise. + + The macros are taken from the N3020 proposal for C23. */ + +/* clang-format off */ +#define _RUNE_PTR_IS_CONST(P) \ + _Generic(1 ? (P) : (void *)(P), \ + const void *: 1, \ + default: 0) +#define _RUNE_STATIC_IF(P, T, E) \ + _Generic(&(char[!!(P) + 1]){0}, \ + char(*)[2]: T, \ + char(*)[1]: E) +#define _RUNE_Q_PTR(F, S, ...) \ + _RUNE_STATIC_IF(_RUNE_PTR_IS_CONST((S)), \ + (const char8_t *)(F)(__VA_ARGS__), \ + ( char8_t *)(F)(__VA_ARGS__)) +/* clang-format on */ + +#endif /* !RUNE_INTERNAL_QMACROS_H */ diff --git a/vendor/librune/include/internal/rtype/dt.h b/vendor/librune/include/internal/rtype/dt.h new file mode 100644 index 0000000..6e82c63 --- /dev/null +++ b/vendor/librune/include/internal/rtype/dt.h @@ -0,0 +1,878 @@ +/* This file is autogenerated by gen/rtype-dt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_DT_H +#define RUNE_INTERNAL_RTYPE_DT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_dt_bf rtype_dt_lat1_tbl[] = { + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_NOBREAK, DT_NONE, DT_NONE, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_NONE, + DT_COMPAT, DT_NONE, DT_SUPER, DT_NONE, + DT_NONE, DT_NONE, DT_NONE, DT_COMPAT, + DT_NONE, DT_NONE, DT_SUPER, DT_SUPER, + DT_COMPAT, DT_COMPAT, DT_NONE, DT_NONE, + DT_COMPAT, DT_SUPER, DT_SUPER, DT_NONE, + DT_FRACTION, DT_FRACTION, DT_FRACTION, DT_NONE, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_NONE, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_NONE, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_NONE, + DT_NONE, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_NONE, DT_NONE, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_NONE, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_NONE, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, DT_NONE, + DT_NONE, DT_CANONICAL, DT_CANONICAL, DT_CANONICAL, + DT_CANONICAL, DT_CANONICAL, DT_NONE, DT_CANONICAL, +}; + +static const struct { + rune lo, hi; + rprop_dt_bf val; +} rtype_dt_tbl[] = { + {RUNE_C(0x0000A0), RUNE_C(0x0000A0), DT_NOBREAK}, + {RUNE_C(0x0000A8), RUNE_C(0x0000A8), DT_COMPAT}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA), DT_SUPER}, + {RUNE_C(0x0000AF), RUNE_C(0x0000AF), DT_COMPAT}, + {RUNE_C(0x0000B2), RUNE_C(0x0000B3), DT_SUPER}, + {RUNE_C(0x0000B4), RUNE_C(0x0000B5), DT_COMPAT}, + {RUNE_C(0x0000B8), RUNE_C(0x0000B8), DT_COMPAT}, + {RUNE_C(0x0000B9), RUNE_C(0x0000BA), DT_SUPER}, + {RUNE_C(0x0000BC), RUNE_C(0x0000BE), DT_FRACTION}, + {RUNE_C(0x0000C0), RUNE_C(0x0000C5), DT_CANONICAL}, + {RUNE_C(0x0000C7), RUNE_C(0x0000CF), DT_CANONICAL}, + {RUNE_C(0x0000D1), RUNE_C(0x0000D6), DT_CANONICAL}, + {RUNE_C(0x0000D9), RUNE_C(0x0000DD), DT_CANONICAL}, + {RUNE_C(0x0000E0), RUNE_C(0x0000E5), DT_CANONICAL}, + {RUNE_C(0x0000E7), RUNE_C(0x0000EF), DT_CANONICAL}, + {RUNE_C(0x0000F1), RUNE_C(0x0000F6), DT_CANONICAL}, + {RUNE_C(0x0000F9), RUNE_C(0x0000FD), DT_CANONICAL}, + {RUNE_C(0x0000FF), RUNE_C(0x00010F), DT_CANONICAL}, + {RUNE_C(0x000112), RUNE_C(0x000125), DT_CANONICAL}, + {RUNE_C(0x000128), RUNE_C(0x000130), DT_CANONICAL}, + {RUNE_C(0x000132), RUNE_C(0x000133), DT_COMPAT}, + {RUNE_C(0x000134), RUNE_C(0x000137), DT_CANONICAL}, + {RUNE_C(0x000139), RUNE_C(0x00013E), DT_CANONICAL}, + {RUNE_C(0x00013F), RUNE_C(0x000140), DT_COMPAT}, + {RUNE_C(0x000143), RUNE_C(0x000148), DT_CANONICAL}, + {RUNE_C(0x000149), RUNE_C(0x000149), DT_COMPAT}, + {RUNE_C(0x00014C), RUNE_C(0x000151), DT_CANONICAL}, + {RUNE_C(0x000154), RUNE_C(0x000165), DT_CANONICAL}, + {RUNE_C(0x000168), RUNE_C(0x00017E), DT_CANONICAL}, + {RUNE_C(0x00017F), RUNE_C(0x00017F), DT_COMPAT}, + {RUNE_C(0x0001A0), RUNE_C(0x0001A1), DT_CANONICAL}, + {RUNE_C(0x0001AF), RUNE_C(0x0001B0), DT_CANONICAL}, + {RUNE_C(0x0001C4), RUNE_C(0x0001CC), DT_COMPAT}, + {RUNE_C(0x0001CD), RUNE_C(0x0001DC), DT_CANONICAL}, + {RUNE_C(0x0001DE), RUNE_C(0x0001E3), DT_CANONICAL}, + {RUNE_C(0x0001E6), RUNE_C(0x0001F0), DT_CANONICAL}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F3), DT_COMPAT}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F5), DT_CANONICAL}, + {RUNE_C(0x0001F8), RUNE_C(0x00021B), DT_CANONICAL}, + {RUNE_C(0x00021E), RUNE_C(0x00021F), DT_CANONICAL}, + {RUNE_C(0x000226), RUNE_C(0x000233), DT_CANONICAL}, + {RUNE_C(0x0002B0), RUNE_C(0x0002B8), DT_SUPER}, + {RUNE_C(0x0002D8), RUNE_C(0x0002DD), DT_COMPAT}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4), DT_SUPER}, + {RUNE_C(0x000340), RUNE_C(0x000341), DT_CANONICAL}, + {RUNE_C(0x000343), RUNE_C(0x000344), DT_CANONICAL}, + {RUNE_C(0x000374), RUNE_C(0x000374), DT_CANONICAL}, + {RUNE_C(0x00037A), RUNE_C(0x00037A), DT_COMPAT}, + {RUNE_C(0x00037E), RUNE_C(0x00037E), DT_CANONICAL}, + {RUNE_C(0x000384), RUNE_C(0x000384), DT_COMPAT}, + {RUNE_C(0x000385), RUNE_C(0x00038A), DT_CANONICAL}, + {RUNE_C(0x00038C), RUNE_C(0x00038C), DT_CANONICAL}, + {RUNE_C(0x00038E), RUNE_C(0x000390), DT_CANONICAL}, + {RUNE_C(0x0003AA), RUNE_C(0x0003B0), DT_CANONICAL}, + {RUNE_C(0x0003CA), RUNE_C(0x0003CE), DT_CANONICAL}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D2), DT_COMPAT}, + {RUNE_C(0x0003D3), RUNE_C(0x0003D4), DT_CANONICAL}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D6), DT_COMPAT}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F2), DT_COMPAT}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F5), DT_COMPAT}, + {RUNE_C(0x0003F9), RUNE_C(0x0003F9), DT_COMPAT}, + {RUNE_C(0x000400), RUNE_C(0x000401), DT_CANONICAL}, + {RUNE_C(0x000403), RUNE_C(0x000403), DT_CANONICAL}, + {RUNE_C(0x000407), RUNE_C(0x000407), DT_CANONICAL}, + {RUNE_C(0x00040C), RUNE_C(0x00040E), DT_CANONICAL}, + {RUNE_C(0x000419), RUNE_C(0x000419), DT_CANONICAL}, + {RUNE_C(0x000439), RUNE_C(0x000439), DT_CANONICAL}, + {RUNE_C(0x000450), RUNE_C(0x000451), DT_CANONICAL}, + {RUNE_C(0x000453), RUNE_C(0x000453), DT_CANONICAL}, + {RUNE_C(0x000457), RUNE_C(0x000457), DT_CANONICAL}, + {RUNE_C(0x00045C), RUNE_C(0x00045E), DT_CANONICAL}, + {RUNE_C(0x000476), RUNE_C(0x000477), DT_CANONICAL}, + {RUNE_C(0x0004C1), RUNE_C(0x0004C2), DT_CANONICAL}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D3), DT_CANONICAL}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D7), DT_CANONICAL}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DF), DT_CANONICAL}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E7), DT_CANONICAL}, + {RUNE_C(0x0004EA), RUNE_C(0x0004F5), DT_CANONICAL}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F9), DT_CANONICAL}, + {RUNE_C(0x000587), RUNE_C(0x000587), DT_COMPAT}, + {RUNE_C(0x000622), RUNE_C(0x000626), DT_CANONICAL}, + {RUNE_C(0x000675), RUNE_C(0x000678), DT_COMPAT}, + {RUNE_C(0x0006C0), RUNE_C(0x0006C0), DT_CANONICAL}, + {RUNE_C(0x0006C2), RUNE_C(0x0006C2), DT_CANONICAL}, + {RUNE_C(0x0006D3), RUNE_C(0x0006D3), DT_CANONICAL}, + {RUNE_C(0x000929), RUNE_C(0x000929), DT_CANONICAL}, + {RUNE_C(0x000931), RUNE_C(0x000931), DT_CANONICAL}, + {RUNE_C(0x000934), RUNE_C(0x000934), DT_CANONICAL}, + {RUNE_C(0x000958), RUNE_C(0x00095F), DT_CANONICAL}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC), DT_CANONICAL}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD), DT_CANONICAL}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF), DT_CANONICAL}, + {RUNE_C(0x000A33), RUNE_C(0x000A33), DT_CANONICAL}, + {RUNE_C(0x000A36), RUNE_C(0x000A36), DT_CANONICAL}, + {RUNE_C(0x000A59), RUNE_C(0x000A5B), DT_CANONICAL}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E), DT_CANONICAL}, + {RUNE_C(0x000B48), RUNE_C(0x000B48), DT_CANONICAL}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C), DT_CANONICAL}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D), DT_CANONICAL}, + {RUNE_C(0x000B94), RUNE_C(0x000B94), DT_CANONICAL}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC), DT_CANONICAL}, + {RUNE_C(0x000C48), RUNE_C(0x000C48), DT_CANONICAL}, + {RUNE_C(0x000CC0), RUNE_C(0x000CC0), DT_CANONICAL}, + {RUNE_C(0x000CC7), RUNE_C(0x000CC8), DT_CANONICAL}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCB), DT_CANONICAL}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C), DT_CANONICAL}, + {RUNE_C(0x000DDA), RUNE_C(0x000DDA), DT_CANONICAL}, + {RUNE_C(0x000DDC), RUNE_C(0x000DDE), DT_CANONICAL}, + {RUNE_C(0x000E33), RUNE_C(0x000E33), DT_COMPAT}, + {RUNE_C(0x000EB3), RUNE_C(0x000EB3), DT_COMPAT}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDD), DT_COMPAT}, + {RUNE_C(0x000F0C), RUNE_C(0x000F0C), DT_NOBREAK}, + {RUNE_C(0x000F43), RUNE_C(0x000F43), DT_CANONICAL}, + {RUNE_C(0x000F4D), RUNE_C(0x000F4D), DT_CANONICAL}, + {RUNE_C(0x000F52), RUNE_C(0x000F52), DT_CANONICAL}, + {RUNE_C(0x000F57), RUNE_C(0x000F57), DT_CANONICAL}, + {RUNE_C(0x000F5C), RUNE_C(0x000F5C), DT_CANONICAL}, + {RUNE_C(0x000F69), RUNE_C(0x000F69), DT_CANONICAL}, + {RUNE_C(0x000F73), RUNE_C(0x000F73), DT_CANONICAL}, + {RUNE_C(0x000F75), RUNE_C(0x000F76), DT_CANONICAL}, + {RUNE_C(0x000F77), RUNE_C(0x000F77), DT_COMPAT}, + {RUNE_C(0x000F78), RUNE_C(0x000F78), DT_CANONICAL}, + {RUNE_C(0x000F79), RUNE_C(0x000F79), DT_COMPAT}, + {RUNE_C(0x000F81), RUNE_C(0x000F81), DT_CANONICAL}, + {RUNE_C(0x000F93), RUNE_C(0x000F93), DT_CANONICAL}, + {RUNE_C(0x000F9D), RUNE_C(0x000F9D), DT_CANONICAL}, + {RUNE_C(0x000FA2), RUNE_C(0x000FA2), DT_CANONICAL}, + {RUNE_C(0x000FA7), RUNE_C(0x000FA7), DT_CANONICAL}, + {RUNE_C(0x000FAC), RUNE_C(0x000FAC), DT_CANONICAL}, + {RUNE_C(0x000FB9), RUNE_C(0x000FB9), DT_CANONICAL}, + {RUNE_C(0x001026), RUNE_C(0x001026), DT_CANONICAL}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC), DT_SUPER}, + {RUNE_C(0x001B06), RUNE_C(0x001B06), DT_CANONICAL}, + {RUNE_C(0x001B08), RUNE_C(0x001B08), DT_CANONICAL}, + {RUNE_C(0x001B0A), RUNE_C(0x001B0A), DT_CANONICAL}, + {RUNE_C(0x001B0C), RUNE_C(0x001B0C), DT_CANONICAL}, + {RUNE_C(0x001B0E), RUNE_C(0x001B0E), DT_CANONICAL}, + {RUNE_C(0x001B12), RUNE_C(0x001B12), DT_CANONICAL}, + {RUNE_C(0x001B3B), RUNE_C(0x001B3B), DT_CANONICAL}, + {RUNE_C(0x001B3D), RUNE_C(0x001B3D), DT_CANONICAL}, + {RUNE_C(0x001B40), RUNE_C(0x001B41), DT_CANONICAL}, + {RUNE_C(0x001B43), RUNE_C(0x001B43), DT_CANONICAL}, + {RUNE_C(0x001D2C), RUNE_C(0x001D2E), DT_SUPER}, + {RUNE_C(0x001D30), RUNE_C(0x001D3A), DT_SUPER}, + {RUNE_C(0x001D3C), RUNE_C(0x001D4D), DT_SUPER}, + {RUNE_C(0x001D4F), RUNE_C(0x001D61), DT_SUPER}, + {RUNE_C(0x001D62), RUNE_C(0x001D6A), DT_SUB}, + {RUNE_C(0x001D78), RUNE_C(0x001D78), DT_SUPER}, + {RUNE_C(0x001D9B), RUNE_C(0x001DBF), DT_SUPER}, + {RUNE_C(0x001E00), RUNE_C(0x001E99), DT_CANONICAL}, + {RUNE_C(0x001E9A), RUNE_C(0x001E9A), DT_COMPAT}, + {RUNE_C(0x001E9B), RUNE_C(0x001E9B), DT_CANONICAL}, + {RUNE_C(0x001EA0), RUNE_C(0x001EF9), DT_CANONICAL}, + {RUNE_C(0x001F00), RUNE_C(0x001F15), DT_CANONICAL}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D), DT_CANONICAL}, + {RUNE_C(0x001F20), RUNE_C(0x001F45), DT_CANONICAL}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D), DT_CANONICAL}, + {RUNE_C(0x001F50), RUNE_C(0x001F57), DT_CANONICAL}, + {RUNE_C(0x001F59), RUNE_C(0x001F59), DT_CANONICAL}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B), DT_CANONICAL}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D), DT_CANONICAL}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D), DT_CANONICAL}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4), DT_CANONICAL}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC), DT_CANONICAL}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD), DT_COMPAT}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE), DT_CANONICAL}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC0), DT_COMPAT}, + {RUNE_C(0x001FC1), RUNE_C(0x001FC4), DT_CANONICAL}, + {RUNE_C(0x001FC6), RUNE_C(0x001FD3), DT_CANONICAL}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB), DT_CANONICAL}, + {RUNE_C(0x001FDD), RUNE_C(0x001FEF), DT_CANONICAL}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4), DT_CANONICAL}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFD), DT_CANONICAL}, + {RUNE_C(0x001FFE), RUNE_C(0x001FFE), DT_COMPAT}, + {RUNE_C(0x002000), RUNE_C(0x002001), DT_CANONICAL}, + {RUNE_C(0x002002), RUNE_C(0x002006), DT_COMPAT}, + {RUNE_C(0x002007), RUNE_C(0x002007), DT_NOBREAK}, + {RUNE_C(0x002008), RUNE_C(0x00200A), DT_COMPAT}, + {RUNE_C(0x002011), RUNE_C(0x002011), DT_NOBREAK}, + {RUNE_C(0x002017), RUNE_C(0x002017), DT_COMPAT}, + {RUNE_C(0x002024), RUNE_C(0x002026), DT_COMPAT}, + {RUNE_C(0x00202F), RUNE_C(0x00202F), DT_NOBREAK}, + {RUNE_C(0x002033), RUNE_C(0x002034), DT_COMPAT}, + {RUNE_C(0x002036), RUNE_C(0x002037), DT_COMPAT}, + {RUNE_C(0x00203C), RUNE_C(0x00203C), DT_COMPAT}, + {RUNE_C(0x00203E), RUNE_C(0x00203E), DT_COMPAT}, + {RUNE_C(0x002047), RUNE_C(0x002049), DT_COMPAT}, + {RUNE_C(0x002057), RUNE_C(0x002057), DT_COMPAT}, + {RUNE_C(0x00205F), RUNE_C(0x00205F), DT_COMPAT}, + {RUNE_C(0x002070), RUNE_C(0x002071), DT_SUPER}, + {RUNE_C(0x002074), RUNE_C(0x00207F), DT_SUPER}, + {RUNE_C(0x002080), RUNE_C(0x00208E), DT_SUB}, + {RUNE_C(0x002090), RUNE_C(0x00209C), DT_SUB}, + {RUNE_C(0x0020A8), RUNE_C(0x0020A8), DT_COMPAT}, + {RUNE_C(0x002100), RUNE_C(0x002101), DT_COMPAT}, + {RUNE_C(0x002102), RUNE_C(0x002102), DT_FONT}, + {RUNE_C(0x002103), RUNE_C(0x002103), DT_COMPAT}, + {RUNE_C(0x002105), RUNE_C(0x002107), DT_COMPAT}, + {RUNE_C(0x002109), RUNE_C(0x002109), DT_COMPAT}, + {RUNE_C(0x00210A), RUNE_C(0x002113), DT_FONT}, + {RUNE_C(0x002115), RUNE_C(0x002115), DT_FONT}, + {RUNE_C(0x002116), RUNE_C(0x002116), DT_COMPAT}, + {RUNE_C(0x002119), RUNE_C(0x00211D), DT_FONT}, + {RUNE_C(0x002120), RUNE_C(0x002120), DT_SUPER}, + {RUNE_C(0x002121), RUNE_C(0x002121), DT_COMPAT}, + {RUNE_C(0x002122), RUNE_C(0x002122), DT_SUPER}, + {RUNE_C(0x002124), RUNE_C(0x002124), DT_FONT}, + {RUNE_C(0x002126), RUNE_C(0x002126), DT_CANONICAL}, + {RUNE_C(0x002128), RUNE_C(0x002128), DT_FONT}, + {RUNE_C(0x00212A), RUNE_C(0x00212B), DT_CANONICAL}, + {RUNE_C(0x00212C), RUNE_C(0x00212D), DT_FONT}, + {RUNE_C(0x00212F), RUNE_C(0x002131), DT_FONT}, + {RUNE_C(0x002133), RUNE_C(0x002134), DT_FONT}, + {RUNE_C(0x002135), RUNE_C(0x002138), DT_COMPAT}, + {RUNE_C(0x002139), RUNE_C(0x002139), DT_FONT}, + {RUNE_C(0x00213B), RUNE_C(0x00213B), DT_COMPAT}, + {RUNE_C(0x00213C), RUNE_C(0x002140), DT_FONT}, + {RUNE_C(0x002145), RUNE_C(0x002149), DT_FONT}, + {RUNE_C(0x002150), RUNE_C(0x00215F), DT_FRACTION}, + {RUNE_C(0x002160), RUNE_C(0x00217F), DT_COMPAT}, + {RUNE_C(0x002189), RUNE_C(0x002189), DT_FRACTION}, + {RUNE_C(0x00219A), RUNE_C(0x00219B), DT_CANONICAL}, + {RUNE_C(0x0021AE), RUNE_C(0x0021AE), DT_CANONICAL}, + {RUNE_C(0x0021CD), RUNE_C(0x0021CF), DT_CANONICAL}, + {RUNE_C(0x002204), RUNE_C(0x002204), DT_CANONICAL}, + {RUNE_C(0x002209), RUNE_C(0x002209), DT_CANONICAL}, + {RUNE_C(0x00220C), RUNE_C(0x00220C), DT_CANONICAL}, + {RUNE_C(0x002224), RUNE_C(0x002224), DT_CANONICAL}, + {RUNE_C(0x002226), RUNE_C(0x002226), DT_CANONICAL}, + {RUNE_C(0x00222C), RUNE_C(0x00222D), DT_COMPAT}, + {RUNE_C(0x00222F), RUNE_C(0x002230), DT_COMPAT}, + {RUNE_C(0x002241), RUNE_C(0x002241), DT_CANONICAL}, + {RUNE_C(0x002244), RUNE_C(0x002244), DT_CANONICAL}, + {RUNE_C(0x002247), RUNE_C(0x002247), DT_CANONICAL}, + {RUNE_C(0x002249), RUNE_C(0x002249), DT_CANONICAL}, + {RUNE_C(0x002260), RUNE_C(0x002260), DT_CANONICAL}, + {RUNE_C(0x002262), RUNE_C(0x002262), DT_CANONICAL}, + {RUNE_C(0x00226D), RUNE_C(0x002271), DT_CANONICAL}, + {RUNE_C(0x002274), RUNE_C(0x002275), DT_CANONICAL}, + {RUNE_C(0x002278), RUNE_C(0x002279), DT_CANONICAL}, + {RUNE_C(0x002280), RUNE_C(0x002281), DT_CANONICAL}, + {RUNE_C(0x002284), RUNE_C(0x002285), DT_CANONICAL}, + {RUNE_C(0x002288), RUNE_C(0x002289), DT_CANONICAL}, + {RUNE_C(0x0022AC), RUNE_C(0x0022AF), DT_CANONICAL}, + {RUNE_C(0x0022E0), RUNE_C(0x0022E3), DT_CANONICAL}, + {RUNE_C(0x0022EA), RUNE_C(0x0022ED), DT_CANONICAL}, + {RUNE_C(0x002329), RUNE_C(0x00232A), DT_CANONICAL}, + {RUNE_C(0x002460), RUNE_C(0x002473), DT_CIRCLE}, + {RUNE_C(0x002474), RUNE_C(0x0024B5), DT_COMPAT}, + {RUNE_C(0x0024B6), RUNE_C(0x0024EA), DT_CIRCLE}, + {RUNE_C(0x002A0C), RUNE_C(0x002A0C), DT_COMPAT}, + {RUNE_C(0x002A74), RUNE_C(0x002A76), DT_COMPAT}, + {RUNE_C(0x002ADC), RUNE_C(0x002ADC), DT_CANONICAL}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7C), DT_SUB}, + {RUNE_C(0x002C7D), RUNE_C(0x002C7D), DT_SUPER}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F), DT_SUPER}, + {RUNE_C(0x002E9F), RUNE_C(0x002E9F), DT_COMPAT}, + {RUNE_C(0x002EF3), RUNE_C(0x002EF3), DT_COMPAT}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5), DT_COMPAT}, + {RUNE_C(0x003000), RUNE_C(0x003000), DT_WIDE}, + {RUNE_C(0x003036), RUNE_C(0x003036), DT_COMPAT}, + {RUNE_C(0x003038), RUNE_C(0x00303A), DT_COMPAT}, + {RUNE_C(0x00304C), RUNE_C(0x00304C), DT_CANONICAL}, + {RUNE_C(0x00304E), RUNE_C(0x00304E), DT_CANONICAL}, + {RUNE_C(0x003050), RUNE_C(0x003050), DT_CANONICAL}, + {RUNE_C(0x003052), RUNE_C(0x003052), DT_CANONICAL}, + {RUNE_C(0x003054), RUNE_C(0x003054), DT_CANONICAL}, + {RUNE_C(0x003056), RUNE_C(0x003056), DT_CANONICAL}, + {RUNE_C(0x003058), RUNE_C(0x003058), DT_CANONICAL}, + {RUNE_C(0x00305A), RUNE_C(0x00305A), DT_CANONICAL}, + {RUNE_C(0x00305C), RUNE_C(0x00305C), DT_CANONICAL}, + {RUNE_C(0x00305E), RUNE_C(0x00305E), DT_CANONICAL}, + {RUNE_C(0x003060), RUNE_C(0x003060), DT_CANONICAL}, + {RUNE_C(0x003062), RUNE_C(0x003062), DT_CANONICAL}, + {RUNE_C(0x003065), RUNE_C(0x003065), DT_CANONICAL}, + {RUNE_C(0x003067), RUNE_C(0x003067), DT_CANONICAL}, + {RUNE_C(0x003069), RUNE_C(0x003069), DT_CANONICAL}, + {RUNE_C(0x003070), RUNE_C(0x003071), DT_CANONICAL}, + {RUNE_C(0x003073), RUNE_C(0x003074), DT_CANONICAL}, + {RUNE_C(0x003076), RUNE_C(0x003077), DT_CANONICAL}, + {RUNE_C(0x003079), RUNE_C(0x00307A), DT_CANONICAL}, + {RUNE_C(0x00307C), RUNE_C(0x00307D), DT_CANONICAL}, + {RUNE_C(0x003094), RUNE_C(0x003094), DT_CANONICAL}, + {RUNE_C(0x00309B), RUNE_C(0x00309C), DT_COMPAT}, + {RUNE_C(0x00309E), RUNE_C(0x00309E), DT_CANONICAL}, + {RUNE_C(0x00309F), RUNE_C(0x00309F), DT_VERTICAL}, + {RUNE_C(0x0030AC), RUNE_C(0x0030AC), DT_CANONICAL}, + {RUNE_C(0x0030AE), RUNE_C(0x0030AE), DT_CANONICAL}, + {RUNE_C(0x0030B0), RUNE_C(0x0030B0), DT_CANONICAL}, + {RUNE_C(0x0030B2), RUNE_C(0x0030B2), DT_CANONICAL}, + {RUNE_C(0x0030B4), RUNE_C(0x0030B4), DT_CANONICAL}, + {RUNE_C(0x0030B6), RUNE_C(0x0030B6), DT_CANONICAL}, + {RUNE_C(0x0030B8), RUNE_C(0x0030B8), DT_CANONICAL}, + {RUNE_C(0x0030BA), RUNE_C(0x0030BA), DT_CANONICAL}, + {RUNE_C(0x0030BC), RUNE_C(0x0030BC), DT_CANONICAL}, + {RUNE_C(0x0030BE), RUNE_C(0x0030BE), DT_CANONICAL}, + {RUNE_C(0x0030C0), RUNE_C(0x0030C0), DT_CANONICAL}, + {RUNE_C(0x0030C2), RUNE_C(0x0030C2), DT_CANONICAL}, + {RUNE_C(0x0030C5), RUNE_C(0x0030C5), DT_CANONICAL}, + {RUNE_C(0x0030C7), RUNE_C(0x0030C7), DT_CANONICAL}, + {RUNE_C(0x0030C9), RUNE_C(0x0030C9), DT_CANONICAL}, + {RUNE_C(0x0030D0), RUNE_C(0x0030D1), DT_CANONICAL}, + {RUNE_C(0x0030D3), RUNE_C(0x0030D4), DT_CANONICAL}, + {RUNE_C(0x0030D6), RUNE_C(0x0030D7), DT_CANONICAL}, + {RUNE_C(0x0030D9), RUNE_C(0x0030DA), DT_CANONICAL}, + {RUNE_C(0x0030DC), RUNE_C(0x0030DD), DT_CANONICAL}, + {RUNE_C(0x0030F4), RUNE_C(0x0030F4), DT_CANONICAL}, + {RUNE_C(0x0030F7), RUNE_C(0x0030FA), DT_CANONICAL}, + {RUNE_C(0x0030FE), RUNE_C(0x0030FE), DT_CANONICAL}, + {RUNE_C(0x0030FF), RUNE_C(0x0030FF), DT_VERTICAL}, + {RUNE_C(0x003131), RUNE_C(0x00318E), DT_COMPAT}, + {RUNE_C(0x003192), RUNE_C(0x00319F), DT_SUPER}, + {RUNE_C(0x003200), RUNE_C(0x00321E), DT_COMPAT}, + {RUNE_C(0x003220), RUNE_C(0x003243), DT_COMPAT}, + {RUNE_C(0x003244), RUNE_C(0x003247), DT_CIRCLE}, + {RUNE_C(0x003250), RUNE_C(0x003250), DT_SQUARE}, + {RUNE_C(0x003251), RUNE_C(0x00327E), DT_CIRCLE}, + {RUNE_C(0x003280), RUNE_C(0x0032BF), DT_CIRCLE}, + {RUNE_C(0x0032C0), RUNE_C(0x0032CB), DT_COMPAT}, + {RUNE_C(0x0032CC), RUNE_C(0x0032CF), DT_SQUARE}, + {RUNE_C(0x0032D0), RUNE_C(0x0032FE), DT_CIRCLE}, + {RUNE_C(0x0032FF), RUNE_C(0x003357), DT_SQUARE}, + {RUNE_C(0x003358), RUNE_C(0x003370), DT_COMPAT}, + {RUNE_C(0x003371), RUNE_C(0x0033DF), DT_SQUARE}, + {RUNE_C(0x0033E0), RUNE_C(0x0033FE), DT_COMPAT}, + {RUNE_C(0x0033FF), RUNE_C(0x0033FF), DT_SQUARE}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D), DT_SUPER}, + {RUNE_C(0x00A770), RUNE_C(0x00A770), DT_SUPER}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4), DT_SUPER}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9), DT_SUPER}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB5F), DT_SUPER}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB69), DT_SUPER}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3), DT_CANONICAL}, + {RUNE_C(0x00F900), RUNE_C(0x00FA0D), DT_CANONICAL}, + {RUNE_C(0x00FA10), RUNE_C(0x00FA10), DT_CANONICAL}, + {RUNE_C(0x00FA12), RUNE_C(0x00FA12), DT_CANONICAL}, + {RUNE_C(0x00FA15), RUNE_C(0x00FA1E), DT_CANONICAL}, + {RUNE_C(0x00FA20), RUNE_C(0x00FA20), DT_CANONICAL}, + {RUNE_C(0x00FA22), RUNE_C(0x00FA22), DT_CANONICAL}, + {RUNE_C(0x00FA25), RUNE_C(0x00FA26), DT_CANONICAL}, + {RUNE_C(0x00FA2A), RUNE_C(0x00FA6D), DT_CANONICAL}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9), DT_CANONICAL}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06), DT_COMPAT}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17), DT_COMPAT}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D), DT_CANONICAL}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB1F), DT_CANONICAL}, + {RUNE_C(0x00FB20), RUNE_C(0x00FB29), DT_FONT}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36), DT_CANONICAL}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C), DT_CANONICAL}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E), DT_CANONICAL}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41), DT_CANONICAL}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44), DT_CANONICAL}, + {RUNE_C(0x00FB46), RUNE_C(0x00FB4E), DT_CANONICAL}, + {RUNE_C(0x00FB4F), RUNE_C(0x00FB4F), DT_COMPAT}, + {RUNE_C(0x00FB50), RUNE_C(0x00FB50), DT_ISOLATED}, + {RUNE_C(0x00FB51), RUNE_C(0x00FB51), DT_FINAL}, + {RUNE_C(0x00FB52), RUNE_C(0x00FB52), DT_ISOLATED}, + {RUNE_C(0x00FB53), RUNE_C(0x00FB53), DT_FINAL}, + {RUNE_C(0x00FB54), RUNE_C(0x00FB54), DT_INITIAL}, + {RUNE_C(0x00FB55), RUNE_C(0x00FB55), DT_MEDIAL}, + {RUNE_C(0x00FB56), RUNE_C(0x00FB56), DT_ISOLATED}, + {RUNE_C(0x00FB57), RUNE_C(0x00FB57), DT_FINAL}, + {RUNE_C(0x00FB58), RUNE_C(0x00FB58), DT_INITIAL}, + {RUNE_C(0x00FB59), RUNE_C(0x00FB59), DT_MEDIAL}, + {RUNE_C(0x00FB5A), RUNE_C(0x00FB5A), DT_ISOLATED}, + {RUNE_C(0x00FB5B), RUNE_C(0x00FB5B), DT_FINAL}, + {RUNE_C(0x00FB5C), RUNE_C(0x00FB5C), DT_INITIAL}, + {RUNE_C(0x00FB5D), RUNE_C(0x00FB5D), DT_MEDIAL}, + {RUNE_C(0x00FB5E), RUNE_C(0x00FB5E), DT_ISOLATED}, + {RUNE_C(0x00FB5F), RUNE_C(0x00FB5F), DT_FINAL}, + {RUNE_C(0x00FB60), RUNE_C(0x00FB60), DT_INITIAL}, + {RUNE_C(0x00FB61), RUNE_C(0x00FB61), DT_MEDIAL}, + {RUNE_C(0x00FB62), RUNE_C(0x00FB62), DT_ISOLATED}, + {RUNE_C(0x00FB63), RUNE_C(0x00FB63), DT_FINAL}, + {RUNE_C(0x00FB64), RUNE_C(0x00FB64), DT_INITIAL}, + {RUNE_C(0x00FB65), RUNE_C(0x00FB65), DT_MEDIAL}, + {RUNE_C(0x00FB66), RUNE_C(0x00FB66), DT_ISOLATED}, + {RUNE_C(0x00FB67), RUNE_C(0x00FB67), DT_FINAL}, + {RUNE_C(0x00FB68), RUNE_C(0x00FB68), DT_INITIAL}, + {RUNE_C(0x00FB69), RUNE_C(0x00FB69), DT_MEDIAL}, + {RUNE_C(0x00FB6A), RUNE_C(0x00FB6A), DT_ISOLATED}, + {RUNE_C(0x00FB6B), RUNE_C(0x00FB6B), DT_FINAL}, + {RUNE_C(0x00FB6C), RUNE_C(0x00FB6C), DT_INITIAL}, + {RUNE_C(0x00FB6D), RUNE_C(0x00FB6D), DT_MEDIAL}, + {RUNE_C(0x00FB6E), RUNE_C(0x00FB6E), DT_ISOLATED}, + {RUNE_C(0x00FB6F), RUNE_C(0x00FB6F), DT_FINAL}, + {RUNE_C(0x00FB70), RUNE_C(0x00FB70), DT_INITIAL}, + {RUNE_C(0x00FB71), RUNE_C(0x00FB71), DT_MEDIAL}, + {RUNE_C(0x00FB72), RUNE_C(0x00FB72), DT_ISOLATED}, + {RUNE_C(0x00FB73), RUNE_C(0x00FB73), DT_FINAL}, + {RUNE_C(0x00FB74), RUNE_C(0x00FB74), DT_INITIAL}, + {RUNE_C(0x00FB75), RUNE_C(0x00FB75), DT_MEDIAL}, + {RUNE_C(0x00FB76), RUNE_C(0x00FB76), DT_ISOLATED}, + {RUNE_C(0x00FB77), RUNE_C(0x00FB77), DT_FINAL}, + {RUNE_C(0x00FB78), RUNE_C(0x00FB78), DT_INITIAL}, + {RUNE_C(0x00FB79), RUNE_C(0x00FB79), DT_MEDIAL}, + {RUNE_C(0x00FB7A), RUNE_C(0x00FB7A), DT_ISOLATED}, + {RUNE_C(0x00FB7B), RUNE_C(0x00FB7B), DT_FINAL}, + {RUNE_C(0x00FB7C), RUNE_C(0x00FB7C), DT_INITIAL}, + {RUNE_C(0x00FB7D), RUNE_C(0x00FB7D), DT_MEDIAL}, + {RUNE_C(0x00FB7E), RUNE_C(0x00FB7E), DT_ISOLATED}, + {RUNE_C(0x00FB7F), RUNE_C(0x00FB7F), DT_FINAL}, + {RUNE_C(0x00FB80), RUNE_C(0x00FB80), DT_INITIAL}, + {RUNE_C(0x00FB81), RUNE_C(0x00FB81), DT_MEDIAL}, + {RUNE_C(0x00FB82), RUNE_C(0x00FB82), DT_ISOLATED}, + {RUNE_C(0x00FB83), RUNE_C(0x00FB83), DT_FINAL}, + {RUNE_C(0x00FB84), RUNE_C(0x00FB84), DT_ISOLATED}, + {RUNE_C(0x00FB85), RUNE_C(0x00FB85), DT_FINAL}, + {RUNE_C(0x00FB86), RUNE_C(0x00FB86), DT_ISOLATED}, + {RUNE_C(0x00FB87), RUNE_C(0x00FB87), DT_FINAL}, + {RUNE_C(0x00FB88), RUNE_C(0x00FB88), DT_ISOLATED}, + {RUNE_C(0x00FB89), RUNE_C(0x00FB89), DT_FINAL}, + {RUNE_C(0x00FB8A), RUNE_C(0x00FB8A), DT_ISOLATED}, + {RUNE_C(0x00FB8B), RUNE_C(0x00FB8B), DT_FINAL}, + {RUNE_C(0x00FB8C), RUNE_C(0x00FB8C), DT_ISOLATED}, + {RUNE_C(0x00FB8D), RUNE_C(0x00FB8D), DT_FINAL}, + {RUNE_C(0x00FB8E), RUNE_C(0x00FB8E), DT_ISOLATED}, + {RUNE_C(0x00FB8F), RUNE_C(0x00FB8F), DT_FINAL}, + {RUNE_C(0x00FB90), RUNE_C(0x00FB90), DT_INITIAL}, + {RUNE_C(0x00FB91), RUNE_C(0x00FB91), DT_MEDIAL}, + {RUNE_C(0x00FB92), RUNE_C(0x00FB92), DT_ISOLATED}, + {RUNE_C(0x00FB93), RUNE_C(0x00FB93), DT_FINAL}, + {RUNE_C(0x00FB94), RUNE_C(0x00FB94), DT_INITIAL}, + {RUNE_C(0x00FB95), RUNE_C(0x00FB95), DT_MEDIAL}, + {RUNE_C(0x00FB96), RUNE_C(0x00FB96), DT_ISOLATED}, + {RUNE_C(0x00FB97), RUNE_C(0x00FB97), DT_FINAL}, + {RUNE_C(0x00FB98), RUNE_C(0x00FB98), DT_INITIAL}, + {RUNE_C(0x00FB99), RUNE_C(0x00FB99), DT_MEDIAL}, + {RUNE_C(0x00FB9A), RUNE_C(0x00FB9A), DT_ISOLATED}, + {RUNE_C(0x00FB9B), RUNE_C(0x00FB9B), DT_FINAL}, + {RUNE_C(0x00FB9C), RUNE_C(0x00FB9C), DT_INITIAL}, + {RUNE_C(0x00FB9D), RUNE_C(0x00FB9D), DT_MEDIAL}, + {RUNE_C(0x00FB9E), RUNE_C(0x00FB9E), DT_ISOLATED}, + {RUNE_C(0x00FB9F), RUNE_C(0x00FB9F), DT_FINAL}, + {RUNE_C(0x00FBA0), RUNE_C(0x00FBA0), DT_ISOLATED}, + {RUNE_C(0x00FBA1), RUNE_C(0x00FBA1), DT_FINAL}, + {RUNE_C(0x00FBA2), RUNE_C(0x00FBA2), DT_INITIAL}, + {RUNE_C(0x00FBA3), RUNE_C(0x00FBA3), DT_MEDIAL}, + {RUNE_C(0x00FBA4), RUNE_C(0x00FBA4), DT_ISOLATED}, + {RUNE_C(0x00FBA5), RUNE_C(0x00FBA5), DT_FINAL}, + {RUNE_C(0x00FBA6), RUNE_C(0x00FBA6), DT_ISOLATED}, + {RUNE_C(0x00FBA7), RUNE_C(0x00FBA7), DT_FINAL}, + {RUNE_C(0x00FBA8), RUNE_C(0x00FBA8), DT_INITIAL}, + {RUNE_C(0x00FBA9), RUNE_C(0x00FBA9), DT_MEDIAL}, + {RUNE_C(0x00FBAA), RUNE_C(0x00FBAA), DT_ISOLATED}, + {RUNE_C(0x00FBAB), RUNE_C(0x00FBAB), DT_FINAL}, + {RUNE_C(0x00FBAC), RUNE_C(0x00FBAC), DT_INITIAL}, + {RUNE_C(0x00FBAD), RUNE_C(0x00FBAD), DT_MEDIAL}, + {RUNE_C(0x00FBAE), RUNE_C(0x00FBAE), DT_ISOLATED}, + {RUNE_C(0x00FBAF), RUNE_C(0x00FBAF), DT_FINAL}, + {RUNE_C(0x00FBB0), RUNE_C(0x00FBB0), DT_ISOLATED}, + {RUNE_C(0x00FBB1), RUNE_C(0x00FBB1), DT_FINAL}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FBD3), DT_ISOLATED}, + {RUNE_C(0x00FBD4), RUNE_C(0x00FBD4), DT_FINAL}, + {RUNE_C(0x00FBD5), RUNE_C(0x00FBD5), DT_INITIAL}, + {RUNE_C(0x00FBD6), RUNE_C(0x00FBD6), DT_MEDIAL}, + {RUNE_C(0x00FBD7), RUNE_C(0x00FBD7), DT_ISOLATED}, + {RUNE_C(0x00FBD8), RUNE_C(0x00FBD8), DT_FINAL}, + {RUNE_C(0x00FBD9), RUNE_C(0x00FBD9), DT_ISOLATED}, + {RUNE_C(0x00FBDA), RUNE_C(0x00FBDA), DT_FINAL}, + {RUNE_C(0x00FBDB), RUNE_C(0x00FBDB), DT_ISOLATED}, + {RUNE_C(0x00FBDC), RUNE_C(0x00FBDC), DT_FINAL}, + {RUNE_C(0x00FBDD), RUNE_C(0x00FBDE), DT_ISOLATED}, + {RUNE_C(0x00FBDF), RUNE_C(0x00FBDF), DT_FINAL}, + {RUNE_C(0x00FBE0), RUNE_C(0x00FBE0), DT_ISOLATED}, + {RUNE_C(0x00FBE1), RUNE_C(0x00FBE1), DT_FINAL}, + {RUNE_C(0x00FBE2), RUNE_C(0x00FBE2), DT_ISOLATED}, + {RUNE_C(0x00FBE3), RUNE_C(0x00FBE3), DT_FINAL}, + {RUNE_C(0x00FBE4), RUNE_C(0x00FBE4), DT_ISOLATED}, + {RUNE_C(0x00FBE5), RUNE_C(0x00FBE5), DT_FINAL}, + {RUNE_C(0x00FBE6), RUNE_C(0x00FBE6), DT_INITIAL}, + {RUNE_C(0x00FBE7), RUNE_C(0x00FBE7), DT_MEDIAL}, + {RUNE_C(0x00FBE8), RUNE_C(0x00FBE8), DT_INITIAL}, + {RUNE_C(0x00FBE9), RUNE_C(0x00FBE9), DT_MEDIAL}, + {RUNE_C(0x00FBEA), RUNE_C(0x00FBEA), DT_ISOLATED}, + {RUNE_C(0x00FBEB), RUNE_C(0x00FBEB), DT_FINAL}, + {RUNE_C(0x00FBEC), RUNE_C(0x00FBEC), DT_ISOLATED}, + {RUNE_C(0x00FBED), RUNE_C(0x00FBED), DT_FINAL}, + {RUNE_C(0x00FBEE), RUNE_C(0x00FBEE), DT_ISOLATED}, + {RUNE_C(0x00FBEF), RUNE_C(0x00FBEF), DT_FINAL}, + {RUNE_C(0x00FBF0), RUNE_C(0x00FBF0), DT_ISOLATED}, + {RUNE_C(0x00FBF1), RUNE_C(0x00FBF1), DT_FINAL}, + {RUNE_C(0x00FBF2), RUNE_C(0x00FBF2), DT_ISOLATED}, + {RUNE_C(0x00FBF3), RUNE_C(0x00FBF3), DT_FINAL}, + {RUNE_C(0x00FBF4), RUNE_C(0x00FBF4), DT_ISOLATED}, + {RUNE_C(0x00FBF5), RUNE_C(0x00FBF5), DT_FINAL}, + {RUNE_C(0x00FBF6), RUNE_C(0x00FBF6), DT_ISOLATED}, + {RUNE_C(0x00FBF7), RUNE_C(0x00FBF7), DT_FINAL}, + {RUNE_C(0x00FBF8), RUNE_C(0x00FBF8), DT_INITIAL}, + {RUNE_C(0x00FBF9), RUNE_C(0x00FBF9), DT_ISOLATED}, + {RUNE_C(0x00FBFA), RUNE_C(0x00FBFA), DT_FINAL}, + {RUNE_C(0x00FBFB), RUNE_C(0x00FBFB), DT_INITIAL}, + {RUNE_C(0x00FBFC), RUNE_C(0x00FBFC), DT_ISOLATED}, + {RUNE_C(0x00FBFD), RUNE_C(0x00FBFD), DT_FINAL}, + {RUNE_C(0x00FBFE), RUNE_C(0x00FBFE), DT_INITIAL}, + {RUNE_C(0x00FBFF), RUNE_C(0x00FBFF), DT_MEDIAL}, + {RUNE_C(0x00FC00), RUNE_C(0x00FC63), DT_ISOLATED}, + {RUNE_C(0x00FC64), RUNE_C(0x00FC96), DT_FINAL}, + {RUNE_C(0x00FC97), RUNE_C(0x00FCDE), DT_INITIAL}, + {RUNE_C(0x00FCDF), RUNE_C(0x00FCF4), DT_MEDIAL}, + {RUNE_C(0x00FCF5), RUNE_C(0x00FD10), DT_ISOLATED}, + {RUNE_C(0x00FD11), RUNE_C(0x00FD2C), DT_FINAL}, + {RUNE_C(0x00FD2D), RUNE_C(0x00FD33), DT_INITIAL}, + {RUNE_C(0x00FD34), RUNE_C(0x00FD3B), DT_MEDIAL}, + {RUNE_C(0x00FD3C), RUNE_C(0x00FD3C), DT_FINAL}, + {RUNE_C(0x00FD3D), RUNE_C(0x00FD3D), DT_ISOLATED}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD50), DT_INITIAL}, + {RUNE_C(0x00FD51), RUNE_C(0x00FD51), DT_FINAL}, + {RUNE_C(0x00FD52), RUNE_C(0x00FD57), DT_INITIAL}, + {RUNE_C(0x00FD58), RUNE_C(0x00FD58), DT_FINAL}, + {RUNE_C(0x00FD59), RUNE_C(0x00FD59), DT_INITIAL}, + {RUNE_C(0x00FD5A), RUNE_C(0x00FD5B), DT_FINAL}, + {RUNE_C(0x00FD5C), RUNE_C(0x00FD5D), DT_INITIAL}, + {RUNE_C(0x00FD5E), RUNE_C(0x00FD5F), DT_FINAL}, + {RUNE_C(0x00FD60), RUNE_C(0x00FD61), DT_INITIAL}, + {RUNE_C(0x00FD62), RUNE_C(0x00FD62), DT_FINAL}, + {RUNE_C(0x00FD63), RUNE_C(0x00FD63), DT_INITIAL}, + {RUNE_C(0x00FD64), RUNE_C(0x00FD64), DT_FINAL}, + {RUNE_C(0x00FD65), RUNE_C(0x00FD65), DT_INITIAL}, + {RUNE_C(0x00FD66), RUNE_C(0x00FD67), DT_FINAL}, + {RUNE_C(0x00FD68), RUNE_C(0x00FD68), DT_INITIAL}, + {RUNE_C(0x00FD69), RUNE_C(0x00FD6A), DT_FINAL}, + {RUNE_C(0x00FD6B), RUNE_C(0x00FD6B), DT_INITIAL}, + {RUNE_C(0x00FD6C), RUNE_C(0x00FD6C), DT_FINAL}, + {RUNE_C(0x00FD6D), RUNE_C(0x00FD6D), DT_INITIAL}, + {RUNE_C(0x00FD6E), RUNE_C(0x00FD6F), DT_FINAL}, + {RUNE_C(0x00FD70), RUNE_C(0x00FD70), DT_INITIAL}, + {RUNE_C(0x00FD71), RUNE_C(0x00FD71), DT_FINAL}, + {RUNE_C(0x00FD72), RUNE_C(0x00FD73), DT_INITIAL}, + {RUNE_C(0x00FD74), RUNE_C(0x00FD76), DT_FINAL}, + {RUNE_C(0x00FD77), RUNE_C(0x00FD77), DT_INITIAL}, + {RUNE_C(0x00FD78), RUNE_C(0x00FD7C), DT_FINAL}, + {RUNE_C(0x00FD7D), RUNE_C(0x00FD7D), DT_INITIAL}, + {RUNE_C(0x00FD7E), RUNE_C(0x00FD82), DT_FINAL}, + {RUNE_C(0x00FD83), RUNE_C(0x00FD83), DT_INITIAL}, + {RUNE_C(0x00FD84), RUNE_C(0x00FD85), DT_FINAL}, + {RUNE_C(0x00FD86), RUNE_C(0x00FD86), DT_INITIAL}, + {RUNE_C(0x00FD87), RUNE_C(0x00FD87), DT_FINAL}, + {RUNE_C(0x00FD88), RUNE_C(0x00FD8A), DT_INITIAL}, + {RUNE_C(0x00FD8B), RUNE_C(0x00FD8B), DT_FINAL}, + {RUNE_C(0x00FD8C), RUNE_C(0x00FD8F), DT_INITIAL}, + {RUNE_C(0x00FD92), RUNE_C(0x00FD95), DT_INITIAL}, + {RUNE_C(0x00FD96), RUNE_C(0x00FD97), DT_FINAL}, + {RUNE_C(0x00FD98), RUNE_C(0x00FD98), DT_INITIAL}, + {RUNE_C(0x00FD99), RUNE_C(0x00FD9C), DT_FINAL}, + {RUNE_C(0x00FD9D), RUNE_C(0x00FD9D), DT_INITIAL}, + {RUNE_C(0x00FD9E), RUNE_C(0x00FDB3), DT_FINAL}, + {RUNE_C(0x00FDB4), RUNE_C(0x00FDB5), DT_INITIAL}, + {RUNE_C(0x00FDB6), RUNE_C(0x00FDB7), DT_FINAL}, + {RUNE_C(0x00FDB8), RUNE_C(0x00FDB8), DT_INITIAL}, + {RUNE_C(0x00FDB9), RUNE_C(0x00FDB9), DT_FINAL}, + {RUNE_C(0x00FDBA), RUNE_C(0x00FDBA), DT_INITIAL}, + {RUNE_C(0x00FDBB), RUNE_C(0x00FDC2), DT_FINAL}, + {RUNE_C(0x00FDC3), RUNE_C(0x00FDC5), DT_INITIAL}, + {RUNE_C(0x00FDC6), RUNE_C(0x00FDC7), DT_FINAL}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFC), DT_ISOLATED}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE19), DT_VERTICAL}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE44), DT_VERTICAL}, + {RUNE_C(0x00FE47), RUNE_C(0x00FE48), DT_VERTICAL}, + {RUNE_C(0x00FE49), RUNE_C(0x00FE4F), DT_COMPAT}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE52), DT_SMALL}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE66), DT_SMALL}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE6B), DT_SMALL}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE70), DT_ISOLATED}, + {RUNE_C(0x00FE71), RUNE_C(0x00FE71), DT_MEDIAL}, + {RUNE_C(0x00FE72), RUNE_C(0x00FE72), DT_ISOLATED}, + {RUNE_C(0x00FE74), RUNE_C(0x00FE74), DT_ISOLATED}, + {RUNE_C(0x00FE76), RUNE_C(0x00FE76), DT_ISOLATED}, + {RUNE_C(0x00FE77), RUNE_C(0x00FE77), DT_MEDIAL}, + {RUNE_C(0x00FE78), RUNE_C(0x00FE78), DT_ISOLATED}, + {RUNE_C(0x00FE79), RUNE_C(0x00FE79), DT_MEDIAL}, + {RUNE_C(0x00FE7A), RUNE_C(0x00FE7A), DT_ISOLATED}, + {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B), DT_MEDIAL}, + {RUNE_C(0x00FE7C), RUNE_C(0x00FE7C), DT_ISOLATED}, + {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D), DT_MEDIAL}, + {RUNE_C(0x00FE7E), RUNE_C(0x00FE7E), DT_ISOLATED}, + {RUNE_C(0x00FE7F), RUNE_C(0x00FE7F), DT_MEDIAL}, + {RUNE_C(0x00FE80), RUNE_C(0x00FE81), DT_ISOLATED}, + {RUNE_C(0x00FE82), RUNE_C(0x00FE82), DT_FINAL}, + {RUNE_C(0x00FE83), RUNE_C(0x00FE83), DT_ISOLATED}, + {RUNE_C(0x00FE84), RUNE_C(0x00FE84), DT_FINAL}, + {RUNE_C(0x00FE85), RUNE_C(0x00FE85), DT_ISOLATED}, + {RUNE_C(0x00FE86), RUNE_C(0x00FE86), DT_FINAL}, + {RUNE_C(0x00FE87), RUNE_C(0x00FE87), DT_ISOLATED}, + {RUNE_C(0x00FE88), RUNE_C(0x00FE88), DT_FINAL}, + {RUNE_C(0x00FE89), RUNE_C(0x00FE89), DT_ISOLATED}, + {RUNE_C(0x00FE8A), RUNE_C(0x00FE8A), DT_FINAL}, + {RUNE_C(0x00FE8B), RUNE_C(0x00FE8B), DT_INITIAL}, + {RUNE_C(0x00FE8C), RUNE_C(0x00FE8C), DT_MEDIAL}, + {RUNE_C(0x00FE8D), RUNE_C(0x00FE8D), DT_ISOLATED}, + {RUNE_C(0x00FE8E), RUNE_C(0x00FE8E), DT_FINAL}, + {RUNE_C(0x00FE8F), RUNE_C(0x00FE8F), DT_ISOLATED}, + {RUNE_C(0x00FE90), RUNE_C(0x00FE90), DT_FINAL}, + {RUNE_C(0x00FE91), RUNE_C(0x00FE91), DT_INITIAL}, + {RUNE_C(0x00FE92), RUNE_C(0x00FE92), DT_MEDIAL}, + {RUNE_C(0x00FE93), RUNE_C(0x00FE93), DT_ISOLATED}, + {RUNE_C(0x00FE94), RUNE_C(0x00FE94), DT_FINAL}, + {RUNE_C(0x00FE95), RUNE_C(0x00FE95), DT_ISOLATED}, + {RUNE_C(0x00FE96), RUNE_C(0x00FE96), DT_FINAL}, + {RUNE_C(0x00FE97), RUNE_C(0x00FE97), DT_INITIAL}, + {RUNE_C(0x00FE98), RUNE_C(0x00FE98), DT_MEDIAL}, + {RUNE_C(0x00FE99), RUNE_C(0x00FE99), DT_ISOLATED}, + {RUNE_C(0x00FE9A), RUNE_C(0x00FE9A), DT_FINAL}, + {RUNE_C(0x00FE9B), RUNE_C(0x00FE9B), DT_INITIAL}, + {RUNE_C(0x00FE9C), RUNE_C(0x00FE9C), DT_MEDIAL}, + {RUNE_C(0x00FE9D), RUNE_C(0x00FE9D), DT_ISOLATED}, + {RUNE_C(0x00FE9E), RUNE_C(0x00FE9E), DT_FINAL}, + {RUNE_C(0x00FE9F), RUNE_C(0x00FE9F), DT_INITIAL}, + {RUNE_C(0x00FEA0), RUNE_C(0x00FEA0), DT_MEDIAL}, + {RUNE_C(0x00FEA1), RUNE_C(0x00FEA1), DT_ISOLATED}, + {RUNE_C(0x00FEA2), RUNE_C(0x00FEA2), DT_FINAL}, + {RUNE_C(0x00FEA3), RUNE_C(0x00FEA3), DT_INITIAL}, + {RUNE_C(0x00FEA4), RUNE_C(0x00FEA4), DT_MEDIAL}, + {RUNE_C(0x00FEA5), RUNE_C(0x00FEA5), DT_ISOLATED}, + {RUNE_C(0x00FEA6), RUNE_C(0x00FEA6), DT_FINAL}, + {RUNE_C(0x00FEA7), RUNE_C(0x00FEA7), DT_INITIAL}, + {RUNE_C(0x00FEA8), RUNE_C(0x00FEA8), DT_MEDIAL}, + {RUNE_C(0x00FEA9), RUNE_C(0x00FEA9), DT_ISOLATED}, + {RUNE_C(0x00FEAA), RUNE_C(0x00FEAA), DT_FINAL}, + {RUNE_C(0x00FEAB), RUNE_C(0x00FEAB), DT_ISOLATED}, + {RUNE_C(0x00FEAC), RUNE_C(0x00FEAC), DT_FINAL}, + {RUNE_C(0x00FEAD), RUNE_C(0x00FEAD), DT_ISOLATED}, + {RUNE_C(0x00FEAE), RUNE_C(0x00FEAE), DT_FINAL}, + {RUNE_C(0x00FEAF), RUNE_C(0x00FEAF), DT_ISOLATED}, + {RUNE_C(0x00FEB0), RUNE_C(0x00FEB0), DT_FINAL}, + {RUNE_C(0x00FEB1), RUNE_C(0x00FEB1), DT_ISOLATED}, + {RUNE_C(0x00FEB2), RUNE_C(0x00FEB2), DT_FINAL}, + {RUNE_C(0x00FEB3), RUNE_C(0x00FEB3), DT_INITIAL}, + {RUNE_C(0x00FEB4), RUNE_C(0x00FEB4), DT_MEDIAL}, + {RUNE_C(0x00FEB5), RUNE_C(0x00FEB5), DT_ISOLATED}, + {RUNE_C(0x00FEB6), RUNE_C(0x00FEB6), DT_FINAL}, + {RUNE_C(0x00FEB7), RUNE_C(0x00FEB7), DT_INITIAL}, + {RUNE_C(0x00FEB8), RUNE_C(0x00FEB8), DT_MEDIAL}, + {RUNE_C(0x00FEB9), RUNE_C(0x00FEB9), DT_ISOLATED}, + {RUNE_C(0x00FEBA), RUNE_C(0x00FEBA), DT_FINAL}, + {RUNE_C(0x00FEBB), RUNE_C(0x00FEBB), DT_INITIAL}, + {RUNE_C(0x00FEBC), RUNE_C(0x00FEBC), DT_MEDIAL}, + {RUNE_C(0x00FEBD), RUNE_C(0x00FEBD), DT_ISOLATED}, + {RUNE_C(0x00FEBE), RUNE_C(0x00FEBE), DT_FINAL}, + {RUNE_C(0x00FEBF), RUNE_C(0x00FEBF), DT_INITIAL}, + {RUNE_C(0x00FEC0), RUNE_C(0x00FEC0), DT_MEDIAL}, + {RUNE_C(0x00FEC1), RUNE_C(0x00FEC1), DT_ISOLATED}, + {RUNE_C(0x00FEC2), RUNE_C(0x00FEC2), DT_FINAL}, + {RUNE_C(0x00FEC3), RUNE_C(0x00FEC3), DT_INITIAL}, + {RUNE_C(0x00FEC4), RUNE_C(0x00FEC4), DT_MEDIAL}, + {RUNE_C(0x00FEC5), RUNE_C(0x00FEC5), DT_ISOLATED}, + {RUNE_C(0x00FEC6), RUNE_C(0x00FEC6), DT_FINAL}, + {RUNE_C(0x00FEC7), RUNE_C(0x00FEC7), DT_INITIAL}, + {RUNE_C(0x00FEC8), RUNE_C(0x00FEC8), DT_MEDIAL}, + {RUNE_C(0x00FEC9), RUNE_C(0x00FEC9), DT_ISOLATED}, + {RUNE_C(0x00FECA), RUNE_C(0x00FECA), DT_FINAL}, + {RUNE_C(0x00FECB), RUNE_C(0x00FECB), DT_INITIAL}, + {RUNE_C(0x00FECC), RUNE_C(0x00FECC), DT_MEDIAL}, + {RUNE_C(0x00FECD), RUNE_C(0x00FECD), DT_ISOLATED}, + {RUNE_C(0x00FECE), RUNE_C(0x00FECE), DT_FINAL}, + {RUNE_C(0x00FECF), RUNE_C(0x00FECF), DT_INITIAL}, + {RUNE_C(0x00FED0), RUNE_C(0x00FED0), DT_MEDIAL}, + {RUNE_C(0x00FED1), RUNE_C(0x00FED1), DT_ISOLATED}, + {RUNE_C(0x00FED2), RUNE_C(0x00FED2), DT_FINAL}, + {RUNE_C(0x00FED3), RUNE_C(0x00FED3), DT_INITIAL}, + {RUNE_C(0x00FED4), RUNE_C(0x00FED4), DT_MEDIAL}, + {RUNE_C(0x00FED5), RUNE_C(0x00FED5), DT_ISOLATED}, + {RUNE_C(0x00FED6), RUNE_C(0x00FED6), DT_FINAL}, + {RUNE_C(0x00FED7), RUNE_C(0x00FED7), DT_INITIAL}, + {RUNE_C(0x00FED8), RUNE_C(0x00FED8), DT_MEDIAL}, + {RUNE_C(0x00FED9), RUNE_C(0x00FED9), DT_ISOLATED}, + {RUNE_C(0x00FEDA), RUNE_C(0x00FEDA), DT_FINAL}, + {RUNE_C(0x00FEDB), RUNE_C(0x00FEDB), DT_INITIAL}, + {RUNE_C(0x00FEDC), RUNE_C(0x00FEDC), DT_MEDIAL}, + {RUNE_C(0x00FEDD), RUNE_C(0x00FEDD), DT_ISOLATED}, + {RUNE_C(0x00FEDE), RUNE_C(0x00FEDE), DT_FINAL}, + {RUNE_C(0x00FEDF), RUNE_C(0x00FEDF), DT_INITIAL}, + {RUNE_C(0x00FEE0), RUNE_C(0x00FEE0), DT_MEDIAL}, + {RUNE_C(0x00FEE1), RUNE_C(0x00FEE1), DT_ISOLATED}, + {RUNE_C(0x00FEE2), RUNE_C(0x00FEE2), DT_FINAL}, + {RUNE_C(0x00FEE3), RUNE_C(0x00FEE3), DT_INITIAL}, + {RUNE_C(0x00FEE4), RUNE_C(0x00FEE4), DT_MEDIAL}, + {RUNE_C(0x00FEE5), RUNE_C(0x00FEE5), DT_ISOLATED}, + {RUNE_C(0x00FEE6), RUNE_C(0x00FEE6), DT_FINAL}, + {RUNE_C(0x00FEE7), RUNE_C(0x00FEE7), DT_INITIAL}, + {RUNE_C(0x00FEE8), RUNE_C(0x00FEE8), DT_MEDIAL}, + {RUNE_C(0x00FEE9), RUNE_C(0x00FEE9), DT_ISOLATED}, + {RUNE_C(0x00FEEA), RUNE_C(0x00FEEA), DT_FINAL}, + {RUNE_C(0x00FEEB), RUNE_C(0x00FEEB), DT_INITIAL}, + {RUNE_C(0x00FEEC), RUNE_C(0x00FEEC), DT_MEDIAL}, + {RUNE_C(0x00FEED), RUNE_C(0x00FEED), DT_ISOLATED}, + {RUNE_C(0x00FEEE), RUNE_C(0x00FEEE), DT_FINAL}, + {RUNE_C(0x00FEEF), RUNE_C(0x00FEEF), DT_ISOLATED}, + {RUNE_C(0x00FEF0), RUNE_C(0x00FEF0), DT_FINAL}, + {RUNE_C(0x00FEF1), RUNE_C(0x00FEF1), DT_ISOLATED}, + {RUNE_C(0x00FEF2), RUNE_C(0x00FEF2), DT_FINAL}, + {RUNE_C(0x00FEF3), RUNE_C(0x00FEF3), DT_INITIAL}, + {RUNE_C(0x00FEF4), RUNE_C(0x00FEF4), DT_MEDIAL}, + {RUNE_C(0x00FEF5), RUNE_C(0x00FEF5), DT_ISOLATED}, + {RUNE_C(0x00FEF6), RUNE_C(0x00FEF6), DT_FINAL}, + {RUNE_C(0x00FEF7), RUNE_C(0x00FEF7), DT_ISOLATED}, + {RUNE_C(0x00FEF8), RUNE_C(0x00FEF8), DT_FINAL}, + {RUNE_C(0x00FEF9), RUNE_C(0x00FEF9), DT_ISOLATED}, + {RUNE_C(0x00FEFA), RUNE_C(0x00FEFA), DT_FINAL}, + {RUNE_C(0x00FEFB), RUNE_C(0x00FEFB), DT_ISOLATED}, + {RUNE_C(0x00FEFC), RUNE_C(0x00FEFC), DT_FINAL}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF60), DT_WIDE}, + {RUNE_C(0x00FF61), RUNE_C(0x00FFBE), DT_NARROW}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7), DT_NARROW}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF), DT_NARROW}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7), DT_NARROW}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC), DT_NARROW}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6), DT_WIDE}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE), DT_NARROW}, + {RUNE_C(0x010781), RUNE_C(0x010785), DT_SUPER}, + {RUNE_C(0x010787), RUNE_C(0x0107B0), DT_SUPER}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA), DT_SUPER}, + {RUNE_C(0x01109A), RUNE_C(0x01109A), DT_CANONICAL}, + {RUNE_C(0x01109C), RUNE_C(0x01109C), DT_CANONICAL}, + {RUNE_C(0x0110AB), RUNE_C(0x0110AB), DT_CANONICAL}, + {RUNE_C(0x01112E), RUNE_C(0x01112F), DT_CANONICAL}, + {RUNE_C(0x01134B), RUNE_C(0x01134C), DT_CANONICAL}, + {RUNE_C(0x0114BB), RUNE_C(0x0114BC), DT_CANONICAL}, + {RUNE_C(0x0114BE), RUNE_C(0x0114BE), DT_CANONICAL}, + {RUNE_C(0x0115BA), RUNE_C(0x0115BB), DT_CANONICAL}, + {RUNE_C(0x011938), RUNE_C(0x011938), DT_CANONICAL}, + {RUNE_C(0x01D15E), RUNE_C(0x01D164), DT_CANONICAL}, + {RUNE_C(0x01D1BB), RUNE_C(0x01D1C0), DT_CANONICAL}, + {RUNE_C(0x01D400), RUNE_C(0x01D454), DT_FONT}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C), DT_FONT}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F), DT_FONT}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2), DT_FONT}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6), DT_FONT}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC), DT_FONT}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9), DT_FONT}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB), DT_FONT}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3), DT_FONT}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505), DT_FONT}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A), DT_FONT}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514), DT_FONT}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C), DT_FONT}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539), DT_FONT}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E), DT_FONT}, + {RUNE_C(0x01D540), RUNE_C(0x01D544), DT_FONT}, + {RUNE_C(0x01D546), RUNE_C(0x01D546), DT_FONT}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550), DT_FONT}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5), DT_FONT}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB), DT_FONT}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF), DT_FONT}, + {RUNE_C(0x01E030), RUNE_C(0x01E050), DT_SUPER}, + {RUNE_C(0x01E051), RUNE_C(0x01E06A), DT_SUB}, + {RUNE_C(0x01E06B), RUNE_C(0x01E06D), DT_SUPER}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03), DT_FONT}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F), DT_FONT}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22), DT_FONT}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24), DT_FONT}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27), DT_FONT}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32), DT_FONT}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37), DT_FONT}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39), DT_FONT}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B), DT_FONT}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42), DT_FONT}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47), DT_FONT}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49), DT_FONT}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B), DT_FONT}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F), DT_FONT}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52), DT_FONT}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54), DT_FONT}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57), DT_FONT}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59), DT_FONT}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B), DT_FONT}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D), DT_FONT}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F), DT_FONT}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62), DT_FONT}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64), DT_FONT}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A), DT_FONT}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72), DT_FONT}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77), DT_FONT}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C), DT_FONT}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E), DT_FONT}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89), DT_FONT}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B), DT_FONT}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3), DT_FONT}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9), DT_FONT}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB), DT_FONT}, + {RUNE_C(0x01F100), RUNE_C(0x01F10A), DT_COMPAT}, + {RUNE_C(0x01F110), RUNE_C(0x01F12A), DT_COMPAT}, + {RUNE_C(0x01F12B), RUNE_C(0x01F12E), DT_CIRCLE}, + {RUNE_C(0x01F130), RUNE_C(0x01F14F), DT_SQUARE}, + {RUNE_C(0x01F16A), RUNE_C(0x01F16C), DT_SUPER}, + {RUNE_C(0x01F190), RUNE_C(0x01F190), DT_SQUARE}, + {RUNE_C(0x01F200), RUNE_C(0x01F202), DT_SQUARE}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B), DT_SQUARE}, + {RUNE_C(0x01F240), RUNE_C(0x01F248), DT_COMPAT}, + {RUNE_C(0x01F250), RUNE_C(0x01F251), DT_CIRCLE}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9), DT_FONT}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D), DT_CANONICAL}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_DT_H */ diff --git a/vendor/librune/include/internal/rtype/equideo.h b/vendor/librune/include/internal/rtype/equideo.h new file mode 100644 index 0000000..5fdc039 --- /dev/null +++ b/vendor/librune/include/internal/rtype/equideo.h @@ -0,0 +1,365 @@ +/* This file is autogenerated by gen/rtype-equideo; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_EQUIDEO_H +#define RUNE_INTERNAL_RTYPE_EQUIDEO_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rune.h" + +static const struct { + rune key, val; +} rtype_equideo_tbl[] = { + {RUNE_C(0x002E81), RUNE_C(0x005382)}, + {RUNE_C(0x002E82), RUNE_C(0x004E5B)}, + {RUNE_C(0x002E83), RUNE_C(0x004E5A)}, + {RUNE_C(0x002E84), RUNE_C(0x004E59)}, + {RUNE_C(0x002E85), RUNE_C(0x004EBB)}, + {RUNE_C(0x002E86), RUNE_C(0x005182)}, + {RUNE_C(0x002E87), RUNE_C(0x020628)}, + {RUNE_C(0x002E88), RUNE_C(0x005200)}, + {RUNE_C(0x002E89), RUNE_C(0x005202)}, + {RUNE_C(0x002E8A), RUNE_C(0x00535C)}, + {RUNE_C(0x002E8B), RUNE_C(0x00353E)}, + {RUNE_C(0x002E8C), RUNE_C(0x005C0F)}, + {RUNE_C(0x002E8D), RUNE_C(0x005C0F)}, + {RUNE_C(0x002E8E), RUNE_C(0x005140)}, + {RUNE_C(0x002E8F), RUNE_C(0x005C23)}, + {RUNE_C(0x002E90), RUNE_C(0x005C22)}, + {RUNE_C(0x002E91), RUNE_C(0x021BC2)}, + {RUNE_C(0x002E92), RUNE_C(0x005DF3)}, + {RUNE_C(0x002E93), RUNE_C(0x005E7A)}, + {RUNE_C(0x002E94), RUNE_C(0x005F51)}, + {RUNE_C(0x002E95), RUNE_C(0x02B739)}, + {RUNE_C(0x002E96), RUNE_C(0x005FC4)}, + {RUNE_C(0x002E97), RUNE_C(0x005FC3)}, + {RUNE_C(0x002E98), RUNE_C(0x00624C)}, + {RUNE_C(0x002E99), RUNE_C(0x006535)}, + {RUNE_C(0x002E9B), RUNE_C(0x0065E1)}, + {RUNE_C(0x002E9C), RUNE_C(0x0065E5)}, + {RUNE_C(0x002E9D), RUNE_C(0x006708)}, + {RUNE_C(0x002E9E), RUNE_C(0x006B7A)}, + {RUNE_C(0x002E9F), RUNE_C(0x006BCD)}, + {RUNE_C(0x002EA0), RUNE_C(0x006C11)}, + {RUNE_C(0x002EA1), RUNE_C(0x006C35)}, + {RUNE_C(0x002EA2), RUNE_C(0x006C3A)}, + {RUNE_C(0x002EA3), RUNE_C(0x00706C)}, + {RUNE_C(0x002EA4), RUNE_C(0x00722B)}, + {RUNE_C(0x002EA5), RUNE_C(0x00722B)}, + {RUNE_C(0x002EA6), RUNE_C(0x004E2C)}, + {RUNE_C(0x002EA7), RUNE_C(0x00725B)}, + {RUNE_C(0x002EA8), RUNE_C(0x0072AD)}, + {RUNE_C(0x002EA9), RUNE_C(0x00738B)}, + {RUNE_C(0x002EAA), RUNE_C(0x024D14)}, + {RUNE_C(0x002EAB), RUNE_C(0x0076EE)}, + {RUNE_C(0x002EAC), RUNE_C(0x00793A)}, + {RUNE_C(0x002EAD), RUNE_C(0x00793B)}, + {RUNE_C(0x002EAE), RUNE_C(0x025AD7)}, + {RUNE_C(0x002EAF), RUNE_C(0x007CF9)}, + {RUNE_C(0x002EB0), RUNE_C(0x007E9F)}, + {RUNE_C(0x002EB1), RUNE_C(0x007F53)}, + {RUNE_C(0x002EB2), RUNE_C(0x007F52)}, + {RUNE_C(0x002EB3), RUNE_C(0x0034C1)}, + {RUNE_C(0x002EB4), RUNE_C(0x005197)}, + {RUNE_C(0x002EB5), RUNE_C(0x02626B)}, + {RUNE_C(0x002EB6), RUNE_C(0x007F8A)}, + {RUNE_C(0x002EB7), RUNE_C(0x02634C)}, + {RUNE_C(0x002EB8), RUNE_C(0x02634B)}, + {RUNE_C(0x002EB9), RUNE_C(0x008002)}, + {RUNE_C(0x002EBA), RUNE_C(0x008080)}, + {RUNE_C(0x002EBB), RUNE_C(0x00807F)}, + {RUNE_C(0x002EBC), RUNE_C(0x008089)}, + {RUNE_C(0x002EBD), RUNE_C(0x026951)}, + {RUNE_C(0x002EBE), RUNE_C(0x008279)}, + {RUNE_C(0x002EBF), RUNE_C(0x008279)}, + {RUNE_C(0x002EC0), RUNE_C(0x008279)}, + {RUNE_C(0x002EC1), RUNE_C(0x00864E)}, + {RUNE_C(0x002EC2), RUNE_C(0x008864)}, + {RUNE_C(0x002EC3), RUNE_C(0x008980)}, + {RUNE_C(0x002EC4), RUNE_C(0x00897F)}, + {RUNE_C(0x002EC5), RUNE_C(0x0089C1)}, + {RUNE_C(0x002EC6), RUNE_C(0x0089D2)}, + {RUNE_C(0x002EC7), RUNE_C(0x0278B2)}, + {RUNE_C(0x002EC8), RUNE_C(0x008BA0)}, + {RUNE_C(0x002EC9), RUNE_C(0x008D1D)}, + {RUNE_C(0x002ECA), RUNE_C(0x027FB7)}, + {RUNE_C(0x002ECB), RUNE_C(0x008F66)}, + {RUNE_C(0x002ECC), RUNE_C(0x008FB6)}, + {RUNE_C(0x002ECD), RUNE_C(0x008FB6)}, + {RUNE_C(0x002ECE), RUNE_C(0x008FB6)}, + {RUNE_C(0x002ECF), RUNE_C(0x009091)}, + {RUNE_C(0x002ED0), RUNE_C(0x009485)}, + {RUNE_C(0x002ED1), RUNE_C(0x009577)}, + {RUNE_C(0x002ED2), RUNE_C(0x009578)}, + {RUNE_C(0x002ED3), RUNE_C(0x00957F)}, + {RUNE_C(0x002ED4), RUNE_C(0x0095E8)}, + {RUNE_C(0x002ED5), RUNE_C(0x028E0F)}, + {RUNE_C(0x002ED6), RUNE_C(0x00961D)}, + {RUNE_C(0x002ED7), RUNE_C(0x0096E8)}, + {RUNE_C(0x002ED8), RUNE_C(0x009752)}, + {RUNE_C(0x002ED9), RUNE_C(0x0097E6)}, + {RUNE_C(0x002EDA), RUNE_C(0x009875)}, + {RUNE_C(0x002EDB), RUNE_C(0x0098CE)}, + {RUNE_C(0x002EDC), RUNE_C(0x0098DE)}, + {RUNE_C(0x002EDD), RUNE_C(0x0098DF)}, + {RUNE_C(0x002EDE), RUNE_C(0x02967F)}, + {RUNE_C(0x002EDF), RUNE_C(0x0098E0)}, + {RUNE_C(0x002EE0), RUNE_C(0x009963)}, + {RUNE_C(0x002EE1), RUNE_C(0x029810)}, + {RUNE_C(0x002EE2), RUNE_C(0x009A6C)}, + {RUNE_C(0x002EE3), RUNE_C(0x009AA8)}, + {RUNE_C(0x002EE4), RUNE_C(0x009B3C)}, + {RUNE_C(0x002EE5), RUNE_C(0x009C7C)}, + {RUNE_C(0x002EE6), RUNE_C(0x009E1F)}, + {RUNE_C(0x002EE7), RUNE_C(0x005364)}, + {RUNE_C(0x002EE8), RUNE_C(0x009EA6)}, + {RUNE_C(0x002EE9), RUNE_C(0x009EC4)}, + {RUNE_C(0x002EEA), RUNE_C(0x009EFE)}, + {RUNE_C(0x002EEB), RUNE_C(0x006589)}, + {RUNE_C(0x002EEC), RUNE_C(0x009F50)}, + {RUNE_C(0x002EED), RUNE_C(0x006B6F)}, + {RUNE_C(0x002EEE), RUNE_C(0x009F7F)}, + {RUNE_C(0x002EEF), RUNE_C(0x007ADC)}, + {RUNE_C(0x002EF0), RUNE_C(0x009F99)}, + {RUNE_C(0x002EF1), RUNE_C(0x009F9C)}, + {RUNE_C(0x002EF2), RUNE_C(0x004E80)}, + {RUNE_C(0x002EF3), RUNE_C(0x009F9F)}, + {RUNE_C(0x002F00), RUNE_C(0x004E00)}, + {RUNE_C(0x002F01), RUNE_C(0x004E28)}, + {RUNE_C(0x002F02), RUNE_C(0x004E36)}, + {RUNE_C(0x002F03), RUNE_C(0x004E3F)}, + {RUNE_C(0x002F04), RUNE_C(0x004E59)}, + {RUNE_C(0x002F05), RUNE_C(0x004E85)}, + {RUNE_C(0x002F06), RUNE_C(0x004E8C)}, + {RUNE_C(0x002F07), RUNE_C(0x004EA0)}, + {RUNE_C(0x002F08), RUNE_C(0x004EBA)}, + {RUNE_C(0x002F09), RUNE_C(0x00513F)}, + {RUNE_C(0x002F0A), RUNE_C(0x005165)}, + {RUNE_C(0x002F0B), RUNE_C(0x00516B)}, + {RUNE_C(0x002F0C), RUNE_C(0x005182)}, + {RUNE_C(0x002F0D), RUNE_C(0x005196)}, + {RUNE_C(0x002F0E), RUNE_C(0x0051AB)}, + {RUNE_C(0x002F0F), RUNE_C(0x0051E0)}, + {RUNE_C(0x002F10), RUNE_C(0x0051F5)}, + {RUNE_C(0x002F11), RUNE_C(0x005200)}, + {RUNE_C(0x002F12), RUNE_C(0x00529B)}, + {RUNE_C(0x002F13), RUNE_C(0x0052F9)}, + {RUNE_C(0x002F14), RUNE_C(0x005315)}, + {RUNE_C(0x002F15), RUNE_C(0x00531A)}, + {RUNE_C(0x002F16), RUNE_C(0x005338)}, + {RUNE_C(0x002F17), RUNE_C(0x005341)}, + {RUNE_C(0x002F18), RUNE_C(0x00535C)}, + {RUNE_C(0x002F19), RUNE_C(0x005369)}, + {RUNE_C(0x002F1A), RUNE_C(0x005382)}, + {RUNE_C(0x002F1B), RUNE_C(0x0053B6)}, + {RUNE_C(0x002F1C), RUNE_C(0x0053C8)}, + {RUNE_C(0x002F1D), RUNE_C(0x0053E3)}, + {RUNE_C(0x002F1E), RUNE_C(0x0056D7)}, + {RUNE_C(0x002F1F), RUNE_C(0x00571F)}, + {RUNE_C(0x002F20), RUNE_C(0x0058EB)}, + {RUNE_C(0x002F21), RUNE_C(0x005902)}, + {RUNE_C(0x002F22), RUNE_C(0x00590A)}, + {RUNE_C(0x002F23), RUNE_C(0x005915)}, + {RUNE_C(0x002F24), RUNE_C(0x005927)}, + {RUNE_C(0x002F25), RUNE_C(0x005973)}, + {RUNE_C(0x002F26), RUNE_C(0x005B50)}, + {RUNE_C(0x002F27), RUNE_C(0x005B80)}, + {RUNE_C(0x002F28), RUNE_C(0x005BF8)}, + {RUNE_C(0x002F29), RUNE_C(0x005C0F)}, + {RUNE_C(0x002F2A), RUNE_C(0x005C22)}, + {RUNE_C(0x002F2B), RUNE_C(0x005C38)}, + {RUNE_C(0x002F2C), RUNE_C(0x005C6E)}, + {RUNE_C(0x002F2D), RUNE_C(0x005C71)}, + {RUNE_C(0x002F2E), RUNE_C(0x005DDB)}, + {RUNE_C(0x002F2F), RUNE_C(0x005DE5)}, + {RUNE_C(0x002F30), RUNE_C(0x005DF1)}, + {RUNE_C(0x002F31), RUNE_C(0x005DFE)}, + {RUNE_C(0x002F32), RUNE_C(0x005E72)}, + {RUNE_C(0x002F33), RUNE_C(0x005E7A)}, + {RUNE_C(0x002F34), RUNE_C(0x005E7F)}, + {RUNE_C(0x002F35), RUNE_C(0x005EF4)}, + {RUNE_C(0x002F36), RUNE_C(0x005EFE)}, + {RUNE_C(0x002F37), RUNE_C(0x005F0B)}, + {RUNE_C(0x002F38), RUNE_C(0x005F13)}, + {RUNE_C(0x002F39), RUNE_C(0x005F50)}, + {RUNE_C(0x002F3A), RUNE_C(0x005F61)}, + {RUNE_C(0x002F3B), RUNE_C(0x005F73)}, + {RUNE_C(0x002F3C), RUNE_C(0x005FC3)}, + {RUNE_C(0x002F3D), RUNE_C(0x006208)}, + {RUNE_C(0x002F3E), RUNE_C(0x006236)}, + {RUNE_C(0x002F3F), RUNE_C(0x00624B)}, + {RUNE_C(0x002F40), RUNE_C(0x00652F)}, + {RUNE_C(0x002F41), RUNE_C(0x006534)}, + {RUNE_C(0x002F42), RUNE_C(0x006587)}, + {RUNE_C(0x002F43), RUNE_C(0x006597)}, + {RUNE_C(0x002F44), RUNE_C(0x0065A4)}, + {RUNE_C(0x002F45), RUNE_C(0x0065B9)}, + {RUNE_C(0x002F46), RUNE_C(0x0065E0)}, + {RUNE_C(0x002F47), RUNE_C(0x0065E5)}, + {RUNE_C(0x002F48), RUNE_C(0x0066F0)}, + {RUNE_C(0x002F49), RUNE_C(0x006708)}, + {RUNE_C(0x002F4A), RUNE_C(0x006728)}, + {RUNE_C(0x002F4B), RUNE_C(0x006B20)}, + {RUNE_C(0x002F4C), RUNE_C(0x006B62)}, + {RUNE_C(0x002F4D), RUNE_C(0x006B79)}, + {RUNE_C(0x002F4E), RUNE_C(0x006BB3)}, + {RUNE_C(0x002F4F), RUNE_C(0x006BCB)}, + {RUNE_C(0x002F50), RUNE_C(0x006BD4)}, + {RUNE_C(0x002F51), RUNE_C(0x006BDB)}, + {RUNE_C(0x002F52), RUNE_C(0x006C0F)}, + {RUNE_C(0x002F53), RUNE_C(0x006C14)}, + {RUNE_C(0x002F54), RUNE_C(0x006C34)}, + {RUNE_C(0x002F55), RUNE_C(0x00706B)}, + {RUNE_C(0x002F56), RUNE_C(0x00722A)}, + {RUNE_C(0x002F57), RUNE_C(0x007236)}, + {RUNE_C(0x002F58), RUNE_C(0x00723B)}, + {RUNE_C(0x002F59), RUNE_C(0x00723F)}, + {RUNE_C(0x002F5A), RUNE_C(0x007247)}, + {RUNE_C(0x002F5B), RUNE_C(0x007259)}, + {RUNE_C(0x002F5C), RUNE_C(0x00725B)}, + {RUNE_C(0x002F5D), RUNE_C(0x0072AC)}, + {RUNE_C(0x002F5E), RUNE_C(0x007384)}, + {RUNE_C(0x002F5F), RUNE_C(0x007389)}, + {RUNE_C(0x002F60), RUNE_C(0x0074DC)}, + {RUNE_C(0x002F61), RUNE_C(0x0074E6)}, + {RUNE_C(0x002F62), RUNE_C(0x007518)}, + {RUNE_C(0x002F63), RUNE_C(0x00751F)}, + {RUNE_C(0x002F64), RUNE_C(0x007528)}, + {RUNE_C(0x002F65), RUNE_C(0x007530)}, + {RUNE_C(0x002F66), RUNE_C(0x00758B)}, + {RUNE_C(0x002F67), RUNE_C(0x007592)}, + {RUNE_C(0x002F68), RUNE_C(0x007676)}, + {RUNE_C(0x002F69), RUNE_C(0x00767D)}, + {RUNE_C(0x002F6A), RUNE_C(0x0076AE)}, + {RUNE_C(0x002F6B), RUNE_C(0x0076BF)}, + {RUNE_C(0x002F6C), RUNE_C(0x0076EE)}, + {RUNE_C(0x002F6D), RUNE_C(0x0077DB)}, + {RUNE_C(0x002F6E), RUNE_C(0x0077E2)}, + {RUNE_C(0x002F6F), RUNE_C(0x0077F3)}, + {RUNE_C(0x002F70), RUNE_C(0x00793A)}, + {RUNE_C(0x002F71), RUNE_C(0x0079B8)}, + {RUNE_C(0x002F72), RUNE_C(0x0079BE)}, + {RUNE_C(0x002F73), RUNE_C(0x007A74)}, + {RUNE_C(0x002F74), RUNE_C(0x007ACB)}, + {RUNE_C(0x002F75), RUNE_C(0x007AF9)}, + {RUNE_C(0x002F76), RUNE_C(0x007C73)}, + {RUNE_C(0x002F77), RUNE_C(0x007CF8)}, + {RUNE_C(0x002F78), RUNE_C(0x007F36)}, + {RUNE_C(0x002F79), RUNE_C(0x007F51)}, + {RUNE_C(0x002F7A), RUNE_C(0x007F8A)}, + {RUNE_C(0x002F7B), RUNE_C(0x007FBD)}, + {RUNE_C(0x002F7C), RUNE_C(0x008001)}, + {RUNE_C(0x002F7D), RUNE_C(0x00800C)}, + {RUNE_C(0x002F7E), RUNE_C(0x008012)}, + {RUNE_C(0x002F7F), RUNE_C(0x008033)}, + {RUNE_C(0x002F80), RUNE_C(0x00807F)}, + {RUNE_C(0x002F81), RUNE_C(0x008089)}, + {RUNE_C(0x002F82), RUNE_C(0x0081E3)}, + {RUNE_C(0x002F83), RUNE_C(0x0081EA)}, + {RUNE_C(0x002F84), RUNE_C(0x0081F3)}, + {RUNE_C(0x002F85), RUNE_C(0x0081FC)}, + {RUNE_C(0x002F86), RUNE_C(0x00820C)}, + {RUNE_C(0x002F87), RUNE_C(0x00821B)}, + {RUNE_C(0x002F88), RUNE_C(0x00821F)}, + {RUNE_C(0x002F89), RUNE_C(0x00826E)}, + {RUNE_C(0x002F8A), RUNE_C(0x008272)}, + {RUNE_C(0x002F8B), RUNE_C(0x008278)}, + {RUNE_C(0x002F8C), RUNE_C(0x00864D)}, + {RUNE_C(0x002F8D), RUNE_C(0x00866B)}, + {RUNE_C(0x002F8E), RUNE_C(0x008840)}, + {RUNE_C(0x002F8F), RUNE_C(0x00884C)}, + {RUNE_C(0x002F90), RUNE_C(0x008863)}, + {RUNE_C(0x002F91), RUNE_C(0x00897E)}, + {RUNE_C(0x002F92), RUNE_C(0x00898B)}, + {RUNE_C(0x002F93), RUNE_C(0x0089D2)}, + {RUNE_C(0x002F94), RUNE_C(0x008A00)}, + {RUNE_C(0x002F95), RUNE_C(0x008C37)}, + {RUNE_C(0x002F96), RUNE_C(0x008C46)}, + {RUNE_C(0x002F97), RUNE_C(0x008C55)}, + {RUNE_C(0x002F98), RUNE_C(0x008C78)}, + {RUNE_C(0x002F99), RUNE_C(0x008C9D)}, + {RUNE_C(0x002F9A), RUNE_C(0x008D64)}, + {RUNE_C(0x002F9B), RUNE_C(0x008D70)}, + {RUNE_C(0x002F9C), RUNE_C(0x008DB3)}, + {RUNE_C(0x002F9D), RUNE_C(0x008EAB)}, + {RUNE_C(0x002F9E), RUNE_C(0x008ECA)}, + {RUNE_C(0x002F9F), RUNE_C(0x008F9B)}, + {RUNE_C(0x002FA0), RUNE_C(0x008FB0)}, + {RUNE_C(0x002FA1), RUNE_C(0x008FB5)}, + {RUNE_C(0x002FA2), RUNE_C(0x009091)}, + {RUNE_C(0x002FA3), RUNE_C(0x009149)}, + {RUNE_C(0x002FA4), RUNE_C(0x0091C6)}, + {RUNE_C(0x002FA5), RUNE_C(0x0091CC)}, + {RUNE_C(0x002FA6), RUNE_C(0x0091D1)}, + {RUNE_C(0x002FA7), RUNE_C(0x009577)}, + {RUNE_C(0x002FA8), RUNE_C(0x009580)}, + {RUNE_C(0x002FA9), RUNE_C(0x00961C)}, + {RUNE_C(0x002FAA), RUNE_C(0x0096B6)}, + {RUNE_C(0x002FAB), RUNE_C(0x0096B9)}, + {RUNE_C(0x002FAC), RUNE_C(0x0096E8)}, + {RUNE_C(0x002FAD), RUNE_C(0x009751)}, + {RUNE_C(0x002FAE), RUNE_C(0x00975E)}, + {RUNE_C(0x002FAF), RUNE_C(0x009762)}, + {RUNE_C(0x002FB0), RUNE_C(0x009769)}, + {RUNE_C(0x002FB1), RUNE_C(0x0097CB)}, + {RUNE_C(0x002FB2), RUNE_C(0x0097ED)}, + {RUNE_C(0x002FB3), RUNE_C(0x0097F3)}, + {RUNE_C(0x002FB4), RUNE_C(0x009801)}, + {RUNE_C(0x002FB5), RUNE_C(0x0098A8)}, + {RUNE_C(0x002FB6), RUNE_C(0x0098DB)}, + {RUNE_C(0x002FB7), RUNE_C(0x0098DF)}, + {RUNE_C(0x002FB8), RUNE_C(0x009996)}, + {RUNE_C(0x002FB9), RUNE_C(0x009999)}, + {RUNE_C(0x002FBA), RUNE_C(0x0099AC)}, + {RUNE_C(0x002FBB), RUNE_C(0x009AA8)}, + {RUNE_C(0x002FBC), RUNE_C(0x009AD8)}, + {RUNE_C(0x002FBD), RUNE_C(0x009ADF)}, + {RUNE_C(0x002FBE), RUNE_C(0x009B25)}, + {RUNE_C(0x002FBF), RUNE_C(0x009B2F)}, + {RUNE_C(0x002FC0), RUNE_C(0x009B32)}, + {RUNE_C(0x002FC1), RUNE_C(0x009B3C)}, + {RUNE_C(0x002FC2), RUNE_C(0x009B5A)}, + {RUNE_C(0x002FC3), RUNE_C(0x009CE5)}, + {RUNE_C(0x002FC4), RUNE_C(0x009E75)}, + {RUNE_C(0x002FC5), RUNE_C(0x009E7F)}, + {RUNE_C(0x002FC6), RUNE_C(0x009EA5)}, + {RUNE_C(0x002FC7), RUNE_C(0x009EBB)}, + {RUNE_C(0x002FC8), RUNE_C(0x009EC3)}, + {RUNE_C(0x002FC9), RUNE_C(0x009ECD)}, + {RUNE_C(0x002FCA), RUNE_C(0x009ED1)}, + {RUNE_C(0x002FCB), RUNE_C(0x009EF9)}, + {RUNE_C(0x002FCC), RUNE_C(0x009EFD)}, + {RUNE_C(0x002FCD), RUNE_C(0x009F0E)}, + {RUNE_C(0x002FCE), RUNE_C(0x009F13)}, + {RUNE_C(0x002FCF), RUNE_C(0x009F20)}, + {RUNE_C(0x002FD0), RUNE_C(0x009F3B)}, + {RUNE_C(0x002FD1), RUNE_C(0x009F4A)}, + {RUNE_C(0x002FD2), RUNE_C(0x009F52)}, + {RUNE_C(0x002FD3), RUNE_C(0x009F8D)}, + {RUNE_C(0x002FD4), RUNE_C(0x009F9C)}, + {RUNE_C(0x002FD5), RUNE_C(0x009FA0)}, + {RUNE_C(0x0031C6), RUNE_C(0x0200CC)}, + {RUNE_C(0x0031CF), RUNE_C(0x004E40)}, + {RUNE_C(0x0031D0), RUNE_C(0x004E00)}, + {RUNE_C(0x0031D1), RUNE_C(0x004E28)}, + {RUNE_C(0x0031D2), RUNE_C(0x004E3F)}, + {RUNE_C(0x0031D3), RUNE_C(0x004E3F)}, + {RUNE_C(0x0031D4), RUNE_C(0x004E36)}, + {RUNE_C(0x0031D5), RUNE_C(0x0200CD)}, + {RUNE_C(0x0031D6), RUNE_C(0x004E5B)}, + {RUNE_C(0x0031D7), RUNE_C(0x0200CA)}, + {RUNE_C(0x0031D8), RUNE_C(0x0200CE)}, + {RUNE_C(0x0031D9), RUNE_C(0x02010C)}, + {RUNE_C(0x0031DA), RUNE_C(0x004E85)}, + {RUNE_C(0x0031DB), RUNE_C(0x021FE8)}, + {RUNE_C(0x0031DC), RUNE_C(0x0200CB)}, + {RUNE_C(0x0031DD), RUNE_C(0x004E40)}, + {RUNE_C(0x0031DE), RUNE_C(0x0200D1)}, + {RUNE_C(0x0031DF), RUNE_C(0x004E5A)}, + {RUNE_C(0x0031E0), RUNE_C(0x004E59)}, + {RUNE_C(0x0031E1), RUNE_C(0x02010E)}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_EQUIDEO_H */ diff --git a/vendor/librune/include/internal/rtype/gc.h b/vendor/librune/include/internal/rtype/gc.h new file mode 100644 index 0000000..73856ba --- /dev/null +++ b/vendor/librune/include/internal/rtype/gc.h @@ -0,0 +1,3296 @@ +/* This file is autogenerated by gen/rtype-gc; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_GC_H +#define RUNE_INTERNAL_RTYPE_GC_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_gc_bf rtype_gc_lat1_tbl[] = { + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_ZS, GC_PO, GC_PO, GC_PO, GC_SC, GC_PO, GC_PO, GC_PO, + GC_PS, GC_PE, GC_PO, GC_SM, GC_PO, GC_PD, GC_PO, GC_PO, + GC_ND, GC_ND, GC_ND, GC_ND, GC_ND, GC_ND, GC_ND, GC_ND, + GC_ND, GC_ND, GC_PO, GC_PO, GC_SM, GC_SM, GC_SM, GC_PO, + GC_PO, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, + GC_LU, GC_LU, GC_LU, GC_PS, GC_PO, GC_PE, GC_SK, GC_PC, + GC_SK, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, + GC_LL, GC_LL, GC_LL, GC_PS, GC_SM, GC_PE, GC_SM, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, GC_CC, + GC_ZS, GC_PO, GC_SC, GC_SC, GC_SC, GC_SC, GC_SO, GC_PO, + GC_SK, GC_SO, GC_LO, GC_PI, GC_SM, GC_CF, GC_SO, GC_SK, + GC_SO, GC_SM, GC_NO, GC_NO, GC_SK, GC_LL, GC_PO, GC_PO, + GC_SK, GC_NO, GC_LO, GC_PF, GC_NO, GC_NO, GC_NO, GC_PO, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_SM, + GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LU, GC_LL, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_SM, + GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, GC_LL, +}; + +static const struct { + rune lo, hi; + rprop_gc_bf val; +} rtype_gc_tbl[] = { + {RUNE_C(0x000100), RUNE_C(0x000100), GC_LU}, + {RUNE_C(0x000101), RUNE_C(0x000101), GC_LL}, + {RUNE_C(0x000102), RUNE_C(0x000102), GC_LU}, + {RUNE_C(0x000103), RUNE_C(0x000103), GC_LL}, + {RUNE_C(0x000104), RUNE_C(0x000104), GC_LU}, + {RUNE_C(0x000105), RUNE_C(0x000105), GC_LL}, + {RUNE_C(0x000106), RUNE_C(0x000106), GC_LU}, + {RUNE_C(0x000107), RUNE_C(0x000107), GC_LL}, + {RUNE_C(0x000108), RUNE_C(0x000108), GC_LU}, + {RUNE_C(0x000109), RUNE_C(0x000109), GC_LL}, + {RUNE_C(0x00010A), RUNE_C(0x00010A), GC_LU}, + {RUNE_C(0x00010B), RUNE_C(0x00010B), GC_LL}, + {RUNE_C(0x00010C), RUNE_C(0x00010C), GC_LU}, + {RUNE_C(0x00010D), RUNE_C(0x00010D), GC_LL}, + {RUNE_C(0x00010E), RUNE_C(0x00010E), GC_LU}, + {RUNE_C(0x00010F), RUNE_C(0x00010F), GC_LL}, + {RUNE_C(0x000110), RUNE_C(0x000110), GC_LU}, + {RUNE_C(0x000111), RUNE_C(0x000111), GC_LL}, + {RUNE_C(0x000112), RUNE_C(0x000112), GC_LU}, + {RUNE_C(0x000113), RUNE_C(0x000113), GC_LL}, + {RUNE_C(0x000114), RUNE_C(0x000114), GC_LU}, + {RUNE_C(0x000115), RUNE_C(0x000115), GC_LL}, + {RUNE_C(0x000116), RUNE_C(0x000116), GC_LU}, + {RUNE_C(0x000117), RUNE_C(0x000117), GC_LL}, + {RUNE_C(0x000118), RUNE_C(0x000118), GC_LU}, + {RUNE_C(0x000119), RUNE_C(0x000119), GC_LL}, + {RUNE_C(0x00011A), RUNE_C(0x00011A), GC_LU}, + {RUNE_C(0x00011B), RUNE_C(0x00011B), GC_LL}, + {RUNE_C(0x00011C), RUNE_C(0x00011C), GC_LU}, + {RUNE_C(0x00011D), RUNE_C(0x00011D), GC_LL}, + {RUNE_C(0x00011E), RUNE_C(0x00011E), GC_LU}, + {RUNE_C(0x00011F), RUNE_C(0x00011F), GC_LL}, + {RUNE_C(0x000120), RUNE_C(0x000120), GC_LU}, + {RUNE_C(0x000121), RUNE_C(0x000121), GC_LL}, + {RUNE_C(0x000122), RUNE_C(0x000122), GC_LU}, + {RUNE_C(0x000123), RUNE_C(0x000123), GC_LL}, + {RUNE_C(0x000124), RUNE_C(0x000124), GC_LU}, + {RUNE_C(0x000125), RUNE_C(0x000125), GC_LL}, + {RUNE_C(0x000126), RUNE_C(0x000126), GC_LU}, + {RUNE_C(0x000127), RUNE_C(0x000127), GC_LL}, + {RUNE_C(0x000128), RUNE_C(0x000128), GC_LU}, + {RUNE_C(0x000129), RUNE_C(0x000129), GC_LL}, + {RUNE_C(0x00012A), RUNE_C(0x00012A), GC_LU}, + {RUNE_C(0x00012B), RUNE_C(0x00012B), GC_LL}, + {RUNE_C(0x00012C), RUNE_C(0x00012C), GC_LU}, + {RUNE_C(0x00012D), RUNE_C(0x00012D), GC_LL}, + {RUNE_C(0x00012E), RUNE_C(0x00012E), GC_LU}, + {RUNE_C(0x00012F), RUNE_C(0x00012F), GC_LL}, + {RUNE_C(0x000130), RUNE_C(0x000130), GC_LU}, + {RUNE_C(0x000131), RUNE_C(0x000131), GC_LL}, + {RUNE_C(0x000132), RUNE_C(0x000132), GC_LU}, + {RUNE_C(0x000133), RUNE_C(0x000133), GC_LL}, + {RUNE_C(0x000134), RUNE_C(0x000134), GC_LU}, + {RUNE_C(0x000135), RUNE_C(0x000135), GC_LL}, + {RUNE_C(0x000136), RUNE_C(0x000136), GC_LU}, + {RUNE_C(0x000137), RUNE_C(0x000138), GC_LL}, + {RUNE_C(0x000139), RUNE_C(0x000139), GC_LU}, + {RUNE_C(0x00013A), RUNE_C(0x00013A), GC_LL}, + {RUNE_C(0x00013B), RUNE_C(0x00013B), GC_LU}, + {RUNE_C(0x00013C), RUNE_C(0x00013C), GC_LL}, + {RUNE_C(0x00013D), RUNE_C(0x00013D), GC_LU}, + {RUNE_C(0x00013E), RUNE_C(0x00013E), GC_LL}, + {RUNE_C(0x00013F), RUNE_C(0x00013F), GC_LU}, + {RUNE_C(0x000140), RUNE_C(0x000140), GC_LL}, + {RUNE_C(0x000141), RUNE_C(0x000141), GC_LU}, + {RUNE_C(0x000142), RUNE_C(0x000142), GC_LL}, + {RUNE_C(0x000143), RUNE_C(0x000143), GC_LU}, + {RUNE_C(0x000144), RUNE_C(0x000144), GC_LL}, + {RUNE_C(0x000145), RUNE_C(0x000145), GC_LU}, + {RUNE_C(0x000146), RUNE_C(0x000146), GC_LL}, + {RUNE_C(0x000147), RUNE_C(0x000147), GC_LU}, + {RUNE_C(0x000148), RUNE_C(0x000149), GC_LL}, + {RUNE_C(0x00014A), RUNE_C(0x00014A), GC_LU}, + {RUNE_C(0x00014B), RUNE_C(0x00014B), GC_LL}, + {RUNE_C(0x00014C), RUNE_C(0x00014C), GC_LU}, + {RUNE_C(0x00014D), RUNE_C(0x00014D), GC_LL}, + {RUNE_C(0x00014E), RUNE_C(0x00014E), GC_LU}, + {RUNE_C(0x00014F), RUNE_C(0x00014F), GC_LL}, + {RUNE_C(0x000150), RUNE_C(0x000150), GC_LU}, + {RUNE_C(0x000151), RUNE_C(0x000151), GC_LL}, + {RUNE_C(0x000152), RUNE_C(0x000152), GC_LU}, + {RUNE_C(0x000153), RUNE_C(0x000153), GC_LL}, + {RUNE_C(0x000154), RUNE_C(0x000154), GC_LU}, + {RUNE_C(0x000155), RUNE_C(0x000155), GC_LL}, + {RUNE_C(0x000156), RUNE_C(0x000156), GC_LU}, + {RUNE_C(0x000157), RUNE_C(0x000157), GC_LL}, + {RUNE_C(0x000158), RUNE_C(0x000158), GC_LU}, + {RUNE_C(0x000159), RUNE_C(0x000159), GC_LL}, + {RUNE_C(0x00015A), RUNE_C(0x00015A), GC_LU}, + {RUNE_C(0x00015B), RUNE_C(0x00015B), GC_LL}, + {RUNE_C(0x00015C), RUNE_C(0x00015C), GC_LU}, + {RUNE_C(0x00015D), RUNE_C(0x00015D), GC_LL}, + {RUNE_C(0x00015E), RUNE_C(0x00015E), GC_LU}, + {RUNE_C(0x00015F), RUNE_C(0x00015F), GC_LL}, + {RUNE_C(0x000160), RUNE_C(0x000160), GC_LU}, + {RUNE_C(0x000161), RUNE_C(0x000161), GC_LL}, + {RUNE_C(0x000162), RUNE_C(0x000162), GC_LU}, + {RUNE_C(0x000163), RUNE_C(0x000163), GC_LL}, + {RUNE_C(0x000164), RUNE_C(0x000164), GC_LU}, + {RUNE_C(0x000165), RUNE_C(0x000165), GC_LL}, + {RUNE_C(0x000166), RUNE_C(0x000166), GC_LU}, + {RUNE_C(0x000167), RUNE_C(0x000167), GC_LL}, + {RUNE_C(0x000168), RUNE_C(0x000168), GC_LU}, + {RUNE_C(0x000169), RUNE_C(0x000169), GC_LL}, + {RUNE_C(0x00016A), RUNE_C(0x00016A), GC_LU}, + {RUNE_C(0x00016B), RUNE_C(0x00016B), GC_LL}, + {RUNE_C(0x00016C), RUNE_C(0x00016C), GC_LU}, + {RUNE_C(0x00016D), RUNE_C(0x00016D), GC_LL}, + {RUNE_C(0x00016E), RUNE_C(0x00016E), GC_LU}, + {RUNE_C(0x00016F), RUNE_C(0x00016F), GC_LL}, + {RUNE_C(0x000170), RUNE_C(0x000170), GC_LU}, + {RUNE_C(0x000171), RUNE_C(0x000171), GC_LL}, + {RUNE_C(0x000172), RUNE_C(0x000172), GC_LU}, + {RUNE_C(0x000173), RUNE_C(0x000173), GC_LL}, + {RUNE_C(0x000174), RUNE_C(0x000174), GC_LU}, + {RUNE_C(0x000175), RUNE_C(0x000175), GC_LL}, + {RUNE_C(0x000176), RUNE_C(0x000176), GC_LU}, + {RUNE_C(0x000177), RUNE_C(0x000177), GC_LL}, + {RUNE_C(0x000178), RUNE_C(0x000179), GC_LU}, + {RUNE_C(0x00017A), RUNE_C(0x00017A), GC_LL}, + {RUNE_C(0x00017B), RUNE_C(0x00017B), GC_LU}, + {RUNE_C(0x00017C), RUNE_C(0x00017C), GC_LL}, + {RUNE_C(0x00017D), RUNE_C(0x00017D), GC_LU}, + {RUNE_C(0x00017E), RUNE_C(0x000180), GC_LL}, + {RUNE_C(0x000181), RUNE_C(0x000182), GC_LU}, + {RUNE_C(0x000183), RUNE_C(0x000183), GC_LL}, + {RUNE_C(0x000184), RUNE_C(0x000184), GC_LU}, + {RUNE_C(0x000185), RUNE_C(0x000185), GC_LL}, + {RUNE_C(0x000186), RUNE_C(0x000187), GC_LU}, + {RUNE_C(0x000188), RUNE_C(0x000188), GC_LL}, + {RUNE_C(0x000189), RUNE_C(0x00018B), GC_LU}, + {RUNE_C(0x00018C), RUNE_C(0x00018D), GC_LL}, + {RUNE_C(0x00018E), RUNE_C(0x000191), GC_LU}, + {RUNE_C(0x000192), RUNE_C(0x000192), GC_LL}, + {RUNE_C(0x000193), RUNE_C(0x000194), GC_LU}, + {RUNE_C(0x000195), RUNE_C(0x000195), GC_LL}, + {RUNE_C(0x000196), RUNE_C(0x000198), GC_LU}, + {RUNE_C(0x000199), RUNE_C(0x00019B), GC_LL}, + {RUNE_C(0x00019C), RUNE_C(0x00019D), GC_LU}, + {RUNE_C(0x00019E), RUNE_C(0x00019E), GC_LL}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0), GC_LU}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1), GC_LL}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2), GC_LU}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3), GC_LL}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4), GC_LU}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5), GC_LL}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7), GC_LU}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8), GC_LL}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9), GC_LU}, + {RUNE_C(0x0001AA), RUNE_C(0x0001AB), GC_LL}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC), GC_LU}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD), GC_LL}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF), GC_LU}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0), GC_LL}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3), GC_LU}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4), GC_LL}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5), GC_LU}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6), GC_LL}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8), GC_LU}, + {RUNE_C(0x0001B9), RUNE_C(0x0001BA), GC_LL}, + {RUNE_C(0x0001BB), RUNE_C(0x0001BB), GC_LO}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC), GC_LU}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BF), GC_LL}, + {RUNE_C(0x0001C0), RUNE_C(0x0001C3), GC_LO}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C4), GC_LU}, + {RUNE_C(0x0001C5), RUNE_C(0x0001C5), GC_LT}, + {RUNE_C(0x0001C6), RUNE_C(0x0001C6), GC_LL}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C7), GC_LU}, + {RUNE_C(0x0001C8), RUNE_C(0x0001C8), GC_LT}, + {RUNE_C(0x0001C9), RUNE_C(0x0001C9), GC_LL}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CA), GC_LU}, + {RUNE_C(0x0001CB), RUNE_C(0x0001CB), GC_LT}, + {RUNE_C(0x0001CC), RUNE_C(0x0001CC), GC_LL}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD), GC_LU}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE), GC_LL}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF), GC_LU}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0), GC_LL}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1), GC_LU}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2), GC_LL}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3), GC_LU}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4), GC_LL}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5), GC_LU}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6), GC_LL}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7), GC_LU}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8), GC_LL}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9), GC_LU}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA), GC_LL}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB), GC_LU}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD), GC_LL}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE), GC_LU}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF), GC_LL}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0), GC_LU}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1), GC_LL}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2), GC_LU}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3), GC_LL}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4), GC_LU}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5), GC_LL}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6), GC_LU}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7), GC_LL}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8), GC_LU}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9), GC_LL}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA), GC_LU}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB), GC_LL}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC), GC_LU}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED), GC_LL}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE), GC_LU}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F0), GC_LL}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F1), GC_LU}, + {RUNE_C(0x0001F2), RUNE_C(0x0001F2), GC_LT}, + {RUNE_C(0x0001F3), RUNE_C(0x0001F3), GC_LL}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4), GC_LU}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5), GC_LL}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8), GC_LU}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9), GC_LL}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA), GC_LU}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB), GC_LL}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC), GC_LU}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD), GC_LL}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE), GC_LU}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF), GC_LL}, + {RUNE_C(0x000200), RUNE_C(0x000200), GC_LU}, + {RUNE_C(0x000201), RUNE_C(0x000201), GC_LL}, + {RUNE_C(0x000202), RUNE_C(0x000202), GC_LU}, + {RUNE_C(0x000203), RUNE_C(0x000203), GC_LL}, + {RUNE_C(0x000204), RUNE_C(0x000204), GC_LU}, + {RUNE_C(0x000205), RUNE_C(0x000205), GC_LL}, + {RUNE_C(0x000206), RUNE_C(0x000206), GC_LU}, + {RUNE_C(0x000207), RUNE_C(0x000207), GC_LL}, + {RUNE_C(0x000208), RUNE_C(0x000208), GC_LU}, + {RUNE_C(0x000209), RUNE_C(0x000209), GC_LL}, + {RUNE_C(0x00020A), RUNE_C(0x00020A), GC_LU}, + {RUNE_C(0x00020B), RUNE_C(0x00020B), GC_LL}, + {RUNE_C(0x00020C), RUNE_C(0x00020C), GC_LU}, + {RUNE_C(0x00020D), RUNE_C(0x00020D), GC_LL}, + {RUNE_C(0x00020E), RUNE_C(0x00020E), GC_LU}, + {RUNE_C(0x00020F), RUNE_C(0x00020F), GC_LL}, + {RUNE_C(0x000210), RUNE_C(0x000210), GC_LU}, + {RUNE_C(0x000211), RUNE_C(0x000211), GC_LL}, + {RUNE_C(0x000212), RUNE_C(0x000212), GC_LU}, + {RUNE_C(0x000213), RUNE_C(0x000213), GC_LL}, + {RUNE_C(0x000214), RUNE_C(0x000214), GC_LU}, + {RUNE_C(0x000215), RUNE_C(0x000215), GC_LL}, + {RUNE_C(0x000216), RUNE_C(0x000216), GC_LU}, + {RUNE_C(0x000217), RUNE_C(0x000217), GC_LL}, + {RUNE_C(0x000218), RUNE_C(0x000218), GC_LU}, + {RUNE_C(0x000219), RUNE_C(0x000219), GC_LL}, + {RUNE_C(0x00021A), RUNE_C(0x00021A), GC_LU}, + {RUNE_C(0x00021B), RUNE_C(0x00021B), GC_LL}, + {RUNE_C(0x00021C), RUNE_C(0x00021C), GC_LU}, + {RUNE_C(0x00021D), RUNE_C(0x00021D), GC_LL}, + {RUNE_C(0x00021E), RUNE_C(0x00021E), GC_LU}, + {RUNE_C(0x00021F), RUNE_C(0x00021F), GC_LL}, + {RUNE_C(0x000220), RUNE_C(0x000220), GC_LU}, + {RUNE_C(0x000221), RUNE_C(0x000221), GC_LL}, + {RUNE_C(0x000222), RUNE_C(0x000222), GC_LU}, + {RUNE_C(0x000223), RUNE_C(0x000223), GC_LL}, + {RUNE_C(0x000224), RUNE_C(0x000224), GC_LU}, + {RUNE_C(0x000225), RUNE_C(0x000225), GC_LL}, + {RUNE_C(0x000226), RUNE_C(0x000226), GC_LU}, + {RUNE_C(0x000227), RUNE_C(0x000227), GC_LL}, + {RUNE_C(0x000228), RUNE_C(0x000228), GC_LU}, + {RUNE_C(0x000229), RUNE_C(0x000229), GC_LL}, + {RUNE_C(0x00022A), RUNE_C(0x00022A), GC_LU}, + {RUNE_C(0x00022B), RUNE_C(0x00022B), GC_LL}, + {RUNE_C(0x00022C), RUNE_C(0x00022C), GC_LU}, + {RUNE_C(0x00022D), RUNE_C(0x00022D), GC_LL}, + {RUNE_C(0x00022E), RUNE_C(0x00022E), GC_LU}, + {RUNE_C(0x00022F), RUNE_C(0x00022F), GC_LL}, + {RUNE_C(0x000230), RUNE_C(0x000230), GC_LU}, + {RUNE_C(0x000231), RUNE_C(0x000231), GC_LL}, + {RUNE_C(0x000232), RUNE_C(0x000232), GC_LU}, + {RUNE_C(0x000233), RUNE_C(0x000239), GC_LL}, + {RUNE_C(0x00023A), RUNE_C(0x00023B), GC_LU}, + {RUNE_C(0x00023C), RUNE_C(0x00023C), GC_LL}, + {RUNE_C(0x00023D), RUNE_C(0x00023E), GC_LU}, + {RUNE_C(0x00023F), RUNE_C(0x000240), GC_LL}, + {RUNE_C(0x000241), RUNE_C(0x000241), GC_LU}, + {RUNE_C(0x000242), RUNE_C(0x000242), GC_LL}, + {RUNE_C(0x000243), RUNE_C(0x000246), GC_LU}, + {RUNE_C(0x000247), RUNE_C(0x000247), GC_LL}, + {RUNE_C(0x000248), RUNE_C(0x000248), GC_LU}, + {RUNE_C(0x000249), RUNE_C(0x000249), GC_LL}, + {RUNE_C(0x00024A), RUNE_C(0x00024A), GC_LU}, + {RUNE_C(0x00024B), RUNE_C(0x00024B), GC_LL}, + {RUNE_C(0x00024C), RUNE_C(0x00024C), GC_LU}, + {RUNE_C(0x00024D), RUNE_C(0x00024D), GC_LL}, + {RUNE_C(0x00024E), RUNE_C(0x00024E), GC_LU}, + {RUNE_C(0x00024F), RUNE_C(0x000293), GC_LL}, + {RUNE_C(0x000294), RUNE_C(0x000294), GC_LO}, + {RUNE_C(0x000295), RUNE_C(0x0002AF), GC_LL}, + {RUNE_C(0x0002B0), RUNE_C(0x0002C1), GC_LM}, + {RUNE_C(0x0002C2), RUNE_C(0x0002C5), GC_SK}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1), GC_LM}, + {RUNE_C(0x0002D2), RUNE_C(0x0002DF), GC_SK}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4), GC_LM}, + {RUNE_C(0x0002E5), RUNE_C(0x0002EB), GC_SK}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC), GC_LM}, + {RUNE_C(0x0002ED), RUNE_C(0x0002ED), GC_SK}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE), GC_LM}, + {RUNE_C(0x0002EF), RUNE_C(0x0002FF), GC_SK}, + {RUNE_C(0x000300), RUNE_C(0x00036F), GC_MN}, + {RUNE_C(0x000370), RUNE_C(0x000370), GC_LU}, + {RUNE_C(0x000371), RUNE_C(0x000371), GC_LL}, + {RUNE_C(0x000372), RUNE_C(0x000372), GC_LU}, + {RUNE_C(0x000373), RUNE_C(0x000373), GC_LL}, + {RUNE_C(0x000374), RUNE_C(0x000374), GC_LM}, + {RUNE_C(0x000375), RUNE_C(0x000375), GC_SK}, + {RUNE_C(0x000376), RUNE_C(0x000376), GC_LU}, + {RUNE_C(0x000377), RUNE_C(0x000377), GC_LL}, + {RUNE_C(0x00037A), RUNE_C(0x00037A), GC_LM}, + {RUNE_C(0x00037B), RUNE_C(0x00037D), GC_LL}, + {RUNE_C(0x00037E), RUNE_C(0x00037E), GC_PO}, + {RUNE_C(0x00037F), RUNE_C(0x00037F), GC_LU}, + {RUNE_C(0x000384), RUNE_C(0x000385), GC_SK}, + {RUNE_C(0x000386), RUNE_C(0x000386), GC_LU}, + {RUNE_C(0x000387), RUNE_C(0x000387), GC_PO}, + {RUNE_C(0x000388), RUNE_C(0x00038A), GC_LU}, + {RUNE_C(0x00038C), RUNE_C(0x00038C), GC_LU}, + {RUNE_C(0x00038E), RUNE_C(0x00038F), GC_LU}, + {RUNE_C(0x000390), RUNE_C(0x000390), GC_LL}, + {RUNE_C(0x000391), RUNE_C(0x0003A1), GC_LU}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB), GC_LU}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE), GC_LL}, + {RUNE_C(0x0003CF), RUNE_C(0x0003CF), GC_LU}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1), GC_LL}, + {RUNE_C(0x0003D2), RUNE_C(0x0003D4), GC_LU}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7), GC_LL}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8), GC_LU}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9), GC_LL}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA), GC_LU}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB), GC_LL}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC), GC_LU}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD), GC_LL}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE), GC_LU}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF), GC_LL}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0), GC_LU}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1), GC_LL}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2), GC_LU}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3), GC_LL}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4), GC_LU}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5), GC_LL}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6), GC_LU}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7), GC_LL}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8), GC_LU}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9), GC_LL}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA), GC_LU}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB), GC_LL}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC), GC_LU}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED), GC_LL}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE), GC_LU}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3), GC_LL}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F4), GC_LU}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5), GC_LL}, + {RUNE_C(0x0003F6), RUNE_C(0x0003F6), GC_SM}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7), GC_LU}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8), GC_LL}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA), GC_LU}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FC), GC_LL}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F), GC_LU}, + {RUNE_C(0x000430), RUNE_C(0x00045F), GC_LL}, + {RUNE_C(0x000460), RUNE_C(0x000460), GC_LU}, + {RUNE_C(0x000461), RUNE_C(0x000461), GC_LL}, + {RUNE_C(0x000462), RUNE_C(0x000462), GC_LU}, + {RUNE_C(0x000463), RUNE_C(0x000463), GC_LL}, + {RUNE_C(0x000464), RUNE_C(0x000464), GC_LU}, + {RUNE_C(0x000465), RUNE_C(0x000465), GC_LL}, + {RUNE_C(0x000466), RUNE_C(0x000466), GC_LU}, + {RUNE_C(0x000467), RUNE_C(0x000467), GC_LL}, + {RUNE_C(0x000468), RUNE_C(0x000468), GC_LU}, + {RUNE_C(0x000469), RUNE_C(0x000469), GC_LL}, + {RUNE_C(0x00046A), RUNE_C(0x00046A), GC_LU}, + {RUNE_C(0x00046B), RUNE_C(0x00046B), GC_LL}, + {RUNE_C(0x00046C), RUNE_C(0x00046C), GC_LU}, + {RUNE_C(0x00046D), RUNE_C(0x00046D), GC_LL}, + {RUNE_C(0x00046E), RUNE_C(0x00046E), GC_LU}, + {RUNE_C(0x00046F), RUNE_C(0x00046F), GC_LL}, + {RUNE_C(0x000470), RUNE_C(0x000470), GC_LU}, + {RUNE_C(0x000471), RUNE_C(0x000471), GC_LL}, + {RUNE_C(0x000472), RUNE_C(0x000472), GC_LU}, + {RUNE_C(0x000473), RUNE_C(0x000473), GC_LL}, + {RUNE_C(0x000474), RUNE_C(0x000474), GC_LU}, + {RUNE_C(0x000475), RUNE_C(0x000475), GC_LL}, + {RUNE_C(0x000476), RUNE_C(0x000476), GC_LU}, + {RUNE_C(0x000477), RUNE_C(0x000477), GC_LL}, + {RUNE_C(0x000478), RUNE_C(0x000478), GC_LU}, + {RUNE_C(0x000479), RUNE_C(0x000479), GC_LL}, + {RUNE_C(0x00047A), RUNE_C(0x00047A), GC_LU}, + {RUNE_C(0x00047B), RUNE_C(0x00047B), GC_LL}, + {RUNE_C(0x00047C), RUNE_C(0x00047C), GC_LU}, + {RUNE_C(0x00047D), RUNE_C(0x00047D), GC_LL}, + {RUNE_C(0x00047E), RUNE_C(0x00047E), GC_LU}, + {RUNE_C(0x00047F), RUNE_C(0x00047F), GC_LL}, + {RUNE_C(0x000480), RUNE_C(0x000480), GC_LU}, + {RUNE_C(0x000481), RUNE_C(0x000481), GC_LL}, + {RUNE_C(0x000482), RUNE_C(0x000482), GC_SO}, + {RUNE_C(0x000483), RUNE_C(0x000487), GC_MN}, + {RUNE_C(0x000488), RUNE_C(0x000489), GC_ME}, + {RUNE_C(0x00048A), RUNE_C(0x00048A), GC_LU}, + {RUNE_C(0x00048B), RUNE_C(0x00048B), GC_LL}, + {RUNE_C(0x00048C), RUNE_C(0x00048C), GC_LU}, + {RUNE_C(0x00048D), RUNE_C(0x00048D), GC_LL}, + {RUNE_C(0x00048E), RUNE_C(0x00048E), GC_LU}, + {RUNE_C(0x00048F), RUNE_C(0x00048F), GC_LL}, + {RUNE_C(0x000490), RUNE_C(0x000490), GC_LU}, + {RUNE_C(0x000491), RUNE_C(0x000491), GC_LL}, + {RUNE_C(0x000492), RUNE_C(0x000492), GC_LU}, + {RUNE_C(0x000493), RUNE_C(0x000493), GC_LL}, + {RUNE_C(0x000494), RUNE_C(0x000494), GC_LU}, + {RUNE_C(0x000495), RUNE_C(0x000495), GC_LL}, + {RUNE_C(0x000496), RUNE_C(0x000496), GC_LU}, + {RUNE_C(0x000497), RUNE_C(0x000497), GC_LL}, + {RUNE_C(0x000498), RUNE_C(0x000498), GC_LU}, + {RUNE_C(0x000499), RUNE_C(0x000499), GC_LL}, + {RUNE_C(0x00049A), RUNE_C(0x00049A), GC_LU}, + {RUNE_C(0x00049B), RUNE_C(0x00049B), GC_LL}, + {RUNE_C(0x00049C), RUNE_C(0x00049C), GC_LU}, + {RUNE_C(0x00049D), RUNE_C(0x00049D), GC_LL}, + {RUNE_C(0x00049E), RUNE_C(0x00049E), GC_LU}, + {RUNE_C(0x00049F), RUNE_C(0x00049F), GC_LL}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0), GC_LU}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1), GC_LL}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2), GC_LU}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3), GC_LL}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4), GC_LU}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5), GC_LL}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6), GC_LU}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7), GC_LL}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8), GC_LU}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9), GC_LL}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA), GC_LU}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB), GC_LL}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC), GC_LU}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD), GC_LL}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE), GC_LU}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF), GC_LL}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0), GC_LU}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1), GC_LL}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2), GC_LU}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3), GC_LL}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4), GC_LU}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5), GC_LL}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6), GC_LU}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7), GC_LL}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8), GC_LU}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9), GC_LL}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA), GC_LU}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB), GC_LL}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC), GC_LU}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD), GC_LL}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE), GC_LU}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF), GC_LL}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1), GC_LU}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2), GC_LL}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3), GC_LU}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4), GC_LL}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5), GC_LU}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6), GC_LL}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7), GC_LU}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8), GC_LL}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9), GC_LU}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA), GC_LL}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB), GC_LU}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC), GC_LL}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD), GC_LU}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF), GC_LL}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0), GC_LU}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1), GC_LL}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2), GC_LU}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3), GC_LL}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4), GC_LU}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5), GC_LL}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6), GC_LU}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7), GC_LL}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8), GC_LU}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9), GC_LL}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA), GC_LU}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB), GC_LL}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC), GC_LU}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD), GC_LL}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE), GC_LU}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF), GC_LL}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0), GC_LU}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1), GC_LL}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2), GC_LU}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3), GC_LL}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4), GC_LU}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5), GC_LL}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6), GC_LU}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7), GC_LL}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8), GC_LU}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9), GC_LL}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA), GC_LU}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB), GC_LL}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC), GC_LU}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED), GC_LL}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE), GC_LU}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF), GC_LL}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0), GC_LU}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1), GC_LL}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2), GC_LU}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3), GC_LL}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4), GC_LU}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5), GC_LL}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6), GC_LU}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7), GC_LL}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8), GC_LU}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9), GC_LL}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA), GC_LU}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB), GC_LL}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC), GC_LU}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD), GC_LL}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE), GC_LU}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF), GC_LL}, + {RUNE_C(0x000500), RUNE_C(0x000500), GC_LU}, + {RUNE_C(0x000501), RUNE_C(0x000501), GC_LL}, + {RUNE_C(0x000502), RUNE_C(0x000502), GC_LU}, + {RUNE_C(0x000503), RUNE_C(0x000503), GC_LL}, + {RUNE_C(0x000504), RUNE_C(0x000504), GC_LU}, + {RUNE_C(0x000505), RUNE_C(0x000505), GC_LL}, + {RUNE_C(0x000506), RUNE_C(0x000506), GC_LU}, + {RUNE_C(0x000507), RUNE_C(0x000507), GC_LL}, + {RUNE_C(0x000508), RUNE_C(0x000508), GC_LU}, + {RUNE_C(0x000509), RUNE_C(0x000509), GC_LL}, + {RUNE_C(0x00050A), RUNE_C(0x00050A), GC_LU}, + {RUNE_C(0x00050B), RUNE_C(0x00050B), GC_LL}, + {RUNE_C(0x00050C), RUNE_C(0x00050C), GC_LU}, + {RUNE_C(0x00050D), RUNE_C(0x00050D), GC_LL}, + {RUNE_C(0x00050E), RUNE_C(0x00050E), GC_LU}, + {RUNE_C(0x00050F), RUNE_C(0x00050F), GC_LL}, + {RUNE_C(0x000510), RUNE_C(0x000510), GC_LU}, + {RUNE_C(0x000511), RUNE_C(0x000511), GC_LL}, + {RUNE_C(0x000512), RUNE_C(0x000512), GC_LU}, + {RUNE_C(0x000513), RUNE_C(0x000513), GC_LL}, + {RUNE_C(0x000514), RUNE_C(0x000514), GC_LU}, + {RUNE_C(0x000515), RUNE_C(0x000515), GC_LL}, + {RUNE_C(0x000516), RUNE_C(0x000516), GC_LU}, + {RUNE_C(0x000517), RUNE_C(0x000517), GC_LL}, + {RUNE_C(0x000518), RUNE_C(0x000518), GC_LU}, + {RUNE_C(0x000519), RUNE_C(0x000519), GC_LL}, + {RUNE_C(0x00051A), RUNE_C(0x00051A), GC_LU}, + {RUNE_C(0x00051B), RUNE_C(0x00051B), GC_LL}, + {RUNE_C(0x00051C), RUNE_C(0x00051C), GC_LU}, + {RUNE_C(0x00051D), RUNE_C(0x00051D), GC_LL}, + {RUNE_C(0x00051E), RUNE_C(0x00051E), GC_LU}, + {RUNE_C(0x00051F), RUNE_C(0x00051F), GC_LL}, + {RUNE_C(0x000520), RUNE_C(0x000520), GC_LU}, + {RUNE_C(0x000521), RUNE_C(0x000521), GC_LL}, + {RUNE_C(0x000522), RUNE_C(0x000522), GC_LU}, + {RUNE_C(0x000523), RUNE_C(0x000523), GC_LL}, + {RUNE_C(0x000524), RUNE_C(0x000524), GC_LU}, + {RUNE_C(0x000525), RUNE_C(0x000525), GC_LL}, + {RUNE_C(0x000526), RUNE_C(0x000526), GC_LU}, + {RUNE_C(0x000527), RUNE_C(0x000527), GC_LL}, + {RUNE_C(0x000528), RUNE_C(0x000528), GC_LU}, + {RUNE_C(0x000529), RUNE_C(0x000529), GC_LL}, + {RUNE_C(0x00052A), RUNE_C(0x00052A), GC_LU}, + {RUNE_C(0x00052B), RUNE_C(0x00052B), GC_LL}, + {RUNE_C(0x00052C), RUNE_C(0x00052C), GC_LU}, + {RUNE_C(0x00052D), RUNE_C(0x00052D), GC_LL}, + {RUNE_C(0x00052E), RUNE_C(0x00052E), GC_LU}, + {RUNE_C(0x00052F), RUNE_C(0x00052F), GC_LL}, + {RUNE_C(0x000531), RUNE_C(0x000556), GC_LU}, + {RUNE_C(0x000559), RUNE_C(0x000559), GC_LM}, + {RUNE_C(0x00055A), RUNE_C(0x00055F), GC_PO}, + {RUNE_C(0x000560), RUNE_C(0x000588), GC_LL}, + {RUNE_C(0x000589), RUNE_C(0x000589), GC_PO}, + {RUNE_C(0x00058A), RUNE_C(0x00058A), GC_PD}, + {RUNE_C(0x00058D), RUNE_C(0x00058E), GC_SO}, + {RUNE_C(0x00058F), RUNE_C(0x00058F), GC_SC}, + {RUNE_C(0x000591), RUNE_C(0x0005BD), GC_MN}, + {RUNE_C(0x0005BE), RUNE_C(0x0005BE), GC_PD}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF), GC_MN}, + {RUNE_C(0x0005C0), RUNE_C(0x0005C0), GC_PO}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2), GC_MN}, + {RUNE_C(0x0005C3), RUNE_C(0x0005C3), GC_PO}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5), GC_MN}, + {RUNE_C(0x0005C6), RUNE_C(0x0005C6), GC_PO}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7), GC_MN}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA), GC_LO}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2), GC_LO}, + {RUNE_C(0x0005F3), RUNE_C(0x0005F4), GC_PO}, + {RUNE_C(0x000600), RUNE_C(0x000605), GC_CF}, + {RUNE_C(0x000606), RUNE_C(0x000608), GC_SM}, + {RUNE_C(0x000609), RUNE_C(0x00060A), GC_PO}, + {RUNE_C(0x00060B), RUNE_C(0x00060B), GC_SC}, + {RUNE_C(0x00060C), RUNE_C(0x00060D), GC_PO}, + {RUNE_C(0x00060E), RUNE_C(0x00060F), GC_SO}, + {RUNE_C(0x000610), RUNE_C(0x00061A), GC_MN}, + {RUNE_C(0x00061B), RUNE_C(0x00061B), GC_PO}, + {RUNE_C(0x00061C), RUNE_C(0x00061C), GC_CF}, + {RUNE_C(0x00061D), RUNE_C(0x00061F), GC_PO}, + {RUNE_C(0x000620), RUNE_C(0x00063F), GC_LO}, + {RUNE_C(0x000640), RUNE_C(0x000640), GC_LM}, + {RUNE_C(0x000641), RUNE_C(0x00064A), GC_LO}, + {RUNE_C(0x00064B), RUNE_C(0x00065F), GC_MN}, + {RUNE_C(0x000660), RUNE_C(0x000669), GC_ND}, + {RUNE_C(0x00066A), RUNE_C(0x00066D), GC_PO}, + {RUNE_C(0x00066E), RUNE_C(0x00066F), GC_LO}, + {RUNE_C(0x000670), RUNE_C(0x000670), GC_MN}, + {RUNE_C(0x000671), RUNE_C(0x0006D3), GC_LO}, + {RUNE_C(0x0006D4), RUNE_C(0x0006D4), GC_PO}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5), GC_LO}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC), GC_MN}, + {RUNE_C(0x0006DD), RUNE_C(0x0006DD), GC_CF}, + {RUNE_C(0x0006DE), RUNE_C(0x0006DE), GC_SO}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4), GC_MN}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6), GC_LM}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8), GC_MN}, + {RUNE_C(0x0006E9), RUNE_C(0x0006E9), GC_SO}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED), GC_MN}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF), GC_LO}, + {RUNE_C(0x0006F0), RUNE_C(0x0006F9), GC_ND}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC), GC_LO}, + {RUNE_C(0x0006FD), RUNE_C(0x0006FE), GC_SO}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF), GC_LO}, + {RUNE_C(0x000700), RUNE_C(0x00070D), GC_PO}, + {RUNE_C(0x00070F), RUNE_C(0x00070F), GC_CF}, + {RUNE_C(0x000710), RUNE_C(0x000710), GC_LO}, + {RUNE_C(0x000711), RUNE_C(0x000711), GC_MN}, + {RUNE_C(0x000712), RUNE_C(0x00072F), GC_LO}, + {RUNE_C(0x000730), RUNE_C(0x00074A), GC_MN}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5), GC_LO}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0), GC_MN}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1), GC_LO}, + {RUNE_C(0x0007C0), RUNE_C(0x0007C9), GC_ND}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA), GC_LO}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3), GC_MN}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5), GC_LM}, + {RUNE_C(0x0007F6), RUNE_C(0x0007F6), GC_SO}, + {RUNE_C(0x0007F7), RUNE_C(0x0007F9), GC_PO}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA), GC_LM}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD), GC_MN}, + {RUNE_C(0x0007FE), RUNE_C(0x0007FF), GC_SC}, + {RUNE_C(0x000800), RUNE_C(0x000815), GC_LO}, + {RUNE_C(0x000816), RUNE_C(0x000819), GC_MN}, + {RUNE_C(0x00081A), RUNE_C(0x00081A), GC_LM}, + {RUNE_C(0x00081B), RUNE_C(0x000823), GC_MN}, + {RUNE_C(0x000824), RUNE_C(0x000824), GC_LM}, + {RUNE_C(0x000825), RUNE_C(0x000827), GC_MN}, + {RUNE_C(0x000828), RUNE_C(0x000828), GC_LM}, + {RUNE_C(0x000829), RUNE_C(0x00082D), GC_MN}, + {RUNE_C(0x000830), RUNE_C(0x00083E), GC_PO}, + {RUNE_C(0x000840), RUNE_C(0x000858), GC_LO}, + {RUNE_C(0x000859), RUNE_C(0x00085B), GC_MN}, + {RUNE_C(0x00085E), RUNE_C(0x00085E), GC_PO}, + {RUNE_C(0x000860), RUNE_C(0x00086A), GC_LO}, + {RUNE_C(0x000870), RUNE_C(0x000887), GC_LO}, + {RUNE_C(0x000888), RUNE_C(0x000888), GC_SK}, + {RUNE_C(0x000889), RUNE_C(0x00088E), GC_LO}, + {RUNE_C(0x000890), RUNE_C(0x000891), GC_CF}, + {RUNE_C(0x000898), RUNE_C(0x00089F), GC_MN}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C8), GC_LO}, + {RUNE_C(0x0008C9), RUNE_C(0x0008C9), GC_LM}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1), GC_MN}, + {RUNE_C(0x0008E2), RUNE_C(0x0008E2), GC_CF}, + {RUNE_C(0x0008E3), RUNE_C(0x000902), GC_MN}, + {RUNE_C(0x000903), RUNE_C(0x000903), GC_MC}, + {RUNE_C(0x000904), RUNE_C(0x000939), GC_LO}, + {RUNE_C(0x00093A), RUNE_C(0x00093A), GC_MN}, + {RUNE_C(0x00093B), RUNE_C(0x00093B), GC_MC}, + {RUNE_C(0x00093C), RUNE_C(0x00093C), GC_MN}, + {RUNE_C(0x00093D), RUNE_C(0x00093D), GC_LO}, + {RUNE_C(0x00093E), RUNE_C(0x000940), GC_MC}, + {RUNE_C(0x000941), RUNE_C(0x000948), GC_MN}, + {RUNE_C(0x000949), RUNE_C(0x00094C), GC_MC}, + {RUNE_C(0x00094D), RUNE_C(0x00094D), GC_MN}, + {RUNE_C(0x00094E), RUNE_C(0x00094F), GC_MC}, + {RUNE_C(0x000950), RUNE_C(0x000950), GC_LO}, + {RUNE_C(0x000951), RUNE_C(0x000957), GC_MN}, + {RUNE_C(0x000958), RUNE_C(0x000961), GC_LO}, + {RUNE_C(0x000962), RUNE_C(0x000963), GC_MN}, + {RUNE_C(0x000964), RUNE_C(0x000965), GC_PO}, + {RUNE_C(0x000966), RUNE_C(0x00096F), GC_ND}, + {RUNE_C(0x000970), RUNE_C(0x000970), GC_PO}, + {RUNE_C(0x000971), RUNE_C(0x000971), GC_LM}, + {RUNE_C(0x000972), RUNE_C(0x000980), GC_LO}, + {RUNE_C(0x000981), RUNE_C(0x000981), GC_MN}, + {RUNE_C(0x000982), RUNE_C(0x000983), GC_MC}, + {RUNE_C(0x000985), RUNE_C(0x00098C), GC_LO}, + {RUNE_C(0x00098F), RUNE_C(0x000990), GC_LO}, + {RUNE_C(0x000993), RUNE_C(0x0009A8), GC_LO}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0), GC_LO}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2), GC_LO}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9), GC_LO}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC), GC_MN}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD), GC_LO}, + {RUNE_C(0x0009BE), RUNE_C(0x0009C0), GC_MC}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4), GC_MN}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8), GC_MC}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC), GC_MC}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD), GC_MN}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE), GC_LO}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7), GC_MC}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD), GC_LO}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1), GC_LO}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3), GC_MN}, + {RUNE_C(0x0009E6), RUNE_C(0x0009EF), GC_ND}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1), GC_LO}, + {RUNE_C(0x0009F2), RUNE_C(0x0009F3), GC_SC}, + {RUNE_C(0x0009F4), RUNE_C(0x0009F9), GC_NO}, + {RUNE_C(0x0009FA), RUNE_C(0x0009FA), GC_SO}, + {RUNE_C(0x0009FB), RUNE_C(0x0009FB), GC_SC}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC), GC_LO}, + {RUNE_C(0x0009FD), RUNE_C(0x0009FD), GC_PO}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE), GC_MN}, + {RUNE_C(0x000A01), RUNE_C(0x000A02), GC_MN}, + {RUNE_C(0x000A03), RUNE_C(0x000A03), GC_MC}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A), GC_LO}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10), GC_LO}, + {RUNE_C(0x000A13), RUNE_C(0x000A28), GC_LO}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30), GC_LO}, + {RUNE_C(0x000A32), RUNE_C(0x000A33), GC_LO}, + {RUNE_C(0x000A35), RUNE_C(0x000A36), GC_LO}, + {RUNE_C(0x000A38), RUNE_C(0x000A39), GC_LO}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C), GC_MN}, + {RUNE_C(0x000A3E), RUNE_C(0x000A40), GC_MC}, + {RUNE_C(0x000A41), RUNE_C(0x000A42), GC_MN}, + {RUNE_C(0x000A47), RUNE_C(0x000A48), GC_MN}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D), GC_MN}, + {RUNE_C(0x000A51), RUNE_C(0x000A51), GC_MN}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C), GC_LO}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E), GC_LO}, + {RUNE_C(0x000A66), RUNE_C(0x000A6F), GC_ND}, + {RUNE_C(0x000A70), RUNE_C(0x000A71), GC_MN}, + {RUNE_C(0x000A72), RUNE_C(0x000A74), GC_LO}, + {RUNE_C(0x000A75), RUNE_C(0x000A75), GC_MN}, + {RUNE_C(0x000A76), RUNE_C(0x000A76), GC_PO}, + {RUNE_C(0x000A81), RUNE_C(0x000A82), GC_MN}, + {RUNE_C(0x000A83), RUNE_C(0x000A83), GC_MC}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D), GC_LO}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91), GC_LO}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8), GC_LO}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0), GC_LO}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3), GC_LO}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9), GC_LO}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC), GC_MN}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD), GC_LO}, + {RUNE_C(0x000ABE), RUNE_C(0x000AC0), GC_MC}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5), GC_MN}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8), GC_MN}, + {RUNE_C(0x000AC9), RUNE_C(0x000AC9), GC_MC}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC), GC_MC}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD), GC_MN}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0), GC_LO}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1), GC_LO}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3), GC_MN}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF), GC_ND}, + {RUNE_C(0x000AF0), RUNE_C(0x000AF0), GC_PO}, + {RUNE_C(0x000AF1), RUNE_C(0x000AF1), GC_SC}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9), GC_LO}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF), GC_MN}, + {RUNE_C(0x000B01), RUNE_C(0x000B01), GC_MN}, + {RUNE_C(0x000B02), RUNE_C(0x000B03), GC_MC}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C), GC_LO}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10), GC_LO}, + {RUNE_C(0x000B13), RUNE_C(0x000B28), GC_LO}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30), GC_LO}, + {RUNE_C(0x000B32), RUNE_C(0x000B33), GC_LO}, + {RUNE_C(0x000B35), RUNE_C(0x000B39), GC_LO}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C), GC_MN}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D), GC_LO}, + {RUNE_C(0x000B3E), RUNE_C(0x000B3E), GC_MC}, + {RUNE_C(0x000B3F), RUNE_C(0x000B3F), GC_MN}, + {RUNE_C(0x000B40), RUNE_C(0x000B40), GC_MC}, + {RUNE_C(0x000B41), RUNE_C(0x000B44), GC_MN}, + {RUNE_C(0x000B47), RUNE_C(0x000B48), GC_MC}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C), GC_MC}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D), GC_MN}, + {RUNE_C(0x000B55), RUNE_C(0x000B56), GC_MN}, + {RUNE_C(0x000B57), RUNE_C(0x000B57), GC_MC}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D), GC_LO}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61), GC_LO}, + {RUNE_C(0x000B62), RUNE_C(0x000B63), GC_MN}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F), GC_ND}, + {RUNE_C(0x000B70), RUNE_C(0x000B70), GC_SO}, + {RUNE_C(0x000B71), RUNE_C(0x000B71), GC_LO}, + {RUNE_C(0x000B72), RUNE_C(0x000B77), GC_NO}, + {RUNE_C(0x000B82), RUNE_C(0x000B82), GC_MN}, + {RUNE_C(0x000B83), RUNE_C(0x000B83), GC_LO}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A), GC_LO}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90), GC_LO}, + {RUNE_C(0x000B92), RUNE_C(0x000B95), GC_LO}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A), GC_LO}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C), GC_LO}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F), GC_LO}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4), GC_LO}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA), GC_LO}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9), GC_LO}, + {RUNE_C(0x000BBE), RUNE_C(0x000BBF), GC_MC}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0), GC_MN}, + {RUNE_C(0x000BC1), RUNE_C(0x000BC2), GC_MC}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8), GC_MC}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC), GC_MC}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD), GC_MN}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0), GC_LO}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7), GC_MC}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF), GC_ND}, + {RUNE_C(0x000BF0), RUNE_C(0x000BF2), GC_NO}, + {RUNE_C(0x000BF3), RUNE_C(0x000BF8), GC_SO}, + {RUNE_C(0x000BF9), RUNE_C(0x000BF9), GC_SC}, + {RUNE_C(0x000BFA), RUNE_C(0x000BFA), GC_SO}, + {RUNE_C(0x000C00), RUNE_C(0x000C00), GC_MN}, + {RUNE_C(0x000C01), RUNE_C(0x000C03), GC_MC}, + {RUNE_C(0x000C04), RUNE_C(0x000C04), GC_MN}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C), GC_LO}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10), GC_LO}, + {RUNE_C(0x000C12), RUNE_C(0x000C28), GC_LO}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39), GC_LO}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C), GC_MN}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D), GC_LO}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40), GC_MN}, + {RUNE_C(0x000C41), RUNE_C(0x000C44), GC_MC}, + {RUNE_C(0x000C46), RUNE_C(0x000C48), GC_MN}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D), GC_MN}, + {RUNE_C(0x000C55), RUNE_C(0x000C56), GC_MN}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A), GC_LO}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D), GC_LO}, + {RUNE_C(0x000C60), RUNE_C(0x000C61), GC_LO}, + {RUNE_C(0x000C62), RUNE_C(0x000C63), GC_MN}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F), GC_ND}, + {RUNE_C(0x000C77), RUNE_C(0x000C77), GC_PO}, + {RUNE_C(0x000C78), RUNE_C(0x000C7E), GC_NO}, + {RUNE_C(0x000C7F), RUNE_C(0x000C7F), GC_SO}, + {RUNE_C(0x000C80), RUNE_C(0x000C80), GC_LO}, + {RUNE_C(0x000C81), RUNE_C(0x000C81), GC_MN}, + {RUNE_C(0x000C82), RUNE_C(0x000C83), GC_MC}, + {RUNE_C(0x000C84), RUNE_C(0x000C84), GC_PO}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C), GC_LO}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90), GC_LO}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8), GC_LO}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3), GC_LO}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9), GC_LO}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC), GC_MN}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD), GC_LO}, + {RUNE_C(0x000CBE), RUNE_C(0x000CBE), GC_MC}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF), GC_MN}, + {RUNE_C(0x000CC0), RUNE_C(0x000CC4), GC_MC}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6), GC_MN}, + {RUNE_C(0x000CC7), RUNE_C(0x000CC8), GC_MC}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCB), GC_MC}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD), GC_MN}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6), GC_MC}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE), GC_LO}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1), GC_LO}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3), GC_MN}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF), GC_ND}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2), GC_LO}, + {RUNE_C(0x000CF3), RUNE_C(0x000CF3), GC_MC}, + {RUNE_C(0x000D00), RUNE_C(0x000D01), GC_MN}, + {RUNE_C(0x000D02), RUNE_C(0x000D03), GC_MC}, + {RUNE_C(0x000D04), RUNE_C(0x000D0C), GC_LO}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10), GC_LO}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A), GC_LO}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C), GC_MN}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D), GC_LO}, + {RUNE_C(0x000D3E), RUNE_C(0x000D40), GC_MC}, + {RUNE_C(0x000D41), RUNE_C(0x000D44), GC_MN}, + {RUNE_C(0x000D46), RUNE_C(0x000D48), GC_MC}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C), GC_MC}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D), GC_MN}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E), GC_LO}, + {RUNE_C(0x000D4F), RUNE_C(0x000D4F), GC_SO}, + {RUNE_C(0x000D54), RUNE_C(0x000D56), GC_LO}, + {RUNE_C(0x000D57), RUNE_C(0x000D57), GC_MC}, + {RUNE_C(0x000D58), RUNE_C(0x000D5E), GC_NO}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61), GC_LO}, + {RUNE_C(0x000D62), RUNE_C(0x000D63), GC_MN}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F), GC_ND}, + {RUNE_C(0x000D70), RUNE_C(0x000D78), GC_NO}, + {RUNE_C(0x000D79), RUNE_C(0x000D79), GC_SO}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F), GC_LO}, + {RUNE_C(0x000D81), RUNE_C(0x000D81), GC_MN}, + {RUNE_C(0x000D82), RUNE_C(0x000D83), GC_MC}, + {RUNE_C(0x000D85), RUNE_C(0x000D96), GC_LO}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1), GC_LO}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB), GC_LO}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD), GC_LO}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6), GC_LO}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA), GC_MN}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD1), GC_MC}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4), GC_MN}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6), GC_MN}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF), GC_MC}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF), GC_ND}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3), GC_MC}, + {RUNE_C(0x000DF4), RUNE_C(0x000DF4), GC_PO}, + {RUNE_C(0x000E01), RUNE_C(0x000E30), GC_LO}, + {RUNE_C(0x000E31), RUNE_C(0x000E31), GC_MN}, + {RUNE_C(0x000E32), RUNE_C(0x000E33), GC_LO}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A), GC_MN}, + {RUNE_C(0x000E3F), RUNE_C(0x000E3F), GC_SC}, + {RUNE_C(0x000E40), RUNE_C(0x000E45), GC_LO}, + {RUNE_C(0x000E46), RUNE_C(0x000E46), GC_LM}, + {RUNE_C(0x000E47), RUNE_C(0x000E4E), GC_MN}, + {RUNE_C(0x000E4F), RUNE_C(0x000E4F), GC_PO}, + {RUNE_C(0x000E50), RUNE_C(0x000E59), GC_ND}, + {RUNE_C(0x000E5A), RUNE_C(0x000E5B), GC_PO}, + {RUNE_C(0x000E81), RUNE_C(0x000E82), GC_LO}, + {RUNE_C(0x000E84), RUNE_C(0x000E84), GC_LO}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A), GC_LO}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3), GC_LO}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5), GC_LO}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0), GC_LO}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1), GC_MN}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB3), GC_LO}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC), GC_MN}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD), GC_LO}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4), GC_LO}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6), GC_LM}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE), GC_MN}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9), GC_ND}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF), GC_LO}, + {RUNE_C(0x000F00), RUNE_C(0x000F00), GC_LO}, + {RUNE_C(0x000F01), RUNE_C(0x000F03), GC_SO}, + {RUNE_C(0x000F04), RUNE_C(0x000F12), GC_PO}, + {RUNE_C(0x000F13), RUNE_C(0x000F13), GC_SO}, + {RUNE_C(0x000F14), RUNE_C(0x000F14), GC_PO}, + {RUNE_C(0x000F15), RUNE_C(0x000F17), GC_SO}, + {RUNE_C(0x000F18), RUNE_C(0x000F19), GC_MN}, + {RUNE_C(0x000F1A), RUNE_C(0x000F1F), GC_SO}, + {RUNE_C(0x000F20), RUNE_C(0x000F29), GC_ND}, + {RUNE_C(0x000F2A), RUNE_C(0x000F33), GC_NO}, + {RUNE_C(0x000F34), RUNE_C(0x000F34), GC_SO}, + {RUNE_C(0x000F35), RUNE_C(0x000F35), GC_MN}, + {RUNE_C(0x000F36), RUNE_C(0x000F36), GC_SO}, + {RUNE_C(0x000F37), RUNE_C(0x000F37), GC_MN}, + {RUNE_C(0x000F38), RUNE_C(0x000F38), GC_SO}, + {RUNE_C(0x000F39), RUNE_C(0x000F39), GC_MN}, + {RUNE_C(0x000F3A), RUNE_C(0x000F3A), GC_PS}, + {RUNE_C(0x000F3B), RUNE_C(0x000F3B), GC_PE}, + {RUNE_C(0x000F3C), RUNE_C(0x000F3C), GC_PS}, + {RUNE_C(0x000F3D), RUNE_C(0x000F3D), GC_PE}, + {RUNE_C(0x000F3E), RUNE_C(0x000F3F), GC_MC}, + {RUNE_C(0x000F40), RUNE_C(0x000F47), GC_LO}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C), GC_LO}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E), GC_MN}, + {RUNE_C(0x000F7F), RUNE_C(0x000F7F), GC_MC}, + {RUNE_C(0x000F80), RUNE_C(0x000F84), GC_MN}, + {RUNE_C(0x000F85), RUNE_C(0x000F85), GC_PO}, + {RUNE_C(0x000F86), RUNE_C(0x000F87), GC_MN}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C), GC_LO}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97), GC_MN}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC), GC_MN}, + {RUNE_C(0x000FBE), RUNE_C(0x000FC5), GC_SO}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6), GC_MN}, + {RUNE_C(0x000FC7), RUNE_C(0x000FCC), GC_SO}, + {RUNE_C(0x000FCE), RUNE_C(0x000FCF), GC_SO}, + {RUNE_C(0x000FD0), RUNE_C(0x000FD4), GC_PO}, + {RUNE_C(0x000FD5), RUNE_C(0x000FD8), GC_SO}, + {RUNE_C(0x000FD9), RUNE_C(0x000FDA), GC_PO}, + {RUNE_C(0x001000), RUNE_C(0x00102A), GC_LO}, + {RUNE_C(0x00102B), RUNE_C(0x00102C), GC_MC}, + {RUNE_C(0x00102D), RUNE_C(0x001030), GC_MN}, + {RUNE_C(0x001031), RUNE_C(0x001031), GC_MC}, + {RUNE_C(0x001032), RUNE_C(0x001037), GC_MN}, + {RUNE_C(0x001038), RUNE_C(0x001038), GC_MC}, + {RUNE_C(0x001039), RUNE_C(0x00103A), GC_MN}, + {RUNE_C(0x00103B), RUNE_C(0x00103C), GC_MC}, + {RUNE_C(0x00103D), RUNE_C(0x00103E), GC_MN}, + {RUNE_C(0x00103F), RUNE_C(0x00103F), GC_LO}, + {RUNE_C(0x001040), RUNE_C(0x001049), GC_ND}, + {RUNE_C(0x00104A), RUNE_C(0x00104F), GC_PO}, + {RUNE_C(0x001050), RUNE_C(0x001055), GC_LO}, + {RUNE_C(0x001056), RUNE_C(0x001057), GC_MC}, + {RUNE_C(0x001058), RUNE_C(0x001059), GC_MN}, + {RUNE_C(0x00105A), RUNE_C(0x00105D), GC_LO}, + {RUNE_C(0x00105E), RUNE_C(0x001060), GC_MN}, + {RUNE_C(0x001061), RUNE_C(0x001061), GC_LO}, + {RUNE_C(0x001062), RUNE_C(0x001064), GC_MC}, + {RUNE_C(0x001065), RUNE_C(0x001066), GC_LO}, + {RUNE_C(0x001067), RUNE_C(0x00106D), GC_MC}, + {RUNE_C(0x00106E), RUNE_C(0x001070), GC_LO}, + {RUNE_C(0x001071), RUNE_C(0x001074), GC_MN}, + {RUNE_C(0x001075), RUNE_C(0x001081), GC_LO}, + {RUNE_C(0x001082), RUNE_C(0x001082), GC_MN}, + {RUNE_C(0x001083), RUNE_C(0x001084), GC_MC}, + {RUNE_C(0x001085), RUNE_C(0x001086), GC_MN}, + {RUNE_C(0x001087), RUNE_C(0x00108C), GC_MC}, + {RUNE_C(0x00108D), RUNE_C(0x00108D), GC_MN}, + {RUNE_C(0x00108E), RUNE_C(0x00108E), GC_LO}, + {RUNE_C(0x00108F), RUNE_C(0x00108F), GC_MC}, + {RUNE_C(0x001090), RUNE_C(0x001099), GC_ND}, + {RUNE_C(0x00109A), RUNE_C(0x00109C), GC_MC}, + {RUNE_C(0x00109D), RUNE_C(0x00109D), GC_MN}, + {RUNE_C(0x00109E), RUNE_C(0x00109F), GC_SO}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5), GC_LU}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7), GC_LU}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD), GC_LU}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA), GC_LL}, + {RUNE_C(0x0010FB), RUNE_C(0x0010FB), GC_PO}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC), GC_LM}, + {RUNE_C(0x0010FD), RUNE_C(0x0010FF), GC_LL}, + {RUNE_C(0x001100), RUNE_C(0x001248), GC_LO}, + {RUNE_C(0x00124A), RUNE_C(0x00124D), GC_LO}, + {RUNE_C(0x001250), RUNE_C(0x001256), GC_LO}, + {RUNE_C(0x001258), RUNE_C(0x001258), GC_LO}, + {RUNE_C(0x00125A), RUNE_C(0x00125D), GC_LO}, + {RUNE_C(0x001260), RUNE_C(0x001288), GC_LO}, + {RUNE_C(0x00128A), RUNE_C(0x00128D), GC_LO}, + {RUNE_C(0x001290), RUNE_C(0x0012B0), GC_LO}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5), GC_LO}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE), GC_LO}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0), GC_LO}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5), GC_LO}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6), GC_LO}, + {RUNE_C(0x0012D8), RUNE_C(0x001310), GC_LO}, + {RUNE_C(0x001312), RUNE_C(0x001315), GC_LO}, + {RUNE_C(0x001318), RUNE_C(0x00135A), GC_LO}, + {RUNE_C(0x00135D), RUNE_C(0x00135F), GC_MN}, + {RUNE_C(0x001360), RUNE_C(0x001368), GC_PO}, + {RUNE_C(0x001369), RUNE_C(0x00137C), GC_NO}, + {RUNE_C(0x001380), RUNE_C(0x00138F), GC_LO}, + {RUNE_C(0x001390), RUNE_C(0x001399), GC_SO}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5), GC_LU}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD), GC_LL}, + {RUNE_C(0x001400), RUNE_C(0x001400), GC_PD}, + {RUNE_C(0x001401), RUNE_C(0x00166C), GC_LO}, + {RUNE_C(0x00166D), RUNE_C(0x00166D), GC_SO}, + {RUNE_C(0x00166E), RUNE_C(0x00166E), GC_PO}, + {RUNE_C(0x00166F), RUNE_C(0x00167F), GC_LO}, + {RUNE_C(0x001680), RUNE_C(0x001680), GC_ZS}, + {RUNE_C(0x001681), RUNE_C(0x00169A), GC_LO}, + {RUNE_C(0x00169B), RUNE_C(0x00169B), GC_PS}, + {RUNE_C(0x00169C), RUNE_C(0x00169C), GC_PE}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA), GC_LO}, + {RUNE_C(0x0016EB), RUNE_C(0x0016ED), GC_PO}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F0), GC_NL}, + {RUNE_C(0x0016F1), RUNE_C(0x0016F8), GC_LO}, + {RUNE_C(0x001700), RUNE_C(0x001711), GC_LO}, + {RUNE_C(0x001712), RUNE_C(0x001714), GC_MN}, + {RUNE_C(0x001715), RUNE_C(0x001715), GC_MC}, + {RUNE_C(0x00171F), RUNE_C(0x001731), GC_LO}, + {RUNE_C(0x001732), RUNE_C(0x001733), GC_MN}, + {RUNE_C(0x001734), RUNE_C(0x001734), GC_MC}, + {RUNE_C(0x001735), RUNE_C(0x001736), GC_PO}, + {RUNE_C(0x001740), RUNE_C(0x001751), GC_LO}, + {RUNE_C(0x001752), RUNE_C(0x001753), GC_MN}, + {RUNE_C(0x001760), RUNE_C(0x00176C), GC_LO}, + {RUNE_C(0x00176E), RUNE_C(0x001770), GC_LO}, + {RUNE_C(0x001772), RUNE_C(0x001773), GC_MN}, + {RUNE_C(0x001780), RUNE_C(0x0017B3), GC_LO}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5), GC_MN}, + {RUNE_C(0x0017B6), RUNE_C(0x0017B6), GC_MC}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD), GC_MN}, + {RUNE_C(0x0017BE), RUNE_C(0x0017C5), GC_MC}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6), GC_MN}, + {RUNE_C(0x0017C7), RUNE_C(0x0017C8), GC_MC}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3), GC_MN}, + {RUNE_C(0x0017D4), RUNE_C(0x0017D6), GC_PO}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7), GC_LM}, + {RUNE_C(0x0017D8), RUNE_C(0x0017DA), GC_PO}, + {RUNE_C(0x0017DB), RUNE_C(0x0017DB), GC_SC}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC), GC_LO}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD), GC_MN}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9), GC_ND}, + {RUNE_C(0x0017F0), RUNE_C(0x0017F9), GC_NO}, + {RUNE_C(0x001800), RUNE_C(0x001805), GC_PO}, + {RUNE_C(0x001806), RUNE_C(0x001806), GC_PD}, + {RUNE_C(0x001807), RUNE_C(0x00180A), GC_PO}, + {RUNE_C(0x00180B), RUNE_C(0x00180D), GC_MN}, + {RUNE_C(0x00180E), RUNE_C(0x00180E), GC_CF}, + {RUNE_C(0x00180F), RUNE_C(0x00180F), GC_MN}, + {RUNE_C(0x001810), RUNE_C(0x001819), GC_ND}, + {RUNE_C(0x001820), RUNE_C(0x001842), GC_LO}, + {RUNE_C(0x001843), RUNE_C(0x001843), GC_LM}, + {RUNE_C(0x001844), RUNE_C(0x001878), GC_LO}, + {RUNE_C(0x001880), RUNE_C(0x001884), GC_LO}, + {RUNE_C(0x001885), RUNE_C(0x001886), GC_MN}, + {RUNE_C(0x001887), RUNE_C(0x0018A8), GC_LO}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9), GC_MN}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA), GC_LO}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5), GC_LO}, + {RUNE_C(0x001900), RUNE_C(0x00191E), GC_LO}, + {RUNE_C(0x001920), RUNE_C(0x001922), GC_MN}, + {RUNE_C(0x001923), RUNE_C(0x001926), GC_MC}, + {RUNE_C(0x001927), RUNE_C(0x001928), GC_MN}, + {RUNE_C(0x001929), RUNE_C(0x00192B), GC_MC}, + {RUNE_C(0x001930), RUNE_C(0x001931), GC_MC}, + {RUNE_C(0x001932), RUNE_C(0x001932), GC_MN}, + {RUNE_C(0x001933), RUNE_C(0x001938), GC_MC}, + {RUNE_C(0x001939), RUNE_C(0x00193B), GC_MN}, + {RUNE_C(0x001940), RUNE_C(0x001940), GC_SO}, + {RUNE_C(0x001944), RUNE_C(0x001945), GC_PO}, + {RUNE_C(0x001946), RUNE_C(0x00194F), GC_ND}, + {RUNE_C(0x001950), RUNE_C(0x00196D), GC_LO}, + {RUNE_C(0x001970), RUNE_C(0x001974), GC_LO}, + {RUNE_C(0x001980), RUNE_C(0x0019AB), GC_LO}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9), GC_LO}, + {RUNE_C(0x0019D0), RUNE_C(0x0019D9), GC_ND}, + {RUNE_C(0x0019DA), RUNE_C(0x0019DA), GC_NO}, + {RUNE_C(0x0019DE), RUNE_C(0x0019FF), GC_SO}, + {RUNE_C(0x001A00), RUNE_C(0x001A16), GC_LO}, + {RUNE_C(0x001A17), RUNE_C(0x001A18), GC_MN}, + {RUNE_C(0x001A19), RUNE_C(0x001A1A), GC_MC}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B), GC_MN}, + {RUNE_C(0x001A1E), RUNE_C(0x001A1F), GC_PO}, + {RUNE_C(0x001A20), RUNE_C(0x001A54), GC_LO}, + {RUNE_C(0x001A55), RUNE_C(0x001A55), GC_MC}, + {RUNE_C(0x001A56), RUNE_C(0x001A56), GC_MN}, + {RUNE_C(0x001A57), RUNE_C(0x001A57), GC_MC}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E), GC_MN}, + {RUNE_C(0x001A60), RUNE_C(0x001A60), GC_MN}, + {RUNE_C(0x001A61), RUNE_C(0x001A61), GC_MC}, + {RUNE_C(0x001A62), RUNE_C(0x001A62), GC_MN}, + {RUNE_C(0x001A63), RUNE_C(0x001A64), GC_MC}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C), GC_MN}, + {RUNE_C(0x001A6D), RUNE_C(0x001A72), GC_MC}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C), GC_MN}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F), GC_MN}, + {RUNE_C(0x001A80), RUNE_C(0x001A89), GC_ND}, + {RUNE_C(0x001A90), RUNE_C(0x001A99), GC_ND}, + {RUNE_C(0x001AA0), RUNE_C(0x001AA6), GC_PO}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7), GC_LM}, + {RUNE_C(0x001AA8), RUNE_C(0x001AAD), GC_PO}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD), GC_MN}, + {RUNE_C(0x001ABE), RUNE_C(0x001ABE), GC_ME}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE), GC_MN}, + {RUNE_C(0x001B00), RUNE_C(0x001B03), GC_MN}, + {RUNE_C(0x001B04), RUNE_C(0x001B04), GC_MC}, + {RUNE_C(0x001B05), RUNE_C(0x001B33), GC_LO}, + {RUNE_C(0x001B34), RUNE_C(0x001B34), GC_MN}, + {RUNE_C(0x001B35), RUNE_C(0x001B35), GC_MC}, + {RUNE_C(0x001B36), RUNE_C(0x001B3A), GC_MN}, + {RUNE_C(0x001B3B), RUNE_C(0x001B3B), GC_MC}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C), GC_MN}, + {RUNE_C(0x001B3D), RUNE_C(0x001B41), GC_MC}, + {RUNE_C(0x001B42), RUNE_C(0x001B42), GC_MN}, + {RUNE_C(0x001B43), RUNE_C(0x001B44), GC_MC}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C), GC_LO}, + {RUNE_C(0x001B50), RUNE_C(0x001B59), GC_ND}, + {RUNE_C(0x001B5A), RUNE_C(0x001B60), GC_PO}, + {RUNE_C(0x001B61), RUNE_C(0x001B6A), GC_SO}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73), GC_MN}, + {RUNE_C(0x001B74), RUNE_C(0x001B7C), GC_SO}, + {RUNE_C(0x001B7D), RUNE_C(0x001B7E), GC_PO}, + {RUNE_C(0x001B80), RUNE_C(0x001B81), GC_MN}, + {RUNE_C(0x001B82), RUNE_C(0x001B82), GC_MC}, + {RUNE_C(0x001B83), RUNE_C(0x001BA0), GC_LO}, + {RUNE_C(0x001BA1), RUNE_C(0x001BA1), GC_MC}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5), GC_MN}, + {RUNE_C(0x001BA6), RUNE_C(0x001BA7), GC_MC}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9), GC_MN}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAA), GC_MC}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD), GC_MN}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF), GC_LO}, + {RUNE_C(0x001BB0), RUNE_C(0x001BB9), GC_ND}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5), GC_LO}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6), GC_MN}, + {RUNE_C(0x001BE7), RUNE_C(0x001BE7), GC_MC}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9), GC_MN}, + {RUNE_C(0x001BEA), RUNE_C(0x001BEC), GC_MC}, + {RUNE_C(0x001BED), RUNE_C(0x001BED), GC_MN}, + {RUNE_C(0x001BEE), RUNE_C(0x001BEE), GC_MC}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1), GC_MN}, + {RUNE_C(0x001BF2), RUNE_C(0x001BF3), GC_MC}, + {RUNE_C(0x001BFC), RUNE_C(0x001BFF), GC_PO}, + {RUNE_C(0x001C00), RUNE_C(0x001C23), GC_LO}, + {RUNE_C(0x001C24), RUNE_C(0x001C2B), GC_MC}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33), GC_MN}, + {RUNE_C(0x001C34), RUNE_C(0x001C35), GC_MC}, + {RUNE_C(0x001C36), RUNE_C(0x001C37), GC_MN}, + {RUNE_C(0x001C3B), RUNE_C(0x001C3F), GC_PO}, + {RUNE_C(0x001C40), RUNE_C(0x001C49), GC_ND}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F), GC_LO}, + {RUNE_C(0x001C50), RUNE_C(0x001C59), GC_ND}, + {RUNE_C(0x001C5A), RUNE_C(0x001C77), GC_LO}, + {RUNE_C(0x001C78), RUNE_C(0x001C7D), GC_LM}, + {RUNE_C(0x001C7E), RUNE_C(0x001C7F), GC_PO}, + {RUNE_C(0x001C80), RUNE_C(0x001C88), GC_LL}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA), GC_LU}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF), GC_LU}, + {RUNE_C(0x001CC0), RUNE_C(0x001CC7), GC_PO}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2), GC_MN}, + {RUNE_C(0x001CD3), RUNE_C(0x001CD3), GC_PO}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0), GC_MN}, + {RUNE_C(0x001CE1), RUNE_C(0x001CE1), GC_MC}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8), GC_MN}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC), GC_LO}, + {RUNE_C(0x001CED), RUNE_C(0x001CED), GC_MN}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3), GC_LO}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4), GC_MN}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6), GC_LO}, + {RUNE_C(0x001CF7), RUNE_C(0x001CF7), GC_MC}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9), GC_MN}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA), GC_LO}, + {RUNE_C(0x001D00), RUNE_C(0x001D2B), GC_LL}, + {RUNE_C(0x001D2C), RUNE_C(0x001D6A), GC_LM}, + {RUNE_C(0x001D6B), RUNE_C(0x001D77), GC_LL}, + {RUNE_C(0x001D78), RUNE_C(0x001D78), GC_LM}, + {RUNE_C(0x001D79), RUNE_C(0x001D9A), GC_LL}, + {RUNE_C(0x001D9B), RUNE_C(0x001DBF), GC_LM}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF), GC_MN}, + {RUNE_C(0x001E00), RUNE_C(0x001E00), GC_LU}, + {RUNE_C(0x001E01), RUNE_C(0x001E01), GC_LL}, + {RUNE_C(0x001E02), RUNE_C(0x001E02), GC_LU}, + {RUNE_C(0x001E03), RUNE_C(0x001E03), GC_LL}, + {RUNE_C(0x001E04), RUNE_C(0x001E04), GC_LU}, + {RUNE_C(0x001E05), RUNE_C(0x001E05), GC_LL}, + {RUNE_C(0x001E06), RUNE_C(0x001E06), GC_LU}, + {RUNE_C(0x001E07), RUNE_C(0x001E07), GC_LL}, + {RUNE_C(0x001E08), RUNE_C(0x001E08), GC_LU}, + {RUNE_C(0x001E09), RUNE_C(0x001E09), GC_LL}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A), GC_LU}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B), GC_LL}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C), GC_LU}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D), GC_LL}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E), GC_LU}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F), GC_LL}, + {RUNE_C(0x001E10), RUNE_C(0x001E10), GC_LU}, + {RUNE_C(0x001E11), RUNE_C(0x001E11), GC_LL}, + {RUNE_C(0x001E12), RUNE_C(0x001E12), GC_LU}, + {RUNE_C(0x001E13), RUNE_C(0x001E13), GC_LL}, + {RUNE_C(0x001E14), RUNE_C(0x001E14), GC_LU}, + {RUNE_C(0x001E15), RUNE_C(0x001E15), GC_LL}, + {RUNE_C(0x001E16), RUNE_C(0x001E16), GC_LU}, + {RUNE_C(0x001E17), RUNE_C(0x001E17), GC_LL}, + {RUNE_C(0x001E18), RUNE_C(0x001E18), GC_LU}, + {RUNE_C(0x001E19), RUNE_C(0x001E19), GC_LL}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A), GC_LU}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B), GC_LL}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C), GC_LU}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D), GC_LL}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E), GC_LU}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F), GC_LL}, + {RUNE_C(0x001E20), RUNE_C(0x001E20), GC_LU}, + {RUNE_C(0x001E21), RUNE_C(0x001E21), GC_LL}, + {RUNE_C(0x001E22), RUNE_C(0x001E22), GC_LU}, + {RUNE_C(0x001E23), RUNE_C(0x001E23), GC_LL}, + {RUNE_C(0x001E24), RUNE_C(0x001E24), GC_LU}, + {RUNE_C(0x001E25), RUNE_C(0x001E25), GC_LL}, + {RUNE_C(0x001E26), RUNE_C(0x001E26), GC_LU}, + {RUNE_C(0x001E27), RUNE_C(0x001E27), GC_LL}, + {RUNE_C(0x001E28), RUNE_C(0x001E28), GC_LU}, + {RUNE_C(0x001E29), RUNE_C(0x001E29), GC_LL}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A), GC_LU}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B), GC_LL}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C), GC_LU}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D), GC_LL}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E), GC_LU}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F), GC_LL}, + {RUNE_C(0x001E30), RUNE_C(0x001E30), GC_LU}, + {RUNE_C(0x001E31), RUNE_C(0x001E31), GC_LL}, + {RUNE_C(0x001E32), RUNE_C(0x001E32), GC_LU}, + {RUNE_C(0x001E33), RUNE_C(0x001E33), GC_LL}, + {RUNE_C(0x001E34), RUNE_C(0x001E34), GC_LU}, + {RUNE_C(0x001E35), RUNE_C(0x001E35), GC_LL}, + {RUNE_C(0x001E36), RUNE_C(0x001E36), GC_LU}, + {RUNE_C(0x001E37), RUNE_C(0x001E37), GC_LL}, + {RUNE_C(0x001E38), RUNE_C(0x001E38), GC_LU}, + {RUNE_C(0x001E39), RUNE_C(0x001E39), GC_LL}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A), GC_LU}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B), GC_LL}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C), GC_LU}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D), GC_LL}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E), GC_LU}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F), GC_LL}, + {RUNE_C(0x001E40), RUNE_C(0x001E40), GC_LU}, + {RUNE_C(0x001E41), RUNE_C(0x001E41), GC_LL}, + {RUNE_C(0x001E42), RUNE_C(0x001E42), GC_LU}, + {RUNE_C(0x001E43), RUNE_C(0x001E43), GC_LL}, + {RUNE_C(0x001E44), RUNE_C(0x001E44), GC_LU}, + {RUNE_C(0x001E45), RUNE_C(0x001E45), GC_LL}, + {RUNE_C(0x001E46), RUNE_C(0x001E46), GC_LU}, + {RUNE_C(0x001E47), RUNE_C(0x001E47), GC_LL}, + {RUNE_C(0x001E48), RUNE_C(0x001E48), GC_LU}, + {RUNE_C(0x001E49), RUNE_C(0x001E49), GC_LL}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A), GC_LU}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B), GC_LL}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C), GC_LU}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D), GC_LL}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E), GC_LU}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F), GC_LL}, + {RUNE_C(0x001E50), RUNE_C(0x001E50), GC_LU}, + {RUNE_C(0x001E51), RUNE_C(0x001E51), GC_LL}, + {RUNE_C(0x001E52), RUNE_C(0x001E52), GC_LU}, + {RUNE_C(0x001E53), RUNE_C(0x001E53), GC_LL}, + {RUNE_C(0x001E54), RUNE_C(0x001E54), GC_LU}, + {RUNE_C(0x001E55), RUNE_C(0x001E55), GC_LL}, + {RUNE_C(0x001E56), RUNE_C(0x001E56), GC_LU}, + {RUNE_C(0x001E57), RUNE_C(0x001E57), GC_LL}, + {RUNE_C(0x001E58), RUNE_C(0x001E58), GC_LU}, + {RUNE_C(0x001E59), RUNE_C(0x001E59), GC_LL}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A), GC_LU}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B), GC_LL}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C), GC_LU}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D), GC_LL}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E), GC_LU}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F), GC_LL}, + {RUNE_C(0x001E60), RUNE_C(0x001E60), GC_LU}, + {RUNE_C(0x001E61), RUNE_C(0x001E61), GC_LL}, + {RUNE_C(0x001E62), RUNE_C(0x001E62), GC_LU}, + {RUNE_C(0x001E63), RUNE_C(0x001E63), GC_LL}, + {RUNE_C(0x001E64), RUNE_C(0x001E64), GC_LU}, + {RUNE_C(0x001E65), RUNE_C(0x001E65), GC_LL}, + {RUNE_C(0x001E66), RUNE_C(0x001E66), GC_LU}, + {RUNE_C(0x001E67), RUNE_C(0x001E67), GC_LL}, + {RUNE_C(0x001E68), RUNE_C(0x001E68), GC_LU}, + {RUNE_C(0x001E69), RUNE_C(0x001E69), GC_LL}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A), GC_LU}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B), GC_LL}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C), GC_LU}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D), GC_LL}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E), GC_LU}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F), GC_LL}, + {RUNE_C(0x001E70), RUNE_C(0x001E70), GC_LU}, + {RUNE_C(0x001E71), RUNE_C(0x001E71), GC_LL}, + {RUNE_C(0x001E72), RUNE_C(0x001E72), GC_LU}, + {RUNE_C(0x001E73), RUNE_C(0x001E73), GC_LL}, + {RUNE_C(0x001E74), RUNE_C(0x001E74), GC_LU}, + {RUNE_C(0x001E75), RUNE_C(0x001E75), GC_LL}, + {RUNE_C(0x001E76), RUNE_C(0x001E76), GC_LU}, + {RUNE_C(0x001E77), RUNE_C(0x001E77), GC_LL}, + {RUNE_C(0x001E78), RUNE_C(0x001E78), GC_LU}, + {RUNE_C(0x001E79), RUNE_C(0x001E79), GC_LL}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A), GC_LU}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B), GC_LL}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C), GC_LU}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D), GC_LL}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E), GC_LU}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F), GC_LL}, + {RUNE_C(0x001E80), RUNE_C(0x001E80), GC_LU}, + {RUNE_C(0x001E81), RUNE_C(0x001E81), GC_LL}, + {RUNE_C(0x001E82), RUNE_C(0x001E82), GC_LU}, + {RUNE_C(0x001E83), RUNE_C(0x001E83), GC_LL}, + {RUNE_C(0x001E84), RUNE_C(0x001E84), GC_LU}, + {RUNE_C(0x001E85), RUNE_C(0x001E85), GC_LL}, + {RUNE_C(0x001E86), RUNE_C(0x001E86), GC_LU}, + {RUNE_C(0x001E87), RUNE_C(0x001E87), GC_LL}, + {RUNE_C(0x001E88), RUNE_C(0x001E88), GC_LU}, + {RUNE_C(0x001E89), RUNE_C(0x001E89), GC_LL}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A), GC_LU}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B), GC_LL}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C), GC_LU}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D), GC_LL}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E), GC_LU}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F), GC_LL}, + {RUNE_C(0x001E90), RUNE_C(0x001E90), GC_LU}, + {RUNE_C(0x001E91), RUNE_C(0x001E91), GC_LL}, + {RUNE_C(0x001E92), RUNE_C(0x001E92), GC_LU}, + {RUNE_C(0x001E93), RUNE_C(0x001E93), GC_LL}, + {RUNE_C(0x001E94), RUNE_C(0x001E94), GC_LU}, + {RUNE_C(0x001E95), RUNE_C(0x001E9D), GC_LL}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E), GC_LU}, + {RUNE_C(0x001E9F), RUNE_C(0x001E9F), GC_LL}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0), GC_LU}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1), GC_LL}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2), GC_LU}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3), GC_LL}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4), GC_LU}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5), GC_LL}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6), GC_LU}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7), GC_LL}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8), GC_LU}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9), GC_LL}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA), GC_LU}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB), GC_LL}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC), GC_LU}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD), GC_LL}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE), GC_LU}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF), GC_LL}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0), GC_LU}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1), GC_LL}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2), GC_LU}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3), GC_LL}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4), GC_LU}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5), GC_LL}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6), GC_LU}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7), GC_LL}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8), GC_LU}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9), GC_LL}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA), GC_LU}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB), GC_LL}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC), GC_LU}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD), GC_LL}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE), GC_LU}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF), GC_LL}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0), GC_LU}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1), GC_LL}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2), GC_LU}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3), GC_LL}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4), GC_LU}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5), GC_LL}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6), GC_LU}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7), GC_LL}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8), GC_LU}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9), GC_LL}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA), GC_LU}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB), GC_LL}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC), GC_LU}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD), GC_LL}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE), GC_LU}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF), GC_LL}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0), GC_LU}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1), GC_LL}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2), GC_LU}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3), GC_LL}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4), GC_LU}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5), GC_LL}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6), GC_LU}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7), GC_LL}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8), GC_LU}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9), GC_LL}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA), GC_LU}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB), GC_LL}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC), GC_LU}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD), GC_LL}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE), GC_LU}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF), GC_LL}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0), GC_LU}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1), GC_LL}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2), GC_LU}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3), GC_LL}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4), GC_LU}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5), GC_LL}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6), GC_LU}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7), GC_LL}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8), GC_LU}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9), GC_LL}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA), GC_LU}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB), GC_LL}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC), GC_LU}, + {RUNE_C(0x001EED), RUNE_C(0x001EED), GC_LL}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE), GC_LU}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF), GC_LL}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0), GC_LU}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1), GC_LL}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2), GC_LU}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3), GC_LL}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4), GC_LU}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5), GC_LL}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6), GC_LU}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7), GC_LL}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8), GC_LU}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9), GC_LL}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA), GC_LU}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB), GC_LL}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC), GC_LU}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD), GC_LL}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE), GC_LU}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07), GC_LL}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F), GC_LU}, + {RUNE_C(0x001F10), RUNE_C(0x001F15), GC_LL}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D), GC_LU}, + {RUNE_C(0x001F20), RUNE_C(0x001F27), GC_LL}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F), GC_LU}, + {RUNE_C(0x001F30), RUNE_C(0x001F37), GC_LL}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F), GC_LU}, + {RUNE_C(0x001F40), RUNE_C(0x001F45), GC_LL}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D), GC_LU}, + {RUNE_C(0x001F50), RUNE_C(0x001F57), GC_LL}, + {RUNE_C(0x001F59), RUNE_C(0x001F59), GC_LU}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B), GC_LU}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D), GC_LU}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F), GC_LU}, + {RUNE_C(0x001F60), RUNE_C(0x001F67), GC_LL}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F), GC_LU}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D), GC_LL}, + {RUNE_C(0x001F80), RUNE_C(0x001F87), GC_LL}, + {RUNE_C(0x001F88), RUNE_C(0x001F8F), GC_LT}, + {RUNE_C(0x001F90), RUNE_C(0x001F97), GC_LL}, + {RUNE_C(0x001F98), RUNE_C(0x001F9F), GC_LT}, + {RUNE_C(0x001FA0), RUNE_C(0x001FA7), GC_LL}, + {RUNE_C(0x001FA8), RUNE_C(0x001FAF), GC_LT}, + {RUNE_C(0x001FB0), RUNE_C(0x001FB4), GC_LL}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7), GC_LL}, + {RUNE_C(0x001FB8), RUNE_C(0x001FBB), GC_LU}, + {RUNE_C(0x001FBC), RUNE_C(0x001FBC), GC_LT}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD), GC_SK}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE), GC_LL}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC1), GC_SK}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4), GC_LL}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7), GC_LL}, + {RUNE_C(0x001FC8), RUNE_C(0x001FCB), GC_LU}, + {RUNE_C(0x001FCC), RUNE_C(0x001FCC), GC_LT}, + {RUNE_C(0x001FCD), RUNE_C(0x001FCF), GC_SK}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3), GC_LL}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7), GC_LL}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB), GC_LU}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF), GC_SK}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7), GC_LL}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC), GC_LU}, + {RUNE_C(0x001FED), RUNE_C(0x001FEF), GC_SK}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4), GC_LL}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7), GC_LL}, + {RUNE_C(0x001FF8), RUNE_C(0x001FFB), GC_LU}, + {RUNE_C(0x001FFC), RUNE_C(0x001FFC), GC_LT}, + {RUNE_C(0x001FFD), RUNE_C(0x001FFE), GC_SK}, + {RUNE_C(0x002000), RUNE_C(0x00200A), GC_ZS}, + {RUNE_C(0x00200B), RUNE_C(0x00200F), GC_CF}, + {RUNE_C(0x002010), RUNE_C(0x002015), GC_PD}, + {RUNE_C(0x002016), RUNE_C(0x002017), GC_PO}, + {RUNE_C(0x002018), RUNE_C(0x002018), GC_PI}, + {RUNE_C(0x002019), RUNE_C(0x002019), GC_PF}, + {RUNE_C(0x00201A), RUNE_C(0x00201A), GC_PS}, + {RUNE_C(0x00201B), RUNE_C(0x00201C), GC_PI}, + {RUNE_C(0x00201D), RUNE_C(0x00201D), GC_PF}, + {RUNE_C(0x00201E), RUNE_C(0x00201E), GC_PS}, + {RUNE_C(0x00201F), RUNE_C(0x00201F), GC_PI}, + {RUNE_C(0x002020), RUNE_C(0x002027), GC_PO}, + {RUNE_C(0x002028), RUNE_C(0x002028), GC_ZL}, + {RUNE_C(0x002029), RUNE_C(0x002029), GC_ZP}, + {RUNE_C(0x00202A), RUNE_C(0x00202E), GC_CF}, + {RUNE_C(0x00202F), RUNE_C(0x00202F), GC_ZS}, + {RUNE_C(0x002030), RUNE_C(0x002038), GC_PO}, + {RUNE_C(0x002039), RUNE_C(0x002039), GC_PI}, + {RUNE_C(0x00203A), RUNE_C(0x00203A), GC_PF}, + {RUNE_C(0x00203B), RUNE_C(0x00203E), GC_PO}, + {RUNE_C(0x00203F), RUNE_C(0x002040), GC_PC}, + {RUNE_C(0x002041), RUNE_C(0x002043), GC_PO}, + {RUNE_C(0x002044), RUNE_C(0x002044), GC_SM}, + {RUNE_C(0x002045), RUNE_C(0x002045), GC_PS}, + {RUNE_C(0x002046), RUNE_C(0x002046), GC_PE}, + {RUNE_C(0x002047), RUNE_C(0x002051), GC_PO}, + {RUNE_C(0x002052), RUNE_C(0x002052), GC_SM}, + {RUNE_C(0x002053), RUNE_C(0x002053), GC_PO}, + {RUNE_C(0x002054), RUNE_C(0x002054), GC_PC}, + {RUNE_C(0x002055), RUNE_C(0x00205E), GC_PO}, + {RUNE_C(0x00205F), RUNE_C(0x00205F), GC_ZS}, + {RUNE_C(0x002060), RUNE_C(0x002064), GC_CF}, + {RUNE_C(0x002066), RUNE_C(0x00206F), GC_CF}, + {RUNE_C(0x002070), RUNE_C(0x002070), GC_NO}, + {RUNE_C(0x002071), RUNE_C(0x002071), GC_LM}, + {RUNE_C(0x002074), RUNE_C(0x002079), GC_NO}, + {RUNE_C(0x00207A), RUNE_C(0x00207C), GC_SM}, + {RUNE_C(0x00207D), RUNE_C(0x00207D), GC_PS}, + {RUNE_C(0x00207E), RUNE_C(0x00207E), GC_PE}, + {RUNE_C(0x00207F), RUNE_C(0x00207F), GC_LM}, + {RUNE_C(0x002080), RUNE_C(0x002089), GC_NO}, + {RUNE_C(0x00208A), RUNE_C(0x00208C), GC_SM}, + {RUNE_C(0x00208D), RUNE_C(0x00208D), GC_PS}, + {RUNE_C(0x00208E), RUNE_C(0x00208E), GC_PE}, + {RUNE_C(0x002090), RUNE_C(0x00209C), GC_LM}, + {RUNE_C(0x0020A0), RUNE_C(0x0020C0), GC_SC}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC), GC_MN}, + {RUNE_C(0x0020DD), RUNE_C(0x0020E0), GC_ME}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1), GC_MN}, + {RUNE_C(0x0020E2), RUNE_C(0x0020E4), GC_ME}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0), GC_MN}, + {RUNE_C(0x002100), RUNE_C(0x002101), GC_SO}, + {RUNE_C(0x002102), RUNE_C(0x002102), GC_LU}, + {RUNE_C(0x002103), RUNE_C(0x002106), GC_SO}, + {RUNE_C(0x002107), RUNE_C(0x002107), GC_LU}, + {RUNE_C(0x002108), RUNE_C(0x002109), GC_SO}, + {RUNE_C(0x00210A), RUNE_C(0x00210A), GC_LL}, + {RUNE_C(0x00210B), RUNE_C(0x00210D), GC_LU}, + {RUNE_C(0x00210E), RUNE_C(0x00210F), GC_LL}, + {RUNE_C(0x002110), RUNE_C(0x002112), GC_LU}, + {RUNE_C(0x002113), RUNE_C(0x002113), GC_LL}, + {RUNE_C(0x002114), RUNE_C(0x002114), GC_SO}, + {RUNE_C(0x002115), RUNE_C(0x002115), GC_LU}, + {RUNE_C(0x002116), RUNE_C(0x002117), GC_SO}, + {RUNE_C(0x002118), RUNE_C(0x002118), GC_SM}, + {RUNE_C(0x002119), RUNE_C(0x00211D), GC_LU}, + {RUNE_C(0x00211E), RUNE_C(0x002123), GC_SO}, + {RUNE_C(0x002124), RUNE_C(0x002124), GC_LU}, + {RUNE_C(0x002125), RUNE_C(0x002125), GC_SO}, + {RUNE_C(0x002126), RUNE_C(0x002126), GC_LU}, + {RUNE_C(0x002127), RUNE_C(0x002127), GC_SO}, + {RUNE_C(0x002128), RUNE_C(0x002128), GC_LU}, + {RUNE_C(0x002129), RUNE_C(0x002129), GC_SO}, + {RUNE_C(0x00212A), RUNE_C(0x00212D), GC_LU}, + {RUNE_C(0x00212E), RUNE_C(0x00212E), GC_SO}, + {RUNE_C(0x00212F), RUNE_C(0x00212F), GC_LL}, + {RUNE_C(0x002130), RUNE_C(0x002133), GC_LU}, + {RUNE_C(0x002134), RUNE_C(0x002134), GC_LL}, + {RUNE_C(0x002135), RUNE_C(0x002138), GC_LO}, + {RUNE_C(0x002139), RUNE_C(0x002139), GC_LL}, + {RUNE_C(0x00213A), RUNE_C(0x00213B), GC_SO}, + {RUNE_C(0x00213C), RUNE_C(0x00213D), GC_LL}, + {RUNE_C(0x00213E), RUNE_C(0x00213F), GC_LU}, + {RUNE_C(0x002140), RUNE_C(0x002144), GC_SM}, + {RUNE_C(0x002145), RUNE_C(0x002145), GC_LU}, + {RUNE_C(0x002146), RUNE_C(0x002149), GC_LL}, + {RUNE_C(0x00214A), RUNE_C(0x00214A), GC_SO}, + {RUNE_C(0x00214B), RUNE_C(0x00214B), GC_SM}, + {RUNE_C(0x00214C), RUNE_C(0x00214D), GC_SO}, + {RUNE_C(0x00214E), RUNE_C(0x00214E), GC_LL}, + {RUNE_C(0x00214F), RUNE_C(0x00214F), GC_SO}, + {RUNE_C(0x002150), RUNE_C(0x00215F), GC_NO}, + {RUNE_C(0x002160), RUNE_C(0x002182), GC_NL}, + {RUNE_C(0x002183), RUNE_C(0x002183), GC_LU}, + {RUNE_C(0x002184), RUNE_C(0x002184), GC_LL}, + {RUNE_C(0x002185), RUNE_C(0x002188), GC_NL}, + {RUNE_C(0x002189), RUNE_C(0x002189), GC_NO}, + {RUNE_C(0x00218A), RUNE_C(0x00218B), GC_SO}, + {RUNE_C(0x002190), RUNE_C(0x002194), GC_SM}, + {RUNE_C(0x002195), RUNE_C(0x002199), GC_SO}, + {RUNE_C(0x00219A), RUNE_C(0x00219B), GC_SM}, + {RUNE_C(0x00219C), RUNE_C(0x00219F), GC_SO}, + {RUNE_C(0x0021A0), RUNE_C(0x0021A0), GC_SM}, + {RUNE_C(0x0021A1), RUNE_C(0x0021A2), GC_SO}, + {RUNE_C(0x0021A3), RUNE_C(0x0021A3), GC_SM}, + {RUNE_C(0x0021A4), RUNE_C(0x0021A5), GC_SO}, + {RUNE_C(0x0021A6), RUNE_C(0x0021A6), GC_SM}, + {RUNE_C(0x0021A7), RUNE_C(0x0021AD), GC_SO}, + {RUNE_C(0x0021AE), RUNE_C(0x0021AE), GC_SM}, + {RUNE_C(0x0021AF), RUNE_C(0x0021CD), GC_SO}, + {RUNE_C(0x0021CE), RUNE_C(0x0021CF), GC_SM}, + {RUNE_C(0x0021D0), RUNE_C(0x0021D1), GC_SO}, + {RUNE_C(0x0021D2), RUNE_C(0x0021D2), GC_SM}, + {RUNE_C(0x0021D3), RUNE_C(0x0021D3), GC_SO}, + {RUNE_C(0x0021D4), RUNE_C(0x0021D4), GC_SM}, + {RUNE_C(0x0021D5), RUNE_C(0x0021F3), GC_SO}, + {RUNE_C(0x0021F4), RUNE_C(0x0022FF), GC_SM}, + {RUNE_C(0x002300), RUNE_C(0x002307), GC_SO}, + {RUNE_C(0x002308), RUNE_C(0x002308), GC_PS}, + {RUNE_C(0x002309), RUNE_C(0x002309), GC_PE}, + {RUNE_C(0x00230A), RUNE_C(0x00230A), GC_PS}, + {RUNE_C(0x00230B), RUNE_C(0x00230B), GC_PE}, + {RUNE_C(0x00230C), RUNE_C(0x00231F), GC_SO}, + {RUNE_C(0x002320), RUNE_C(0x002321), GC_SM}, + {RUNE_C(0x002322), RUNE_C(0x002328), GC_SO}, + {RUNE_C(0x002329), RUNE_C(0x002329), GC_PS}, + {RUNE_C(0x00232A), RUNE_C(0x00232A), GC_PE}, + {RUNE_C(0x00232B), RUNE_C(0x00237B), GC_SO}, + {RUNE_C(0x00237C), RUNE_C(0x00237C), GC_SM}, + {RUNE_C(0x00237D), RUNE_C(0x00239A), GC_SO}, + {RUNE_C(0x00239B), RUNE_C(0x0023B3), GC_SM}, + {RUNE_C(0x0023B4), RUNE_C(0x0023DB), GC_SO}, + {RUNE_C(0x0023DC), RUNE_C(0x0023E1), GC_SM}, + {RUNE_C(0x0023E2), RUNE_C(0x002426), GC_SO}, + {RUNE_C(0x002440), RUNE_C(0x00244A), GC_SO}, + {RUNE_C(0x002460), RUNE_C(0x00249B), GC_NO}, + {RUNE_C(0x00249C), RUNE_C(0x0024E9), GC_SO}, + {RUNE_C(0x0024EA), RUNE_C(0x0024FF), GC_NO}, + {RUNE_C(0x002500), RUNE_C(0x0025B6), GC_SO}, + {RUNE_C(0x0025B7), RUNE_C(0x0025B7), GC_SM}, + {RUNE_C(0x0025B8), RUNE_C(0x0025C0), GC_SO}, + {RUNE_C(0x0025C1), RUNE_C(0x0025C1), GC_SM}, + {RUNE_C(0x0025C2), RUNE_C(0x0025F7), GC_SO}, + {RUNE_C(0x0025F8), RUNE_C(0x0025FF), GC_SM}, + {RUNE_C(0x002600), RUNE_C(0x00266E), GC_SO}, + {RUNE_C(0x00266F), RUNE_C(0x00266F), GC_SM}, + {RUNE_C(0x002670), RUNE_C(0x002767), GC_SO}, + {RUNE_C(0x002768), RUNE_C(0x002768), GC_PS}, + {RUNE_C(0x002769), RUNE_C(0x002769), GC_PE}, + {RUNE_C(0x00276A), RUNE_C(0x00276A), GC_PS}, + {RUNE_C(0x00276B), RUNE_C(0x00276B), GC_PE}, + {RUNE_C(0x00276C), RUNE_C(0x00276C), GC_PS}, + {RUNE_C(0x00276D), RUNE_C(0x00276D), GC_PE}, + {RUNE_C(0x00276E), RUNE_C(0x00276E), GC_PS}, + {RUNE_C(0x00276F), RUNE_C(0x00276F), GC_PE}, + {RUNE_C(0x002770), RUNE_C(0x002770), GC_PS}, + {RUNE_C(0x002771), RUNE_C(0x002771), GC_PE}, + {RUNE_C(0x002772), RUNE_C(0x002772), GC_PS}, + {RUNE_C(0x002773), RUNE_C(0x002773), GC_PE}, + {RUNE_C(0x002774), RUNE_C(0x002774), GC_PS}, + {RUNE_C(0x002775), RUNE_C(0x002775), GC_PE}, + {RUNE_C(0x002776), RUNE_C(0x002793), GC_NO}, + {RUNE_C(0x002794), RUNE_C(0x0027BF), GC_SO}, + {RUNE_C(0x0027C0), RUNE_C(0x0027C4), GC_SM}, + {RUNE_C(0x0027C5), RUNE_C(0x0027C5), GC_PS}, + {RUNE_C(0x0027C6), RUNE_C(0x0027C6), GC_PE}, + {RUNE_C(0x0027C7), RUNE_C(0x0027E5), GC_SM}, + {RUNE_C(0x0027E6), RUNE_C(0x0027E6), GC_PS}, + {RUNE_C(0x0027E7), RUNE_C(0x0027E7), GC_PE}, + {RUNE_C(0x0027E8), RUNE_C(0x0027E8), GC_PS}, + {RUNE_C(0x0027E9), RUNE_C(0x0027E9), GC_PE}, + {RUNE_C(0x0027EA), RUNE_C(0x0027EA), GC_PS}, + {RUNE_C(0x0027EB), RUNE_C(0x0027EB), GC_PE}, + {RUNE_C(0x0027EC), RUNE_C(0x0027EC), GC_PS}, + {RUNE_C(0x0027ED), RUNE_C(0x0027ED), GC_PE}, + {RUNE_C(0x0027EE), RUNE_C(0x0027EE), GC_PS}, + {RUNE_C(0x0027EF), RUNE_C(0x0027EF), GC_PE}, + {RUNE_C(0x0027F0), RUNE_C(0x0027FF), GC_SM}, + {RUNE_C(0x002800), RUNE_C(0x0028FF), GC_SO}, + {RUNE_C(0x002900), RUNE_C(0x002982), GC_SM}, + {RUNE_C(0x002983), RUNE_C(0x002983), GC_PS}, + {RUNE_C(0x002984), RUNE_C(0x002984), GC_PE}, + {RUNE_C(0x002985), RUNE_C(0x002985), GC_PS}, + {RUNE_C(0x002986), RUNE_C(0x002986), GC_PE}, + {RUNE_C(0x002987), RUNE_C(0x002987), GC_PS}, + {RUNE_C(0x002988), RUNE_C(0x002988), GC_PE}, + {RUNE_C(0x002989), RUNE_C(0x002989), GC_PS}, + {RUNE_C(0x00298A), RUNE_C(0x00298A), GC_PE}, + {RUNE_C(0x00298B), RUNE_C(0x00298B), GC_PS}, + {RUNE_C(0x00298C), RUNE_C(0x00298C), GC_PE}, + {RUNE_C(0x00298D), RUNE_C(0x00298D), GC_PS}, + {RUNE_C(0x00298E), RUNE_C(0x00298E), GC_PE}, + {RUNE_C(0x00298F), RUNE_C(0x00298F), GC_PS}, + {RUNE_C(0x002990), RUNE_C(0x002990), GC_PE}, + {RUNE_C(0x002991), RUNE_C(0x002991), GC_PS}, + {RUNE_C(0x002992), RUNE_C(0x002992), GC_PE}, + {RUNE_C(0x002993), RUNE_C(0x002993), GC_PS}, + {RUNE_C(0x002994), RUNE_C(0x002994), GC_PE}, + {RUNE_C(0x002995), RUNE_C(0x002995), GC_PS}, + {RUNE_C(0x002996), RUNE_C(0x002996), GC_PE}, + {RUNE_C(0x002997), RUNE_C(0x002997), GC_PS}, + {RUNE_C(0x002998), RUNE_C(0x002998), GC_PE}, + {RUNE_C(0x002999), RUNE_C(0x0029D7), GC_SM}, + {RUNE_C(0x0029D8), RUNE_C(0x0029D8), GC_PS}, + {RUNE_C(0x0029D9), RUNE_C(0x0029D9), GC_PE}, + {RUNE_C(0x0029DA), RUNE_C(0x0029DA), GC_PS}, + {RUNE_C(0x0029DB), RUNE_C(0x0029DB), GC_PE}, + {RUNE_C(0x0029DC), RUNE_C(0x0029FB), GC_SM}, + {RUNE_C(0x0029FC), RUNE_C(0x0029FC), GC_PS}, + {RUNE_C(0x0029FD), RUNE_C(0x0029FD), GC_PE}, + {RUNE_C(0x0029FE), RUNE_C(0x002AFF), GC_SM}, + {RUNE_C(0x002B00), RUNE_C(0x002B2F), GC_SO}, + {RUNE_C(0x002B30), RUNE_C(0x002B44), GC_SM}, + {RUNE_C(0x002B45), RUNE_C(0x002B46), GC_SO}, + {RUNE_C(0x002B47), RUNE_C(0x002B4C), GC_SM}, + {RUNE_C(0x002B4D), RUNE_C(0x002B73), GC_SO}, + {RUNE_C(0x002B76), RUNE_C(0x002B95), GC_SO}, + {RUNE_C(0x002B97), RUNE_C(0x002BFF), GC_SO}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F), GC_LU}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F), GC_LL}, + {RUNE_C(0x002C60), RUNE_C(0x002C60), GC_LU}, + {RUNE_C(0x002C61), RUNE_C(0x002C61), GC_LL}, + {RUNE_C(0x002C62), RUNE_C(0x002C64), GC_LU}, + {RUNE_C(0x002C65), RUNE_C(0x002C66), GC_LL}, + {RUNE_C(0x002C67), RUNE_C(0x002C67), GC_LU}, + {RUNE_C(0x002C68), RUNE_C(0x002C68), GC_LL}, + {RUNE_C(0x002C69), RUNE_C(0x002C69), GC_LU}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A), GC_LL}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B), GC_LU}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C), GC_LL}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70), GC_LU}, + {RUNE_C(0x002C71), RUNE_C(0x002C71), GC_LL}, + {RUNE_C(0x002C72), RUNE_C(0x002C72), GC_LU}, + {RUNE_C(0x002C73), RUNE_C(0x002C74), GC_LL}, + {RUNE_C(0x002C75), RUNE_C(0x002C75), GC_LU}, + {RUNE_C(0x002C76), RUNE_C(0x002C7B), GC_LL}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7D), GC_LM}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80), GC_LU}, + {RUNE_C(0x002C81), RUNE_C(0x002C81), GC_LL}, + {RUNE_C(0x002C82), RUNE_C(0x002C82), GC_LU}, + {RUNE_C(0x002C83), RUNE_C(0x002C83), GC_LL}, + {RUNE_C(0x002C84), RUNE_C(0x002C84), GC_LU}, + {RUNE_C(0x002C85), RUNE_C(0x002C85), GC_LL}, + {RUNE_C(0x002C86), RUNE_C(0x002C86), GC_LU}, + {RUNE_C(0x002C87), RUNE_C(0x002C87), GC_LL}, + {RUNE_C(0x002C88), RUNE_C(0x002C88), GC_LU}, + {RUNE_C(0x002C89), RUNE_C(0x002C89), GC_LL}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A), GC_LU}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B), GC_LL}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C), GC_LU}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D), GC_LL}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E), GC_LU}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F), GC_LL}, + {RUNE_C(0x002C90), RUNE_C(0x002C90), GC_LU}, + {RUNE_C(0x002C91), RUNE_C(0x002C91), GC_LL}, + {RUNE_C(0x002C92), RUNE_C(0x002C92), GC_LU}, + {RUNE_C(0x002C93), RUNE_C(0x002C93), GC_LL}, + {RUNE_C(0x002C94), RUNE_C(0x002C94), GC_LU}, + {RUNE_C(0x002C95), RUNE_C(0x002C95), GC_LL}, + {RUNE_C(0x002C96), RUNE_C(0x002C96), GC_LU}, + {RUNE_C(0x002C97), RUNE_C(0x002C97), GC_LL}, + {RUNE_C(0x002C98), RUNE_C(0x002C98), GC_LU}, + {RUNE_C(0x002C99), RUNE_C(0x002C99), GC_LL}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A), GC_LU}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B), GC_LL}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C), GC_LU}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D), GC_LL}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E), GC_LU}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F), GC_LL}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0), GC_LU}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1), GC_LL}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2), GC_LU}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3), GC_LL}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4), GC_LU}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5), GC_LL}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6), GC_LU}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7), GC_LL}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8), GC_LU}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9), GC_LL}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA), GC_LU}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB), GC_LL}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC), GC_LU}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD), GC_LL}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE), GC_LU}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF), GC_LL}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0), GC_LU}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1), GC_LL}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2), GC_LU}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3), GC_LL}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4), GC_LU}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5), GC_LL}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6), GC_LU}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7), GC_LL}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8), GC_LU}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9), GC_LL}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA), GC_LU}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB), GC_LL}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC), GC_LU}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD), GC_LL}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE), GC_LU}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF), GC_LL}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0), GC_LU}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1), GC_LL}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2), GC_LU}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3), GC_LL}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4), GC_LU}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5), GC_LL}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6), GC_LU}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7), GC_LL}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8), GC_LU}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9), GC_LL}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA), GC_LU}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB), GC_LL}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC), GC_LU}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD), GC_LL}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE), GC_LU}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF), GC_LL}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0), GC_LU}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1), GC_LL}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2), GC_LU}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3), GC_LL}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4), GC_LU}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5), GC_LL}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6), GC_LU}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7), GC_LL}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8), GC_LU}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9), GC_LL}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA), GC_LU}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB), GC_LL}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC), GC_LU}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD), GC_LL}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE), GC_LU}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF), GC_LL}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0), GC_LU}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1), GC_LL}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2), GC_LU}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE4), GC_LL}, + {RUNE_C(0x002CE5), RUNE_C(0x002CEA), GC_SO}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB), GC_LU}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC), GC_LL}, + {RUNE_C(0x002CED), RUNE_C(0x002CED), GC_LU}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE), GC_LL}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1), GC_MN}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2), GC_LU}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3), GC_LL}, + {RUNE_C(0x002CF9), RUNE_C(0x002CFC), GC_PO}, + {RUNE_C(0x002CFD), RUNE_C(0x002CFD), GC_NO}, + {RUNE_C(0x002CFE), RUNE_C(0x002CFF), GC_PO}, + {RUNE_C(0x002D00), RUNE_C(0x002D25), GC_LL}, + {RUNE_C(0x002D27), RUNE_C(0x002D27), GC_LL}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D), GC_LL}, + {RUNE_C(0x002D30), RUNE_C(0x002D67), GC_LO}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F), GC_LM}, + {RUNE_C(0x002D70), RUNE_C(0x002D70), GC_PO}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F), GC_MN}, + {RUNE_C(0x002D80), RUNE_C(0x002D96), GC_LO}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6), GC_LO}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE), GC_LO}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6), GC_LO}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE), GC_LO}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6), GC_LO}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE), GC_LO}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6), GC_LO}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE), GC_LO}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF), GC_MN}, + {RUNE_C(0x002E00), RUNE_C(0x002E01), GC_PO}, + {RUNE_C(0x002E02), RUNE_C(0x002E02), GC_PI}, + {RUNE_C(0x002E03), RUNE_C(0x002E03), GC_PF}, + {RUNE_C(0x002E04), RUNE_C(0x002E04), GC_PI}, + {RUNE_C(0x002E05), RUNE_C(0x002E05), GC_PF}, + {RUNE_C(0x002E06), RUNE_C(0x002E08), GC_PO}, + {RUNE_C(0x002E09), RUNE_C(0x002E09), GC_PI}, + {RUNE_C(0x002E0A), RUNE_C(0x002E0A), GC_PF}, + {RUNE_C(0x002E0B), RUNE_C(0x002E0B), GC_PO}, + {RUNE_C(0x002E0C), RUNE_C(0x002E0C), GC_PI}, + {RUNE_C(0x002E0D), RUNE_C(0x002E0D), GC_PF}, + {RUNE_C(0x002E0E), RUNE_C(0x002E16), GC_PO}, + {RUNE_C(0x002E17), RUNE_C(0x002E17), GC_PD}, + {RUNE_C(0x002E18), RUNE_C(0x002E19), GC_PO}, + {RUNE_C(0x002E1A), RUNE_C(0x002E1A), GC_PD}, + {RUNE_C(0x002E1B), RUNE_C(0x002E1B), GC_PO}, + {RUNE_C(0x002E1C), RUNE_C(0x002E1C), GC_PI}, + {RUNE_C(0x002E1D), RUNE_C(0x002E1D), GC_PF}, + {RUNE_C(0x002E1E), RUNE_C(0x002E1F), GC_PO}, + {RUNE_C(0x002E20), RUNE_C(0x002E20), GC_PI}, + {RUNE_C(0x002E21), RUNE_C(0x002E21), GC_PF}, + {RUNE_C(0x002E22), RUNE_C(0x002E22), GC_PS}, + {RUNE_C(0x002E23), RUNE_C(0x002E23), GC_PE}, + {RUNE_C(0x002E24), RUNE_C(0x002E24), GC_PS}, + {RUNE_C(0x002E25), RUNE_C(0x002E25), GC_PE}, + {RUNE_C(0x002E26), RUNE_C(0x002E26), GC_PS}, + {RUNE_C(0x002E27), RUNE_C(0x002E27), GC_PE}, + {RUNE_C(0x002E28), RUNE_C(0x002E28), GC_PS}, + {RUNE_C(0x002E29), RUNE_C(0x002E29), GC_PE}, + {RUNE_C(0x002E2A), RUNE_C(0x002E2E), GC_PO}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F), GC_LM}, + {RUNE_C(0x002E30), RUNE_C(0x002E39), GC_PO}, + {RUNE_C(0x002E3A), RUNE_C(0x002E3B), GC_PD}, + {RUNE_C(0x002E3C), RUNE_C(0x002E3F), GC_PO}, + {RUNE_C(0x002E40), RUNE_C(0x002E40), GC_PD}, + {RUNE_C(0x002E41), RUNE_C(0x002E41), GC_PO}, + {RUNE_C(0x002E42), RUNE_C(0x002E42), GC_PS}, + {RUNE_C(0x002E43), RUNE_C(0x002E4F), GC_PO}, + {RUNE_C(0x002E50), RUNE_C(0x002E51), GC_SO}, + {RUNE_C(0x002E52), RUNE_C(0x002E54), GC_PO}, + {RUNE_C(0x002E55), RUNE_C(0x002E55), GC_PS}, + {RUNE_C(0x002E56), RUNE_C(0x002E56), GC_PE}, + {RUNE_C(0x002E57), RUNE_C(0x002E57), GC_PS}, + {RUNE_C(0x002E58), RUNE_C(0x002E58), GC_PE}, + {RUNE_C(0x002E59), RUNE_C(0x002E59), GC_PS}, + {RUNE_C(0x002E5A), RUNE_C(0x002E5A), GC_PE}, + {RUNE_C(0x002E5B), RUNE_C(0x002E5B), GC_PS}, + {RUNE_C(0x002E5C), RUNE_C(0x002E5C), GC_PE}, + {RUNE_C(0x002E5D), RUNE_C(0x002E5D), GC_PD}, + {RUNE_C(0x002E80), RUNE_C(0x002E99), GC_SO}, + {RUNE_C(0x002E9B), RUNE_C(0x002EF3), GC_SO}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5), GC_SO}, + {RUNE_C(0x002FF0), RUNE_C(0x002FFF), GC_SO}, + {RUNE_C(0x003000), RUNE_C(0x003000), GC_ZS}, + {RUNE_C(0x003001), RUNE_C(0x003003), GC_PO}, + {RUNE_C(0x003004), RUNE_C(0x003004), GC_SO}, + {RUNE_C(0x003005), RUNE_C(0x003005), GC_LM}, + {RUNE_C(0x003006), RUNE_C(0x003006), GC_LO}, + {RUNE_C(0x003007), RUNE_C(0x003007), GC_NL}, + {RUNE_C(0x003008), RUNE_C(0x003008), GC_PS}, + {RUNE_C(0x003009), RUNE_C(0x003009), GC_PE}, + {RUNE_C(0x00300A), RUNE_C(0x00300A), GC_PS}, + {RUNE_C(0x00300B), RUNE_C(0x00300B), GC_PE}, + {RUNE_C(0x00300C), RUNE_C(0x00300C), GC_PS}, + {RUNE_C(0x00300D), RUNE_C(0x00300D), GC_PE}, + {RUNE_C(0x00300E), RUNE_C(0x00300E), GC_PS}, + {RUNE_C(0x00300F), RUNE_C(0x00300F), GC_PE}, + {RUNE_C(0x003010), RUNE_C(0x003010), GC_PS}, + {RUNE_C(0x003011), RUNE_C(0x003011), GC_PE}, + {RUNE_C(0x003012), RUNE_C(0x003013), GC_SO}, + {RUNE_C(0x003014), RUNE_C(0x003014), GC_PS}, + {RUNE_C(0x003015), RUNE_C(0x003015), GC_PE}, + {RUNE_C(0x003016), RUNE_C(0x003016), GC_PS}, + {RUNE_C(0x003017), RUNE_C(0x003017), GC_PE}, + {RUNE_C(0x003018), RUNE_C(0x003018), GC_PS}, + {RUNE_C(0x003019), RUNE_C(0x003019), GC_PE}, + {RUNE_C(0x00301A), RUNE_C(0x00301A), GC_PS}, + {RUNE_C(0x00301B), RUNE_C(0x00301B), GC_PE}, + {RUNE_C(0x00301C), RUNE_C(0x00301C), GC_PD}, + {RUNE_C(0x00301D), RUNE_C(0x00301D), GC_PS}, + {RUNE_C(0x00301E), RUNE_C(0x00301F), GC_PE}, + {RUNE_C(0x003020), RUNE_C(0x003020), GC_SO}, + {RUNE_C(0x003021), RUNE_C(0x003029), GC_NL}, + {RUNE_C(0x00302A), RUNE_C(0x00302D), GC_MN}, + {RUNE_C(0x00302E), RUNE_C(0x00302F), GC_MC}, + {RUNE_C(0x003030), RUNE_C(0x003030), GC_PD}, + {RUNE_C(0x003031), RUNE_C(0x003035), GC_LM}, + {RUNE_C(0x003036), RUNE_C(0x003037), GC_SO}, + {RUNE_C(0x003038), RUNE_C(0x00303A), GC_NL}, + {RUNE_C(0x00303B), RUNE_C(0x00303B), GC_LM}, + {RUNE_C(0x00303C), RUNE_C(0x00303C), GC_LO}, + {RUNE_C(0x00303D), RUNE_C(0x00303D), GC_PO}, + {RUNE_C(0x00303E), RUNE_C(0x00303F), GC_SO}, + {RUNE_C(0x003041), RUNE_C(0x003096), GC_LO}, + {RUNE_C(0x003099), RUNE_C(0x00309A), GC_MN}, + {RUNE_C(0x00309B), RUNE_C(0x00309C), GC_SK}, + {RUNE_C(0x00309D), RUNE_C(0x00309E), GC_LM}, + {RUNE_C(0x00309F), RUNE_C(0x00309F), GC_LO}, + {RUNE_C(0x0030A0), RUNE_C(0x0030A0), GC_PD}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA), GC_LO}, + {RUNE_C(0x0030FB), RUNE_C(0x0030FB), GC_PO}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FE), GC_LM}, + {RUNE_C(0x0030FF), RUNE_C(0x0030FF), GC_LO}, + {RUNE_C(0x003105), RUNE_C(0x00312F), GC_LO}, + {RUNE_C(0x003131), RUNE_C(0x00318E), GC_LO}, + {RUNE_C(0x003190), RUNE_C(0x003191), GC_SO}, + {RUNE_C(0x003192), RUNE_C(0x003195), GC_NO}, + {RUNE_C(0x003196), RUNE_C(0x00319F), GC_SO}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF), GC_LO}, + {RUNE_C(0x0031C0), RUNE_C(0x0031E3), GC_SO}, + {RUNE_C(0x0031EF), RUNE_C(0x0031EF), GC_SO}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF), GC_LO}, + {RUNE_C(0x003200), RUNE_C(0x00321E), GC_SO}, + {RUNE_C(0x003220), RUNE_C(0x003229), GC_NO}, + {RUNE_C(0x00322A), RUNE_C(0x003247), GC_SO}, + {RUNE_C(0x003248), RUNE_C(0x00324F), GC_NO}, + {RUNE_C(0x003250), RUNE_C(0x003250), GC_SO}, + {RUNE_C(0x003251), RUNE_C(0x00325F), GC_NO}, + {RUNE_C(0x003260), RUNE_C(0x00327F), GC_SO}, + {RUNE_C(0x003280), RUNE_C(0x003289), GC_NO}, + {RUNE_C(0x00328A), RUNE_C(0x0032B0), GC_SO}, + {RUNE_C(0x0032B1), RUNE_C(0x0032BF), GC_NO}, + {RUNE_C(0x0032C0), RUNE_C(0x0033FF), GC_SO}, + {RUNE_C(0x003400), RUNE_C(0x004DBF), GC_LO}, + {RUNE_C(0x004DC0), RUNE_C(0x004DFF), GC_SO}, + {RUNE_C(0x004E00), RUNE_C(0x00A014), GC_LO}, + {RUNE_C(0x00A015), RUNE_C(0x00A015), GC_LM}, + {RUNE_C(0x00A016), RUNE_C(0x00A48C), GC_LO}, + {RUNE_C(0x00A490), RUNE_C(0x00A4C6), GC_SO}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4F7), GC_LO}, + {RUNE_C(0x00A4F8), RUNE_C(0x00A4FD), GC_LM}, + {RUNE_C(0x00A4FE), RUNE_C(0x00A4FF), GC_PO}, + {RUNE_C(0x00A500), RUNE_C(0x00A60B), GC_LO}, + {RUNE_C(0x00A60C), RUNE_C(0x00A60C), GC_LM}, + {RUNE_C(0x00A60D), RUNE_C(0x00A60F), GC_PO}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F), GC_LO}, + {RUNE_C(0x00A620), RUNE_C(0x00A629), GC_ND}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B), GC_LO}, + {RUNE_C(0x00A640), RUNE_C(0x00A640), GC_LU}, + {RUNE_C(0x00A641), RUNE_C(0x00A641), GC_LL}, + {RUNE_C(0x00A642), RUNE_C(0x00A642), GC_LU}, + {RUNE_C(0x00A643), RUNE_C(0x00A643), GC_LL}, + {RUNE_C(0x00A644), RUNE_C(0x00A644), GC_LU}, + {RUNE_C(0x00A645), RUNE_C(0x00A645), GC_LL}, + {RUNE_C(0x00A646), RUNE_C(0x00A646), GC_LU}, + {RUNE_C(0x00A647), RUNE_C(0x00A647), GC_LL}, + {RUNE_C(0x00A648), RUNE_C(0x00A648), GC_LU}, + {RUNE_C(0x00A649), RUNE_C(0x00A649), GC_LL}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A), GC_LU}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B), GC_LL}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C), GC_LU}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D), GC_LL}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E), GC_LU}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F), GC_LL}, + {RUNE_C(0x00A650), RUNE_C(0x00A650), GC_LU}, + {RUNE_C(0x00A651), RUNE_C(0x00A651), GC_LL}, + {RUNE_C(0x00A652), RUNE_C(0x00A652), GC_LU}, + {RUNE_C(0x00A653), RUNE_C(0x00A653), GC_LL}, + {RUNE_C(0x00A654), RUNE_C(0x00A654), GC_LU}, + {RUNE_C(0x00A655), RUNE_C(0x00A655), GC_LL}, + {RUNE_C(0x00A656), RUNE_C(0x00A656), GC_LU}, + {RUNE_C(0x00A657), RUNE_C(0x00A657), GC_LL}, + {RUNE_C(0x00A658), RUNE_C(0x00A658), GC_LU}, + {RUNE_C(0x00A659), RUNE_C(0x00A659), GC_LL}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A), GC_LU}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B), GC_LL}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C), GC_LU}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D), GC_LL}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E), GC_LU}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F), GC_LL}, + {RUNE_C(0x00A660), RUNE_C(0x00A660), GC_LU}, + {RUNE_C(0x00A661), RUNE_C(0x00A661), GC_LL}, + {RUNE_C(0x00A662), RUNE_C(0x00A662), GC_LU}, + {RUNE_C(0x00A663), RUNE_C(0x00A663), GC_LL}, + {RUNE_C(0x00A664), RUNE_C(0x00A664), GC_LU}, + {RUNE_C(0x00A665), RUNE_C(0x00A665), GC_LL}, + {RUNE_C(0x00A666), RUNE_C(0x00A666), GC_LU}, + {RUNE_C(0x00A667), RUNE_C(0x00A667), GC_LL}, + {RUNE_C(0x00A668), RUNE_C(0x00A668), GC_LU}, + {RUNE_C(0x00A669), RUNE_C(0x00A669), GC_LL}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A), GC_LU}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B), GC_LL}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C), GC_LU}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D), GC_LL}, + {RUNE_C(0x00A66E), RUNE_C(0x00A66E), GC_LO}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F), GC_MN}, + {RUNE_C(0x00A670), RUNE_C(0x00A672), GC_ME}, + {RUNE_C(0x00A673), RUNE_C(0x00A673), GC_PO}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D), GC_MN}, + {RUNE_C(0x00A67E), RUNE_C(0x00A67E), GC_PO}, + {RUNE_C(0x00A67F), RUNE_C(0x00A67F), GC_LM}, + {RUNE_C(0x00A680), RUNE_C(0x00A680), GC_LU}, + {RUNE_C(0x00A681), RUNE_C(0x00A681), GC_LL}, + {RUNE_C(0x00A682), RUNE_C(0x00A682), GC_LU}, + {RUNE_C(0x00A683), RUNE_C(0x00A683), GC_LL}, + {RUNE_C(0x00A684), RUNE_C(0x00A684), GC_LU}, + {RUNE_C(0x00A685), RUNE_C(0x00A685), GC_LL}, + {RUNE_C(0x00A686), RUNE_C(0x00A686), GC_LU}, + {RUNE_C(0x00A687), RUNE_C(0x00A687), GC_LL}, + {RUNE_C(0x00A688), RUNE_C(0x00A688), GC_LU}, + {RUNE_C(0x00A689), RUNE_C(0x00A689), GC_LL}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A), GC_LU}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B), GC_LL}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C), GC_LU}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D), GC_LL}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E), GC_LU}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F), GC_LL}, + {RUNE_C(0x00A690), RUNE_C(0x00A690), GC_LU}, + {RUNE_C(0x00A691), RUNE_C(0x00A691), GC_LL}, + {RUNE_C(0x00A692), RUNE_C(0x00A692), GC_LU}, + {RUNE_C(0x00A693), RUNE_C(0x00A693), GC_LL}, + {RUNE_C(0x00A694), RUNE_C(0x00A694), GC_LU}, + {RUNE_C(0x00A695), RUNE_C(0x00A695), GC_LL}, + {RUNE_C(0x00A696), RUNE_C(0x00A696), GC_LU}, + {RUNE_C(0x00A697), RUNE_C(0x00A697), GC_LL}, + {RUNE_C(0x00A698), RUNE_C(0x00A698), GC_LU}, + {RUNE_C(0x00A699), RUNE_C(0x00A699), GC_LL}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A), GC_LU}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69B), GC_LL}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D), GC_LM}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F), GC_MN}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6E5), GC_LO}, + {RUNE_C(0x00A6E6), RUNE_C(0x00A6EF), GC_NL}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1), GC_MN}, + {RUNE_C(0x00A6F2), RUNE_C(0x00A6F7), GC_PO}, + {RUNE_C(0x00A700), RUNE_C(0x00A716), GC_SK}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F), GC_LM}, + {RUNE_C(0x00A720), RUNE_C(0x00A721), GC_SK}, + {RUNE_C(0x00A722), RUNE_C(0x00A722), GC_LU}, + {RUNE_C(0x00A723), RUNE_C(0x00A723), GC_LL}, + {RUNE_C(0x00A724), RUNE_C(0x00A724), GC_LU}, + {RUNE_C(0x00A725), RUNE_C(0x00A725), GC_LL}, + {RUNE_C(0x00A726), RUNE_C(0x00A726), GC_LU}, + {RUNE_C(0x00A727), RUNE_C(0x00A727), GC_LL}, + {RUNE_C(0x00A728), RUNE_C(0x00A728), GC_LU}, + {RUNE_C(0x00A729), RUNE_C(0x00A729), GC_LL}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A), GC_LU}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B), GC_LL}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C), GC_LU}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D), GC_LL}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E), GC_LU}, + {RUNE_C(0x00A72F), RUNE_C(0x00A731), GC_LL}, + {RUNE_C(0x00A732), RUNE_C(0x00A732), GC_LU}, + {RUNE_C(0x00A733), RUNE_C(0x00A733), GC_LL}, + {RUNE_C(0x00A734), RUNE_C(0x00A734), GC_LU}, + {RUNE_C(0x00A735), RUNE_C(0x00A735), GC_LL}, + {RUNE_C(0x00A736), RUNE_C(0x00A736), GC_LU}, + {RUNE_C(0x00A737), RUNE_C(0x00A737), GC_LL}, + {RUNE_C(0x00A738), RUNE_C(0x00A738), GC_LU}, + {RUNE_C(0x00A739), RUNE_C(0x00A739), GC_LL}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A), GC_LU}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B), GC_LL}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C), GC_LU}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D), GC_LL}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E), GC_LU}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F), GC_LL}, + {RUNE_C(0x00A740), RUNE_C(0x00A740), GC_LU}, + {RUNE_C(0x00A741), RUNE_C(0x00A741), GC_LL}, + {RUNE_C(0x00A742), RUNE_C(0x00A742), GC_LU}, + {RUNE_C(0x00A743), RUNE_C(0x00A743), GC_LL}, + {RUNE_C(0x00A744), RUNE_C(0x00A744), GC_LU}, + {RUNE_C(0x00A745), RUNE_C(0x00A745), GC_LL}, + {RUNE_C(0x00A746), RUNE_C(0x00A746), GC_LU}, + {RUNE_C(0x00A747), RUNE_C(0x00A747), GC_LL}, + {RUNE_C(0x00A748), RUNE_C(0x00A748), GC_LU}, + {RUNE_C(0x00A749), RUNE_C(0x00A749), GC_LL}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A), GC_LU}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B), GC_LL}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C), GC_LU}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D), GC_LL}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E), GC_LU}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F), GC_LL}, + {RUNE_C(0x00A750), RUNE_C(0x00A750), GC_LU}, + {RUNE_C(0x00A751), RUNE_C(0x00A751), GC_LL}, + {RUNE_C(0x00A752), RUNE_C(0x00A752), GC_LU}, + {RUNE_C(0x00A753), RUNE_C(0x00A753), GC_LL}, + {RUNE_C(0x00A754), RUNE_C(0x00A754), GC_LU}, + {RUNE_C(0x00A755), RUNE_C(0x00A755), GC_LL}, + {RUNE_C(0x00A756), RUNE_C(0x00A756), GC_LU}, + {RUNE_C(0x00A757), RUNE_C(0x00A757), GC_LL}, + {RUNE_C(0x00A758), RUNE_C(0x00A758), GC_LU}, + {RUNE_C(0x00A759), RUNE_C(0x00A759), GC_LL}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A), GC_LU}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B), GC_LL}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C), GC_LU}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D), GC_LL}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E), GC_LU}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F), GC_LL}, + {RUNE_C(0x00A760), RUNE_C(0x00A760), GC_LU}, + {RUNE_C(0x00A761), RUNE_C(0x00A761), GC_LL}, + {RUNE_C(0x00A762), RUNE_C(0x00A762), GC_LU}, + {RUNE_C(0x00A763), RUNE_C(0x00A763), GC_LL}, + {RUNE_C(0x00A764), RUNE_C(0x00A764), GC_LU}, + {RUNE_C(0x00A765), RUNE_C(0x00A765), GC_LL}, + {RUNE_C(0x00A766), RUNE_C(0x00A766), GC_LU}, + {RUNE_C(0x00A767), RUNE_C(0x00A767), GC_LL}, + {RUNE_C(0x00A768), RUNE_C(0x00A768), GC_LU}, + {RUNE_C(0x00A769), RUNE_C(0x00A769), GC_LL}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A), GC_LU}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B), GC_LL}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C), GC_LU}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D), GC_LL}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E), GC_LU}, + {RUNE_C(0x00A76F), RUNE_C(0x00A76F), GC_LL}, + {RUNE_C(0x00A770), RUNE_C(0x00A770), GC_LM}, + {RUNE_C(0x00A771), RUNE_C(0x00A778), GC_LL}, + {RUNE_C(0x00A779), RUNE_C(0x00A779), GC_LU}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A), GC_LL}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B), GC_LU}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C), GC_LL}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E), GC_LU}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F), GC_LL}, + {RUNE_C(0x00A780), RUNE_C(0x00A780), GC_LU}, + {RUNE_C(0x00A781), RUNE_C(0x00A781), GC_LL}, + {RUNE_C(0x00A782), RUNE_C(0x00A782), GC_LU}, + {RUNE_C(0x00A783), RUNE_C(0x00A783), GC_LL}, + {RUNE_C(0x00A784), RUNE_C(0x00A784), GC_LU}, + {RUNE_C(0x00A785), RUNE_C(0x00A785), GC_LL}, + {RUNE_C(0x00A786), RUNE_C(0x00A786), GC_LU}, + {RUNE_C(0x00A787), RUNE_C(0x00A787), GC_LL}, + {RUNE_C(0x00A788), RUNE_C(0x00A788), GC_LM}, + {RUNE_C(0x00A789), RUNE_C(0x00A78A), GC_SK}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B), GC_LU}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C), GC_LL}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D), GC_LU}, + {RUNE_C(0x00A78E), RUNE_C(0x00A78E), GC_LL}, + {RUNE_C(0x00A78F), RUNE_C(0x00A78F), GC_LO}, + {RUNE_C(0x00A790), RUNE_C(0x00A790), GC_LU}, + {RUNE_C(0x00A791), RUNE_C(0x00A791), GC_LL}, + {RUNE_C(0x00A792), RUNE_C(0x00A792), GC_LU}, + {RUNE_C(0x00A793), RUNE_C(0x00A795), GC_LL}, + {RUNE_C(0x00A796), RUNE_C(0x00A796), GC_LU}, + {RUNE_C(0x00A797), RUNE_C(0x00A797), GC_LL}, + {RUNE_C(0x00A798), RUNE_C(0x00A798), GC_LU}, + {RUNE_C(0x00A799), RUNE_C(0x00A799), GC_LL}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A), GC_LU}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B), GC_LL}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C), GC_LU}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D), GC_LL}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E), GC_LU}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F), GC_LL}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0), GC_LU}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1), GC_LL}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2), GC_LU}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3), GC_LL}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4), GC_LU}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5), GC_LL}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6), GC_LU}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7), GC_LL}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8), GC_LU}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9), GC_LL}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE), GC_LU}, + {RUNE_C(0x00A7AF), RUNE_C(0x00A7AF), GC_LL}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4), GC_LU}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5), GC_LL}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6), GC_LU}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7), GC_LL}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8), GC_LU}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9), GC_LL}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA), GC_LU}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB), GC_LL}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC), GC_LU}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD), GC_LL}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE), GC_LU}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF), GC_LL}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0), GC_LU}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1), GC_LL}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2), GC_LU}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3), GC_LL}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7), GC_LU}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8), GC_LL}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9), GC_LU}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA), GC_LL}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0), GC_LU}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1), GC_LL}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3), GC_LL}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D5), GC_LL}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6), GC_LU}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7), GC_LL}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8), GC_LU}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9), GC_LL}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4), GC_LM}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5), GC_LU}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6), GC_LL}, + {RUNE_C(0x00A7F7), RUNE_C(0x00A7F7), GC_LO}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9), GC_LM}, + {RUNE_C(0x00A7FA), RUNE_C(0x00A7FA), GC_LL}, + {RUNE_C(0x00A7FB), RUNE_C(0x00A801), GC_LO}, + {RUNE_C(0x00A802), RUNE_C(0x00A802), GC_MN}, + {RUNE_C(0x00A803), RUNE_C(0x00A805), GC_LO}, + {RUNE_C(0x00A806), RUNE_C(0x00A806), GC_MN}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A), GC_LO}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B), GC_MN}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822), GC_LO}, + {RUNE_C(0x00A823), RUNE_C(0x00A824), GC_MC}, + {RUNE_C(0x00A825), RUNE_C(0x00A826), GC_MN}, + {RUNE_C(0x00A827), RUNE_C(0x00A827), GC_MC}, + {RUNE_C(0x00A828), RUNE_C(0x00A82B), GC_SO}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C), GC_MN}, + {RUNE_C(0x00A830), RUNE_C(0x00A835), GC_NO}, + {RUNE_C(0x00A836), RUNE_C(0x00A837), GC_SO}, + {RUNE_C(0x00A838), RUNE_C(0x00A838), GC_SC}, + {RUNE_C(0x00A839), RUNE_C(0x00A839), GC_SO}, + {RUNE_C(0x00A840), RUNE_C(0x00A873), GC_LO}, + {RUNE_C(0x00A874), RUNE_C(0x00A877), GC_PO}, + {RUNE_C(0x00A880), RUNE_C(0x00A881), GC_MC}, + {RUNE_C(0x00A882), RUNE_C(0x00A8B3), GC_LO}, + {RUNE_C(0x00A8B4), RUNE_C(0x00A8C3), GC_MC}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5), GC_MN}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF), GC_PO}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9), GC_ND}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1), GC_MN}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7), GC_LO}, + {RUNE_C(0x00A8F8), RUNE_C(0x00A8FA), GC_PO}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB), GC_LO}, + {RUNE_C(0x00A8FC), RUNE_C(0x00A8FC), GC_PO}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE), GC_LO}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF), GC_MN}, + {RUNE_C(0x00A900), RUNE_C(0x00A909), GC_ND}, + {RUNE_C(0x00A90A), RUNE_C(0x00A925), GC_LO}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D), GC_MN}, + {RUNE_C(0x00A92E), RUNE_C(0x00A92F), GC_PO}, + {RUNE_C(0x00A930), RUNE_C(0x00A946), GC_LO}, + {RUNE_C(0x00A947), RUNE_C(0x00A951), GC_MN}, + {RUNE_C(0x00A952), RUNE_C(0x00A953), GC_MC}, + {RUNE_C(0x00A95F), RUNE_C(0x00A95F), GC_PO}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C), GC_LO}, + {RUNE_C(0x00A980), RUNE_C(0x00A982), GC_MN}, + {RUNE_C(0x00A983), RUNE_C(0x00A983), GC_MC}, + {RUNE_C(0x00A984), RUNE_C(0x00A9B2), GC_LO}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3), GC_MN}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9B5), GC_MC}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9), GC_MN}, + {RUNE_C(0x00A9BA), RUNE_C(0x00A9BB), GC_MC}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD), GC_MN}, + {RUNE_C(0x00A9BE), RUNE_C(0x00A9C0), GC_MC}, + {RUNE_C(0x00A9C1), RUNE_C(0x00A9CD), GC_PO}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF), GC_LM}, + {RUNE_C(0x00A9D0), RUNE_C(0x00A9D9), GC_ND}, + {RUNE_C(0x00A9DE), RUNE_C(0x00A9DF), GC_PO}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4), GC_LO}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5), GC_MN}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9E6), GC_LM}, + {RUNE_C(0x00A9E7), RUNE_C(0x00A9EF), GC_LO}, + {RUNE_C(0x00A9F0), RUNE_C(0x00A9F9), GC_ND}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE), GC_LO}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28), GC_LO}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E), GC_MN}, + {RUNE_C(0x00AA2F), RUNE_C(0x00AA30), GC_MC}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32), GC_MN}, + {RUNE_C(0x00AA33), RUNE_C(0x00AA34), GC_MC}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36), GC_MN}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42), GC_LO}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43), GC_MN}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B), GC_LO}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C), GC_MN}, + {RUNE_C(0x00AA4D), RUNE_C(0x00AA4D), GC_MC}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59), GC_ND}, + {RUNE_C(0x00AA5C), RUNE_C(0x00AA5F), GC_PO}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA6F), GC_LO}, + {RUNE_C(0x00AA70), RUNE_C(0x00AA70), GC_LM}, + {RUNE_C(0x00AA71), RUNE_C(0x00AA76), GC_LO}, + {RUNE_C(0x00AA77), RUNE_C(0x00AA79), GC_SO}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A), GC_LO}, + {RUNE_C(0x00AA7B), RUNE_C(0x00AA7B), GC_MC}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C), GC_MN}, + {RUNE_C(0x00AA7D), RUNE_C(0x00AA7D), GC_MC}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF), GC_LO}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0), GC_MN}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1), GC_LO}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4), GC_MN}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6), GC_LO}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8), GC_MN}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD), GC_LO}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF), GC_MN}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0), GC_LO}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1), GC_MN}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2), GC_LO}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADC), GC_LO}, + {RUNE_C(0x00AADD), RUNE_C(0x00AADD), GC_LM}, + {RUNE_C(0x00AADE), RUNE_C(0x00AADF), GC_PO}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA), GC_LO}, + {RUNE_C(0x00AAEB), RUNE_C(0x00AAEB), GC_MC}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED), GC_MN}, + {RUNE_C(0x00AAEE), RUNE_C(0x00AAEF), GC_MC}, + {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1), GC_PO}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF2), GC_LO}, + {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4), GC_LM}, + {RUNE_C(0x00AAF5), RUNE_C(0x00AAF5), GC_MC}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6), GC_MN}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06), GC_LO}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E), GC_LO}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16), GC_LO}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26), GC_LO}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E), GC_LO}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A), GC_LL}, + {RUNE_C(0x00AB5B), RUNE_C(0x00AB5B), GC_SK}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB5F), GC_LM}, + {RUNE_C(0x00AB60), RUNE_C(0x00AB68), GC_LL}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB69), GC_LM}, + {RUNE_C(0x00AB6A), RUNE_C(0x00AB6B), GC_SK}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF), GC_LL}, + {RUNE_C(0x00ABC0), RUNE_C(0x00ABE2), GC_LO}, + {RUNE_C(0x00ABE3), RUNE_C(0x00ABE4), GC_MC}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5), GC_MN}, + {RUNE_C(0x00ABE6), RUNE_C(0x00ABE7), GC_MC}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8), GC_MN}, + {RUNE_C(0x00ABE9), RUNE_C(0x00ABEA), GC_MC}, + {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB), GC_PO}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABEC), GC_MC}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED), GC_MN}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9), GC_ND}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3), GC_LO}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6), GC_LO}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB), GC_LO}, + {RUNE_C(0x00D800), RUNE_C(0x00DFFF), GC_CS}, + {RUNE_C(0x00E000), RUNE_C(0x00F8FF), GC_CO}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D), GC_LO}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9), GC_LO}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06), GC_LL}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17), GC_LL}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D), GC_LO}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E), GC_MN}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB28), GC_LO}, + {RUNE_C(0x00FB29), RUNE_C(0x00FB29), GC_SM}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36), GC_LO}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C), GC_LO}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E), GC_LO}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41), GC_LO}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44), GC_LO}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1), GC_LO}, + {RUNE_C(0x00FBB2), RUNE_C(0x00FBC2), GC_SK}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D), GC_LO}, + {RUNE_C(0x00FD3E), RUNE_C(0x00FD3E), GC_PE}, + {RUNE_C(0x00FD3F), RUNE_C(0x00FD3F), GC_PS}, + {RUNE_C(0x00FD40), RUNE_C(0x00FD4F), GC_SO}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F), GC_LO}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7), GC_LO}, + {RUNE_C(0x00FDCF), RUNE_C(0x00FDCF), GC_SO}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB), GC_LO}, + {RUNE_C(0x00FDFC), RUNE_C(0x00FDFC), GC_SC}, + {RUNE_C(0x00FDFD), RUNE_C(0x00FDFF), GC_SO}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F), GC_MN}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE16), GC_PO}, + {RUNE_C(0x00FE17), RUNE_C(0x00FE17), GC_PS}, + {RUNE_C(0x00FE18), RUNE_C(0x00FE18), GC_PE}, + {RUNE_C(0x00FE19), RUNE_C(0x00FE19), GC_PO}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F), GC_MN}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE30), GC_PO}, + {RUNE_C(0x00FE31), RUNE_C(0x00FE32), GC_PD}, + {RUNE_C(0x00FE33), RUNE_C(0x00FE34), GC_PC}, + {RUNE_C(0x00FE35), RUNE_C(0x00FE35), GC_PS}, + {RUNE_C(0x00FE36), RUNE_C(0x00FE36), GC_PE}, + {RUNE_C(0x00FE37), RUNE_C(0x00FE37), GC_PS}, + {RUNE_C(0x00FE38), RUNE_C(0x00FE38), GC_PE}, + {RUNE_C(0x00FE39), RUNE_C(0x00FE39), GC_PS}, + {RUNE_C(0x00FE3A), RUNE_C(0x00FE3A), GC_PE}, + {RUNE_C(0x00FE3B), RUNE_C(0x00FE3B), GC_PS}, + {RUNE_C(0x00FE3C), RUNE_C(0x00FE3C), GC_PE}, + {RUNE_C(0x00FE3D), RUNE_C(0x00FE3D), GC_PS}, + {RUNE_C(0x00FE3E), RUNE_C(0x00FE3E), GC_PE}, + {RUNE_C(0x00FE3F), RUNE_C(0x00FE3F), GC_PS}, + {RUNE_C(0x00FE40), RUNE_C(0x00FE40), GC_PE}, + {RUNE_C(0x00FE41), RUNE_C(0x00FE41), GC_PS}, + {RUNE_C(0x00FE42), RUNE_C(0x00FE42), GC_PE}, + {RUNE_C(0x00FE43), RUNE_C(0x00FE43), GC_PS}, + {RUNE_C(0x00FE44), RUNE_C(0x00FE44), GC_PE}, + {RUNE_C(0x00FE45), RUNE_C(0x00FE46), GC_PO}, + {RUNE_C(0x00FE47), RUNE_C(0x00FE47), GC_PS}, + {RUNE_C(0x00FE48), RUNE_C(0x00FE48), GC_PE}, + {RUNE_C(0x00FE49), RUNE_C(0x00FE4C), GC_PO}, + {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F), GC_PC}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE52), GC_PO}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE57), GC_PO}, + {RUNE_C(0x00FE58), RUNE_C(0x00FE58), GC_PD}, + {RUNE_C(0x00FE59), RUNE_C(0x00FE59), GC_PS}, + {RUNE_C(0x00FE5A), RUNE_C(0x00FE5A), GC_PE}, + {RUNE_C(0x00FE5B), RUNE_C(0x00FE5B), GC_PS}, + {RUNE_C(0x00FE5C), RUNE_C(0x00FE5C), GC_PE}, + {RUNE_C(0x00FE5D), RUNE_C(0x00FE5D), GC_PS}, + {RUNE_C(0x00FE5E), RUNE_C(0x00FE5E), GC_PE}, + {RUNE_C(0x00FE5F), RUNE_C(0x00FE61), GC_PO}, + {RUNE_C(0x00FE62), RUNE_C(0x00FE62), GC_SM}, + {RUNE_C(0x00FE63), RUNE_C(0x00FE63), GC_PD}, + {RUNE_C(0x00FE64), RUNE_C(0x00FE66), GC_SM}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE68), GC_PO}, + {RUNE_C(0x00FE69), RUNE_C(0x00FE69), GC_SC}, + {RUNE_C(0x00FE6A), RUNE_C(0x00FE6B), GC_PO}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74), GC_LO}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC), GC_LO}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF), GC_CF}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF03), GC_PO}, + {RUNE_C(0x00FF04), RUNE_C(0x00FF04), GC_SC}, + {RUNE_C(0x00FF05), RUNE_C(0x00FF07), GC_PO}, + {RUNE_C(0x00FF08), RUNE_C(0x00FF08), GC_PS}, + {RUNE_C(0x00FF09), RUNE_C(0x00FF09), GC_PE}, + {RUNE_C(0x00FF0A), RUNE_C(0x00FF0A), GC_PO}, + {RUNE_C(0x00FF0B), RUNE_C(0x00FF0B), GC_SM}, + {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C), GC_PO}, + {RUNE_C(0x00FF0D), RUNE_C(0x00FF0D), GC_PD}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0F), GC_PO}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19), GC_ND}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B), GC_PO}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E), GC_SM}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF20), GC_PO}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A), GC_LU}, + {RUNE_C(0x00FF3B), RUNE_C(0x00FF3B), GC_PS}, + {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C), GC_PO}, + {RUNE_C(0x00FF3D), RUNE_C(0x00FF3D), GC_PE}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E), GC_SK}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F), GC_PC}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF40), GC_SK}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A), GC_LL}, + {RUNE_C(0x00FF5B), RUNE_C(0x00FF5B), GC_PS}, + {RUNE_C(0x00FF5C), RUNE_C(0x00FF5C), GC_SM}, + {RUNE_C(0x00FF5D), RUNE_C(0x00FF5D), GC_PE}, + {RUNE_C(0x00FF5E), RUNE_C(0x00FF5E), GC_SM}, + {RUNE_C(0x00FF5F), RUNE_C(0x00FF5F), GC_PS}, + {RUNE_C(0x00FF60), RUNE_C(0x00FF60), GC_PE}, + {RUNE_C(0x00FF61), RUNE_C(0x00FF61), GC_PO}, + {RUNE_C(0x00FF62), RUNE_C(0x00FF62), GC_PS}, + {RUNE_C(0x00FF63), RUNE_C(0x00FF63), GC_PE}, + {RUNE_C(0x00FF64), RUNE_C(0x00FF65), GC_PO}, + {RUNE_C(0x00FF66), RUNE_C(0x00FF6F), GC_LO}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70), GC_LM}, + {RUNE_C(0x00FF71), RUNE_C(0x00FF9D), GC_LO}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F), GC_LM}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE), GC_LO}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7), GC_LO}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF), GC_LO}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7), GC_LO}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC), GC_LO}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE1), GC_SC}, + {RUNE_C(0x00FFE2), RUNE_C(0x00FFE2), GC_SM}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3), GC_SK}, + {RUNE_C(0x00FFE4), RUNE_C(0x00FFE4), GC_SO}, + {RUNE_C(0x00FFE5), RUNE_C(0x00FFE6), GC_SC}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFE8), GC_SO}, + {RUNE_C(0x00FFE9), RUNE_C(0x00FFEC), GC_SM}, + {RUNE_C(0x00FFED), RUNE_C(0x00FFEE), GC_SO}, + {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB), GC_CF}, + {RUNE_C(0x00FFFC), RUNE_C(0x00FFFD), GC_SO}, + {RUNE_C(0x010000), RUNE_C(0x01000B), GC_LO}, + {RUNE_C(0x01000D), RUNE_C(0x010026), GC_LO}, + {RUNE_C(0x010028), RUNE_C(0x01003A), GC_LO}, + {RUNE_C(0x01003C), RUNE_C(0x01003D), GC_LO}, + {RUNE_C(0x01003F), RUNE_C(0x01004D), GC_LO}, + {RUNE_C(0x010050), RUNE_C(0x01005D), GC_LO}, + {RUNE_C(0x010080), RUNE_C(0x0100FA), GC_LO}, + {RUNE_C(0x010100), RUNE_C(0x010102), GC_PO}, + {RUNE_C(0x010107), RUNE_C(0x010133), GC_NO}, + {RUNE_C(0x010137), RUNE_C(0x01013F), GC_SO}, + {RUNE_C(0x010140), RUNE_C(0x010174), GC_NL}, + {RUNE_C(0x010175), RUNE_C(0x010178), GC_NO}, + {RUNE_C(0x010179), RUNE_C(0x010189), GC_SO}, + {RUNE_C(0x01018A), RUNE_C(0x01018B), GC_NO}, + {RUNE_C(0x01018C), RUNE_C(0x01018E), GC_SO}, + {RUNE_C(0x010190), RUNE_C(0x01019C), GC_SO}, + {RUNE_C(0x0101A0), RUNE_C(0x0101A0), GC_SO}, + {RUNE_C(0x0101D0), RUNE_C(0x0101FC), GC_SO}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD), GC_MN}, + {RUNE_C(0x010280), RUNE_C(0x01029C), GC_LO}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0), GC_LO}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0), GC_MN}, + {RUNE_C(0x0102E1), RUNE_C(0x0102FB), GC_NO}, + {RUNE_C(0x010300), RUNE_C(0x01031F), GC_LO}, + {RUNE_C(0x010320), RUNE_C(0x010323), GC_NO}, + {RUNE_C(0x01032D), RUNE_C(0x010340), GC_LO}, + {RUNE_C(0x010341), RUNE_C(0x010341), GC_NL}, + {RUNE_C(0x010342), RUNE_C(0x010349), GC_LO}, + {RUNE_C(0x01034A), RUNE_C(0x01034A), GC_NL}, + {RUNE_C(0x010350), RUNE_C(0x010375), GC_LO}, + {RUNE_C(0x010376), RUNE_C(0x01037A), GC_MN}, + {RUNE_C(0x010380), RUNE_C(0x01039D), GC_LO}, + {RUNE_C(0x01039F), RUNE_C(0x01039F), GC_PO}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3), GC_LO}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF), GC_LO}, + {RUNE_C(0x0103D0), RUNE_C(0x0103D0), GC_PO}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5), GC_NL}, + {RUNE_C(0x010400), RUNE_C(0x010427), GC_LU}, + {RUNE_C(0x010428), RUNE_C(0x01044F), GC_LL}, + {RUNE_C(0x010450), RUNE_C(0x01049D), GC_LO}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9), GC_ND}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3), GC_LU}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB), GC_LL}, + {RUNE_C(0x010500), RUNE_C(0x010527), GC_LO}, + {RUNE_C(0x010530), RUNE_C(0x010563), GC_LO}, + {RUNE_C(0x01056F), RUNE_C(0x01056F), GC_PO}, + {RUNE_C(0x010570), RUNE_C(0x01057A), GC_LU}, + {RUNE_C(0x01057C), RUNE_C(0x01058A), GC_LU}, + {RUNE_C(0x01058C), RUNE_C(0x010592), GC_LU}, + {RUNE_C(0x010594), RUNE_C(0x010595), GC_LU}, + {RUNE_C(0x010597), RUNE_C(0x0105A1), GC_LL}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1), GC_LL}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9), GC_LL}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC), GC_LL}, + {RUNE_C(0x010600), RUNE_C(0x010736), GC_LO}, + {RUNE_C(0x010740), RUNE_C(0x010755), GC_LO}, + {RUNE_C(0x010760), RUNE_C(0x010767), GC_LO}, + {RUNE_C(0x010780), RUNE_C(0x010785), GC_LM}, + {RUNE_C(0x010787), RUNE_C(0x0107B0), GC_LM}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA), GC_LM}, + {RUNE_C(0x010800), RUNE_C(0x010805), GC_LO}, + {RUNE_C(0x010808), RUNE_C(0x010808), GC_LO}, + {RUNE_C(0x01080A), RUNE_C(0x010835), GC_LO}, + {RUNE_C(0x010837), RUNE_C(0x010838), GC_LO}, + {RUNE_C(0x01083C), RUNE_C(0x01083C), GC_LO}, + {RUNE_C(0x01083F), RUNE_C(0x010855), GC_LO}, + {RUNE_C(0x010857), RUNE_C(0x010857), GC_PO}, + {RUNE_C(0x010858), RUNE_C(0x01085F), GC_NO}, + {RUNE_C(0x010860), RUNE_C(0x010876), GC_LO}, + {RUNE_C(0x010877), RUNE_C(0x010878), GC_SO}, + {RUNE_C(0x010879), RUNE_C(0x01087F), GC_NO}, + {RUNE_C(0x010880), RUNE_C(0x01089E), GC_LO}, + {RUNE_C(0x0108A7), RUNE_C(0x0108AF), GC_NO}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2), GC_LO}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5), GC_LO}, + {RUNE_C(0x0108FB), RUNE_C(0x0108FF), GC_NO}, + {RUNE_C(0x010900), RUNE_C(0x010915), GC_LO}, + {RUNE_C(0x010916), RUNE_C(0x01091B), GC_NO}, + {RUNE_C(0x01091F), RUNE_C(0x01091F), GC_PO}, + {RUNE_C(0x010920), RUNE_C(0x010939), GC_LO}, + {RUNE_C(0x01093F), RUNE_C(0x01093F), GC_PO}, + {RUNE_C(0x010980), RUNE_C(0x0109B7), GC_LO}, + {RUNE_C(0x0109BC), RUNE_C(0x0109BD), GC_NO}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF), GC_LO}, + {RUNE_C(0x0109C0), RUNE_C(0x0109CF), GC_NO}, + {RUNE_C(0x0109D2), RUNE_C(0x0109FF), GC_NO}, + {RUNE_C(0x010A00), RUNE_C(0x010A00), GC_LO}, + {RUNE_C(0x010A01), RUNE_C(0x010A03), GC_MN}, + {RUNE_C(0x010A05), RUNE_C(0x010A06), GC_MN}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F), GC_MN}, + {RUNE_C(0x010A10), RUNE_C(0x010A13), GC_LO}, + {RUNE_C(0x010A15), RUNE_C(0x010A17), GC_LO}, + {RUNE_C(0x010A19), RUNE_C(0x010A35), GC_LO}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A), GC_MN}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F), GC_MN}, + {RUNE_C(0x010A40), RUNE_C(0x010A48), GC_NO}, + {RUNE_C(0x010A50), RUNE_C(0x010A58), GC_PO}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C), GC_LO}, + {RUNE_C(0x010A7D), RUNE_C(0x010A7E), GC_NO}, + {RUNE_C(0x010A7F), RUNE_C(0x010A7F), GC_PO}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C), GC_LO}, + {RUNE_C(0x010A9D), RUNE_C(0x010A9F), GC_NO}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7), GC_LO}, + {RUNE_C(0x010AC8), RUNE_C(0x010AC8), GC_SO}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4), GC_LO}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6), GC_MN}, + {RUNE_C(0x010AEB), RUNE_C(0x010AEF), GC_NO}, + {RUNE_C(0x010AF0), RUNE_C(0x010AF6), GC_PO}, + {RUNE_C(0x010B00), RUNE_C(0x010B35), GC_LO}, + {RUNE_C(0x010B39), RUNE_C(0x010B3F), GC_PO}, + {RUNE_C(0x010B40), RUNE_C(0x010B55), GC_LO}, + {RUNE_C(0x010B58), RUNE_C(0x010B5F), GC_NO}, + {RUNE_C(0x010B60), RUNE_C(0x010B72), GC_LO}, + {RUNE_C(0x010B78), RUNE_C(0x010B7F), GC_NO}, + {RUNE_C(0x010B80), RUNE_C(0x010B91), GC_LO}, + {RUNE_C(0x010B99), RUNE_C(0x010B9C), GC_PO}, + {RUNE_C(0x010BA9), RUNE_C(0x010BAF), GC_NO}, + {RUNE_C(0x010C00), RUNE_C(0x010C48), GC_LO}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2), GC_LU}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2), GC_LL}, + {RUNE_C(0x010CFA), RUNE_C(0x010CFF), GC_NO}, + {RUNE_C(0x010D00), RUNE_C(0x010D23), GC_LO}, + {RUNE_C(0x010D24), RUNE_C(0x010D27), GC_MN}, + {RUNE_C(0x010D30), RUNE_C(0x010D39), GC_ND}, + {RUNE_C(0x010E60), RUNE_C(0x010E7E), GC_NO}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9), GC_LO}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC), GC_MN}, + {RUNE_C(0x010EAD), RUNE_C(0x010EAD), GC_PD}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1), GC_LO}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF), GC_MN}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C), GC_LO}, + {RUNE_C(0x010F1D), RUNE_C(0x010F26), GC_NO}, + {RUNE_C(0x010F27), RUNE_C(0x010F27), GC_LO}, + {RUNE_C(0x010F30), RUNE_C(0x010F45), GC_LO}, + {RUNE_C(0x010F46), RUNE_C(0x010F50), GC_MN}, + {RUNE_C(0x010F51), RUNE_C(0x010F54), GC_NO}, + {RUNE_C(0x010F55), RUNE_C(0x010F59), GC_PO}, + {RUNE_C(0x010F70), RUNE_C(0x010F81), GC_LO}, + {RUNE_C(0x010F82), RUNE_C(0x010F85), GC_MN}, + {RUNE_C(0x010F86), RUNE_C(0x010F89), GC_PO}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4), GC_LO}, + {RUNE_C(0x010FC5), RUNE_C(0x010FCB), GC_NO}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6), GC_LO}, + {RUNE_C(0x011000), RUNE_C(0x011000), GC_MC}, + {RUNE_C(0x011001), RUNE_C(0x011001), GC_MN}, + {RUNE_C(0x011002), RUNE_C(0x011002), GC_MC}, + {RUNE_C(0x011003), RUNE_C(0x011037), GC_LO}, + {RUNE_C(0x011038), RUNE_C(0x011046), GC_MN}, + {RUNE_C(0x011047), RUNE_C(0x01104D), GC_PO}, + {RUNE_C(0x011052), RUNE_C(0x011065), GC_NO}, + {RUNE_C(0x011066), RUNE_C(0x01106F), GC_ND}, + {RUNE_C(0x011070), RUNE_C(0x011070), GC_MN}, + {RUNE_C(0x011071), RUNE_C(0x011072), GC_LO}, + {RUNE_C(0x011073), RUNE_C(0x011074), GC_MN}, + {RUNE_C(0x011075), RUNE_C(0x011075), GC_LO}, + {RUNE_C(0x01107F), RUNE_C(0x011081), GC_MN}, + {RUNE_C(0x011082), RUNE_C(0x011082), GC_MC}, + {RUNE_C(0x011083), RUNE_C(0x0110AF), GC_LO}, + {RUNE_C(0x0110B0), RUNE_C(0x0110B2), GC_MC}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6), GC_MN}, + {RUNE_C(0x0110B7), RUNE_C(0x0110B8), GC_MC}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA), GC_MN}, + {RUNE_C(0x0110BB), RUNE_C(0x0110BC), GC_PO}, + {RUNE_C(0x0110BD), RUNE_C(0x0110BD), GC_CF}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1), GC_PO}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2), GC_MN}, + {RUNE_C(0x0110CD), RUNE_C(0x0110CD), GC_CF}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8), GC_LO}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9), GC_ND}, + {RUNE_C(0x011100), RUNE_C(0x011102), GC_MN}, + {RUNE_C(0x011103), RUNE_C(0x011126), GC_LO}, + {RUNE_C(0x011127), RUNE_C(0x01112B), GC_MN}, + {RUNE_C(0x01112C), RUNE_C(0x01112C), GC_MC}, + {RUNE_C(0x01112D), RUNE_C(0x011134), GC_MN}, + {RUNE_C(0x011136), RUNE_C(0x01113F), GC_ND}, + {RUNE_C(0x011140), RUNE_C(0x011143), GC_PO}, + {RUNE_C(0x011144), RUNE_C(0x011144), GC_LO}, + {RUNE_C(0x011145), RUNE_C(0x011146), GC_MC}, + {RUNE_C(0x011147), RUNE_C(0x011147), GC_LO}, + {RUNE_C(0x011150), RUNE_C(0x011172), GC_LO}, + {RUNE_C(0x011173), RUNE_C(0x011173), GC_MN}, + {RUNE_C(0x011174), RUNE_C(0x011175), GC_PO}, + {RUNE_C(0x011176), RUNE_C(0x011176), GC_LO}, + {RUNE_C(0x011180), RUNE_C(0x011181), GC_MN}, + {RUNE_C(0x011182), RUNE_C(0x011182), GC_MC}, + {RUNE_C(0x011183), RUNE_C(0x0111B2), GC_LO}, + {RUNE_C(0x0111B3), RUNE_C(0x0111B5), GC_MC}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE), GC_MN}, + {RUNE_C(0x0111BF), RUNE_C(0x0111C0), GC_MC}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4), GC_LO}, + {RUNE_C(0x0111C5), RUNE_C(0x0111C8), GC_PO}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC), GC_MN}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CD), GC_PO}, + {RUNE_C(0x0111CE), RUNE_C(0x0111CE), GC_MC}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF), GC_MN}, + {RUNE_C(0x0111D0), RUNE_C(0x0111D9), GC_ND}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA), GC_LO}, + {RUNE_C(0x0111DB), RUNE_C(0x0111DB), GC_PO}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC), GC_LO}, + {RUNE_C(0x0111DD), RUNE_C(0x0111DF), GC_PO}, + {RUNE_C(0x0111E1), RUNE_C(0x0111F4), GC_NO}, + {RUNE_C(0x011200), RUNE_C(0x011211), GC_LO}, + {RUNE_C(0x011213), RUNE_C(0x01122B), GC_LO}, + {RUNE_C(0x01122C), RUNE_C(0x01122E), GC_MC}, + {RUNE_C(0x01122F), RUNE_C(0x011231), GC_MN}, + {RUNE_C(0x011232), RUNE_C(0x011233), GC_MC}, + {RUNE_C(0x011234), RUNE_C(0x011234), GC_MN}, + {RUNE_C(0x011235), RUNE_C(0x011235), GC_MC}, + {RUNE_C(0x011236), RUNE_C(0x011237), GC_MN}, + {RUNE_C(0x011238), RUNE_C(0x01123D), GC_PO}, + {RUNE_C(0x01123E), RUNE_C(0x01123E), GC_MN}, + {RUNE_C(0x01123F), RUNE_C(0x011240), GC_LO}, + {RUNE_C(0x011241), RUNE_C(0x011241), GC_MN}, + {RUNE_C(0x011280), RUNE_C(0x011286), GC_LO}, + {RUNE_C(0x011288), RUNE_C(0x011288), GC_LO}, + {RUNE_C(0x01128A), RUNE_C(0x01128D), GC_LO}, + {RUNE_C(0x01128F), RUNE_C(0x01129D), GC_LO}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8), GC_LO}, + {RUNE_C(0x0112A9), RUNE_C(0x0112A9), GC_PO}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE), GC_LO}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF), GC_MN}, + {RUNE_C(0x0112E0), RUNE_C(0x0112E2), GC_MC}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA), GC_MN}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9), GC_ND}, + {RUNE_C(0x011300), RUNE_C(0x011301), GC_MN}, + {RUNE_C(0x011302), RUNE_C(0x011303), GC_MC}, + {RUNE_C(0x011305), RUNE_C(0x01130C), GC_LO}, + {RUNE_C(0x01130F), RUNE_C(0x011310), GC_LO}, + {RUNE_C(0x011313), RUNE_C(0x011328), GC_LO}, + {RUNE_C(0x01132A), RUNE_C(0x011330), GC_LO}, + {RUNE_C(0x011332), RUNE_C(0x011333), GC_LO}, + {RUNE_C(0x011335), RUNE_C(0x011339), GC_LO}, + {RUNE_C(0x01133B), RUNE_C(0x01133C), GC_MN}, + {RUNE_C(0x01133D), RUNE_C(0x01133D), GC_LO}, + {RUNE_C(0x01133E), RUNE_C(0x01133F), GC_MC}, + {RUNE_C(0x011340), RUNE_C(0x011340), GC_MN}, + {RUNE_C(0x011341), RUNE_C(0x011344), GC_MC}, + {RUNE_C(0x011347), RUNE_C(0x011348), GC_MC}, + {RUNE_C(0x01134B), RUNE_C(0x01134D), GC_MC}, + {RUNE_C(0x011350), RUNE_C(0x011350), GC_LO}, + {RUNE_C(0x011357), RUNE_C(0x011357), GC_MC}, + {RUNE_C(0x01135D), RUNE_C(0x011361), GC_LO}, + {RUNE_C(0x011362), RUNE_C(0x011363), GC_MC}, + {RUNE_C(0x011366), RUNE_C(0x01136C), GC_MN}, + {RUNE_C(0x011370), RUNE_C(0x011374), GC_MN}, + {RUNE_C(0x011400), RUNE_C(0x011434), GC_LO}, + {RUNE_C(0x011435), RUNE_C(0x011437), GC_MC}, + {RUNE_C(0x011438), RUNE_C(0x01143F), GC_MN}, + {RUNE_C(0x011440), RUNE_C(0x011441), GC_MC}, + {RUNE_C(0x011442), RUNE_C(0x011444), GC_MN}, + {RUNE_C(0x011445), RUNE_C(0x011445), GC_MC}, + {RUNE_C(0x011446), RUNE_C(0x011446), GC_MN}, + {RUNE_C(0x011447), RUNE_C(0x01144A), GC_LO}, + {RUNE_C(0x01144B), RUNE_C(0x01144F), GC_PO}, + {RUNE_C(0x011450), RUNE_C(0x011459), GC_ND}, + {RUNE_C(0x01145A), RUNE_C(0x01145B), GC_PO}, + {RUNE_C(0x01145D), RUNE_C(0x01145D), GC_PO}, + {RUNE_C(0x01145E), RUNE_C(0x01145E), GC_MN}, + {RUNE_C(0x01145F), RUNE_C(0x011461), GC_LO}, + {RUNE_C(0x011480), RUNE_C(0x0114AF), GC_LO}, + {RUNE_C(0x0114B0), RUNE_C(0x0114B2), GC_MC}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8), GC_MN}, + {RUNE_C(0x0114B9), RUNE_C(0x0114B9), GC_MC}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA), GC_MN}, + {RUNE_C(0x0114BB), RUNE_C(0x0114BE), GC_MC}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0), GC_MN}, + {RUNE_C(0x0114C1), RUNE_C(0x0114C1), GC_MC}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3), GC_MN}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5), GC_LO}, + {RUNE_C(0x0114C6), RUNE_C(0x0114C6), GC_PO}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7), GC_LO}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9), GC_ND}, + {RUNE_C(0x011580), RUNE_C(0x0115AE), GC_LO}, + {RUNE_C(0x0115AF), RUNE_C(0x0115B1), GC_MC}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5), GC_MN}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BB), GC_MC}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD), GC_MN}, + {RUNE_C(0x0115BE), RUNE_C(0x0115BE), GC_MC}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0), GC_MN}, + {RUNE_C(0x0115C1), RUNE_C(0x0115D7), GC_PO}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB), GC_LO}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD), GC_MN}, + {RUNE_C(0x011600), RUNE_C(0x01162F), GC_LO}, + {RUNE_C(0x011630), RUNE_C(0x011632), GC_MC}, + {RUNE_C(0x011633), RUNE_C(0x01163A), GC_MN}, + {RUNE_C(0x01163B), RUNE_C(0x01163C), GC_MC}, + {RUNE_C(0x01163D), RUNE_C(0x01163D), GC_MN}, + {RUNE_C(0x01163E), RUNE_C(0x01163E), GC_MC}, + {RUNE_C(0x01163F), RUNE_C(0x011640), GC_MN}, + {RUNE_C(0x011641), RUNE_C(0x011643), GC_PO}, + {RUNE_C(0x011644), RUNE_C(0x011644), GC_LO}, + {RUNE_C(0x011650), RUNE_C(0x011659), GC_ND}, + {RUNE_C(0x011660), RUNE_C(0x01166C), GC_PO}, + {RUNE_C(0x011680), RUNE_C(0x0116AA), GC_LO}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB), GC_MN}, + {RUNE_C(0x0116AC), RUNE_C(0x0116AC), GC_MC}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD), GC_MN}, + {RUNE_C(0x0116AE), RUNE_C(0x0116AF), GC_MC}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5), GC_MN}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B6), GC_MC}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7), GC_MN}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8), GC_LO}, + {RUNE_C(0x0116B9), RUNE_C(0x0116B9), GC_PO}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9), GC_ND}, + {RUNE_C(0x011700), RUNE_C(0x01171A), GC_LO}, + {RUNE_C(0x01171D), RUNE_C(0x01171F), GC_MN}, + {RUNE_C(0x011720), RUNE_C(0x011721), GC_MC}, + {RUNE_C(0x011722), RUNE_C(0x011725), GC_MN}, + {RUNE_C(0x011726), RUNE_C(0x011726), GC_MC}, + {RUNE_C(0x011727), RUNE_C(0x01172B), GC_MN}, + {RUNE_C(0x011730), RUNE_C(0x011739), GC_ND}, + {RUNE_C(0x01173A), RUNE_C(0x01173B), GC_NO}, + {RUNE_C(0x01173C), RUNE_C(0x01173E), GC_PO}, + {RUNE_C(0x01173F), RUNE_C(0x01173F), GC_SO}, + {RUNE_C(0x011740), RUNE_C(0x011746), GC_LO}, + {RUNE_C(0x011800), RUNE_C(0x01182B), GC_LO}, + {RUNE_C(0x01182C), RUNE_C(0x01182E), GC_MC}, + {RUNE_C(0x01182F), RUNE_C(0x011837), GC_MN}, + {RUNE_C(0x011838), RUNE_C(0x011838), GC_MC}, + {RUNE_C(0x011839), RUNE_C(0x01183A), GC_MN}, + {RUNE_C(0x01183B), RUNE_C(0x01183B), GC_PO}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF), GC_LU}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF), GC_LL}, + {RUNE_C(0x0118E0), RUNE_C(0x0118E9), GC_ND}, + {RUNE_C(0x0118EA), RUNE_C(0x0118F2), GC_NO}, + {RUNE_C(0x0118FF), RUNE_C(0x011906), GC_LO}, + {RUNE_C(0x011909), RUNE_C(0x011909), GC_LO}, + {RUNE_C(0x01190C), RUNE_C(0x011913), GC_LO}, + {RUNE_C(0x011915), RUNE_C(0x011916), GC_LO}, + {RUNE_C(0x011918), RUNE_C(0x01192F), GC_LO}, + {RUNE_C(0x011930), RUNE_C(0x011935), GC_MC}, + {RUNE_C(0x011937), RUNE_C(0x011938), GC_MC}, + {RUNE_C(0x01193B), RUNE_C(0x01193C), GC_MN}, + {RUNE_C(0x01193D), RUNE_C(0x01193D), GC_MC}, + {RUNE_C(0x01193E), RUNE_C(0x01193E), GC_MN}, + {RUNE_C(0x01193F), RUNE_C(0x01193F), GC_LO}, + {RUNE_C(0x011940), RUNE_C(0x011940), GC_MC}, + {RUNE_C(0x011941), RUNE_C(0x011941), GC_LO}, + {RUNE_C(0x011942), RUNE_C(0x011942), GC_MC}, + {RUNE_C(0x011943), RUNE_C(0x011943), GC_MN}, + {RUNE_C(0x011944), RUNE_C(0x011946), GC_PO}, + {RUNE_C(0x011950), RUNE_C(0x011959), GC_ND}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7), GC_LO}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D0), GC_LO}, + {RUNE_C(0x0119D1), RUNE_C(0x0119D3), GC_MC}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7), GC_MN}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB), GC_MN}, + {RUNE_C(0x0119DC), RUNE_C(0x0119DF), GC_MC}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0), GC_MN}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1), GC_LO}, + {RUNE_C(0x0119E2), RUNE_C(0x0119E2), GC_PO}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E3), GC_LO}, + {RUNE_C(0x0119E4), RUNE_C(0x0119E4), GC_MC}, + {RUNE_C(0x011A00), RUNE_C(0x011A00), GC_LO}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A), GC_MN}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32), GC_LO}, + {RUNE_C(0x011A33), RUNE_C(0x011A38), GC_MN}, + {RUNE_C(0x011A39), RUNE_C(0x011A39), GC_MC}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A), GC_LO}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E), GC_MN}, + {RUNE_C(0x011A3F), RUNE_C(0x011A46), GC_PO}, + {RUNE_C(0x011A47), RUNE_C(0x011A47), GC_MN}, + {RUNE_C(0x011A50), RUNE_C(0x011A50), GC_LO}, + {RUNE_C(0x011A51), RUNE_C(0x011A56), GC_MN}, + {RUNE_C(0x011A57), RUNE_C(0x011A58), GC_MC}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B), GC_MN}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89), GC_LO}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96), GC_MN}, + {RUNE_C(0x011A97), RUNE_C(0x011A97), GC_MC}, + {RUNE_C(0x011A98), RUNE_C(0x011A99), GC_MN}, + {RUNE_C(0x011A9A), RUNE_C(0x011A9C), GC_PO}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D), GC_LO}, + {RUNE_C(0x011A9E), RUNE_C(0x011AA2), GC_PO}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8), GC_LO}, + {RUNE_C(0x011B00), RUNE_C(0x011B09), GC_PO}, + {RUNE_C(0x011C00), RUNE_C(0x011C08), GC_LO}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2E), GC_LO}, + {RUNE_C(0x011C2F), RUNE_C(0x011C2F), GC_MC}, + {RUNE_C(0x011C30), RUNE_C(0x011C36), GC_MN}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D), GC_MN}, + {RUNE_C(0x011C3E), RUNE_C(0x011C3E), GC_MC}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F), GC_MN}, + {RUNE_C(0x011C40), RUNE_C(0x011C40), GC_LO}, + {RUNE_C(0x011C41), RUNE_C(0x011C45), GC_PO}, + {RUNE_C(0x011C50), RUNE_C(0x011C59), GC_ND}, + {RUNE_C(0x011C5A), RUNE_C(0x011C6C), GC_NO}, + {RUNE_C(0x011C70), RUNE_C(0x011C71), GC_PO}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F), GC_LO}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7), GC_MN}, + {RUNE_C(0x011CA9), RUNE_C(0x011CA9), GC_MC}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0), GC_MN}, + {RUNE_C(0x011CB1), RUNE_C(0x011CB1), GC_MC}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3), GC_MN}, + {RUNE_C(0x011CB4), RUNE_C(0x011CB4), GC_MC}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6), GC_MN}, + {RUNE_C(0x011D00), RUNE_C(0x011D06), GC_LO}, + {RUNE_C(0x011D08), RUNE_C(0x011D09), GC_LO}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30), GC_LO}, + {RUNE_C(0x011D31), RUNE_C(0x011D36), GC_MN}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A), GC_MN}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D), GC_MN}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45), GC_MN}, + {RUNE_C(0x011D46), RUNE_C(0x011D46), GC_LO}, + {RUNE_C(0x011D47), RUNE_C(0x011D47), GC_MN}, + {RUNE_C(0x011D50), RUNE_C(0x011D59), GC_ND}, + {RUNE_C(0x011D60), RUNE_C(0x011D65), GC_LO}, + {RUNE_C(0x011D67), RUNE_C(0x011D68), GC_LO}, + {RUNE_C(0x011D6A), RUNE_C(0x011D89), GC_LO}, + {RUNE_C(0x011D8A), RUNE_C(0x011D8E), GC_MC}, + {RUNE_C(0x011D90), RUNE_C(0x011D91), GC_MN}, + {RUNE_C(0x011D93), RUNE_C(0x011D94), GC_MC}, + {RUNE_C(0x011D95), RUNE_C(0x011D95), GC_MN}, + {RUNE_C(0x011D96), RUNE_C(0x011D96), GC_MC}, + {RUNE_C(0x011D97), RUNE_C(0x011D97), GC_MN}, + {RUNE_C(0x011D98), RUNE_C(0x011D98), GC_LO}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9), GC_ND}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2), GC_LO}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4), GC_MN}, + {RUNE_C(0x011EF5), RUNE_C(0x011EF6), GC_MC}, + {RUNE_C(0x011EF7), RUNE_C(0x011EF8), GC_PO}, + {RUNE_C(0x011F00), RUNE_C(0x011F01), GC_MN}, + {RUNE_C(0x011F02), RUNE_C(0x011F02), GC_LO}, + {RUNE_C(0x011F03), RUNE_C(0x011F03), GC_MC}, + {RUNE_C(0x011F04), RUNE_C(0x011F10), GC_LO}, + {RUNE_C(0x011F12), RUNE_C(0x011F33), GC_LO}, + {RUNE_C(0x011F34), RUNE_C(0x011F35), GC_MC}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A), GC_MN}, + {RUNE_C(0x011F3E), RUNE_C(0x011F3F), GC_MC}, + {RUNE_C(0x011F40), RUNE_C(0x011F40), GC_MN}, + {RUNE_C(0x011F41), RUNE_C(0x011F41), GC_MC}, + {RUNE_C(0x011F42), RUNE_C(0x011F42), GC_MN}, + {RUNE_C(0x011F43), RUNE_C(0x011F4F), GC_PO}, + {RUNE_C(0x011F50), RUNE_C(0x011F59), GC_ND}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0), GC_LO}, + {RUNE_C(0x011FC0), RUNE_C(0x011FD4), GC_NO}, + {RUNE_C(0x011FD5), RUNE_C(0x011FDC), GC_SO}, + {RUNE_C(0x011FDD), RUNE_C(0x011FE0), GC_SC}, + {RUNE_C(0x011FE1), RUNE_C(0x011FF1), GC_SO}, + {RUNE_C(0x011FFF), RUNE_C(0x011FFF), GC_PO}, + {RUNE_C(0x012000), RUNE_C(0x012399), GC_LO}, + {RUNE_C(0x012400), RUNE_C(0x01246E), GC_NL}, + {RUNE_C(0x012470), RUNE_C(0x012474), GC_PO}, + {RUNE_C(0x012480), RUNE_C(0x012543), GC_LO}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0), GC_LO}, + {RUNE_C(0x012FF1), RUNE_C(0x012FF2), GC_PO}, + {RUNE_C(0x013000), RUNE_C(0x01342F), GC_LO}, + {RUNE_C(0x013430), RUNE_C(0x01343F), GC_CF}, + {RUNE_C(0x013440), RUNE_C(0x013440), GC_MN}, + {RUNE_C(0x013441), RUNE_C(0x013446), GC_LO}, + {RUNE_C(0x013447), RUNE_C(0x013455), GC_MN}, + {RUNE_C(0x014400), RUNE_C(0x014646), GC_LO}, + {RUNE_C(0x016800), RUNE_C(0x016A38), GC_LO}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E), GC_LO}, + {RUNE_C(0x016A60), RUNE_C(0x016A69), GC_ND}, + {RUNE_C(0x016A6E), RUNE_C(0x016A6F), GC_PO}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE), GC_LO}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9), GC_ND}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED), GC_LO}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4), GC_MN}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5), GC_PO}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F), GC_LO}, + {RUNE_C(0x016B30), RUNE_C(0x016B36), GC_MN}, + {RUNE_C(0x016B37), RUNE_C(0x016B3B), GC_PO}, + {RUNE_C(0x016B3C), RUNE_C(0x016B3F), GC_SO}, + {RUNE_C(0x016B40), RUNE_C(0x016B43), GC_LM}, + {RUNE_C(0x016B44), RUNE_C(0x016B44), GC_PO}, + {RUNE_C(0x016B45), RUNE_C(0x016B45), GC_SO}, + {RUNE_C(0x016B50), RUNE_C(0x016B59), GC_ND}, + {RUNE_C(0x016B5B), RUNE_C(0x016B61), GC_NO}, + {RUNE_C(0x016B63), RUNE_C(0x016B77), GC_LO}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F), GC_LO}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F), GC_LU}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F), GC_LL}, + {RUNE_C(0x016E80), RUNE_C(0x016E96), GC_NO}, + {RUNE_C(0x016E97), RUNE_C(0x016E9A), GC_PO}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A), GC_LO}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F), GC_MN}, + {RUNE_C(0x016F50), RUNE_C(0x016F50), GC_LO}, + {RUNE_C(0x016F51), RUNE_C(0x016F87), GC_MC}, + {RUNE_C(0x016F8F), RUNE_C(0x016F92), GC_MN}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F), GC_LM}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1), GC_LM}, + {RUNE_C(0x016FE2), RUNE_C(0x016FE2), GC_PO}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3), GC_LM}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4), GC_MN}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1), GC_MC}, + {RUNE_C(0x017000), RUNE_C(0x0187F7), GC_LO}, + {RUNE_C(0x018800), RUNE_C(0x018CD5), GC_LO}, + {RUNE_C(0x018D00), RUNE_C(0x018D08), GC_LO}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3), GC_LM}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB), GC_LM}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE), GC_LM}, + {RUNE_C(0x01B000), RUNE_C(0x01B122), GC_LO}, + {RUNE_C(0x01B132), RUNE_C(0x01B132), GC_LO}, + {RUNE_C(0x01B150), RUNE_C(0x01B152), GC_LO}, + {RUNE_C(0x01B155), RUNE_C(0x01B155), GC_LO}, + {RUNE_C(0x01B164), RUNE_C(0x01B167), GC_LO}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB), GC_LO}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A), GC_LO}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C), GC_LO}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88), GC_LO}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99), GC_LO}, + {RUNE_C(0x01BC9C), RUNE_C(0x01BC9C), GC_SO}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E), GC_MN}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F), GC_PO}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3), GC_CF}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D), GC_MN}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46), GC_MN}, + {RUNE_C(0x01CF50), RUNE_C(0x01CFC3), GC_SO}, + {RUNE_C(0x01D000), RUNE_C(0x01D0F5), GC_SO}, + {RUNE_C(0x01D100), RUNE_C(0x01D126), GC_SO}, + {RUNE_C(0x01D129), RUNE_C(0x01D164), GC_SO}, + {RUNE_C(0x01D165), RUNE_C(0x01D166), GC_MC}, + {RUNE_C(0x01D167), RUNE_C(0x01D169), GC_MN}, + {RUNE_C(0x01D16A), RUNE_C(0x01D16C), GC_SO}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172), GC_MC}, + {RUNE_C(0x01D173), RUNE_C(0x01D17A), GC_CF}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182), GC_MN}, + {RUNE_C(0x01D183), RUNE_C(0x01D184), GC_SO}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B), GC_MN}, + {RUNE_C(0x01D18C), RUNE_C(0x01D1A9), GC_SO}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD), GC_MN}, + {RUNE_C(0x01D1AE), RUNE_C(0x01D1EA), GC_SO}, + {RUNE_C(0x01D200), RUNE_C(0x01D241), GC_SO}, + {RUNE_C(0x01D242), RUNE_C(0x01D244), GC_MN}, + {RUNE_C(0x01D245), RUNE_C(0x01D245), GC_SO}, + {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3), GC_NO}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3), GC_NO}, + {RUNE_C(0x01D300), RUNE_C(0x01D356), GC_SO}, + {RUNE_C(0x01D360), RUNE_C(0x01D378), GC_NO}, + {RUNE_C(0x01D400), RUNE_C(0x01D419), GC_LU}, + {RUNE_C(0x01D41A), RUNE_C(0x01D433), GC_LL}, + {RUNE_C(0x01D434), RUNE_C(0x01D44D), GC_LU}, + {RUNE_C(0x01D44E), RUNE_C(0x01D454), GC_LL}, + {RUNE_C(0x01D456), RUNE_C(0x01D467), GC_LL}, + {RUNE_C(0x01D468), RUNE_C(0x01D481), GC_LU}, + {RUNE_C(0x01D482), RUNE_C(0x01D49B), GC_LL}, + {RUNE_C(0x01D49C), RUNE_C(0x01D49C), GC_LU}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F), GC_LU}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2), GC_LU}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6), GC_LU}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC), GC_LU}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B5), GC_LU}, + {RUNE_C(0x01D4B6), RUNE_C(0x01D4B9), GC_LL}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB), GC_LL}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3), GC_LL}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D4CF), GC_LL}, + {RUNE_C(0x01D4D0), RUNE_C(0x01D4E9), GC_LU}, + {RUNE_C(0x01D4EA), RUNE_C(0x01D503), GC_LL}, + {RUNE_C(0x01D504), RUNE_C(0x01D505), GC_LU}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A), GC_LU}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514), GC_LU}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C), GC_LU}, + {RUNE_C(0x01D51E), RUNE_C(0x01D537), GC_LL}, + {RUNE_C(0x01D538), RUNE_C(0x01D539), GC_LU}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E), GC_LU}, + {RUNE_C(0x01D540), RUNE_C(0x01D544), GC_LU}, + {RUNE_C(0x01D546), RUNE_C(0x01D546), GC_LU}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550), GC_LU}, + {RUNE_C(0x01D552), RUNE_C(0x01D56B), GC_LL}, + {RUNE_C(0x01D56C), RUNE_C(0x01D585), GC_LU}, + {RUNE_C(0x01D586), RUNE_C(0x01D59F), GC_LL}, + {RUNE_C(0x01D5A0), RUNE_C(0x01D5B9), GC_LU}, + {RUNE_C(0x01D5BA), RUNE_C(0x01D5D3), GC_LL}, + {RUNE_C(0x01D5D4), RUNE_C(0x01D5ED), GC_LU}, + {RUNE_C(0x01D5EE), RUNE_C(0x01D607), GC_LL}, + {RUNE_C(0x01D608), RUNE_C(0x01D621), GC_LU}, + {RUNE_C(0x01D622), RUNE_C(0x01D63B), GC_LL}, + {RUNE_C(0x01D63C), RUNE_C(0x01D655), GC_LU}, + {RUNE_C(0x01D656), RUNE_C(0x01D66F), GC_LL}, + {RUNE_C(0x01D670), RUNE_C(0x01D689), GC_LU}, + {RUNE_C(0x01D68A), RUNE_C(0x01D6A5), GC_LL}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0), GC_LU}, + {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1), GC_SM}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA), GC_LL}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB), GC_SM}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6E1), GC_LL}, + {RUNE_C(0x01D6E2), RUNE_C(0x01D6FA), GC_LU}, + {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB), GC_SM}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714), GC_LL}, + {RUNE_C(0x01D715), RUNE_C(0x01D715), GC_SM}, + {RUNE_C(0x01D716), RUNE_C(0x01D71B), GC_LL}, + {RUNE_C(0x01D71C), RUNE_C(0x01D734), GC_LU}, + {RUNE_C(0x01D735), RUNE_C(0x01D735), GC_SM}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E), GC_LL}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F), GC_SM}, + {RUNE_C(0x01D750), RUNE_C(0x01D755), GC_LL}, + {RUNE_C(0x01D756), RUNE_C(0x01D76E), GC_LU}, + {RUNE_C(0x01D76F), RUNE_C(0x01D76F), GC_SM}, + {RUNE_C(0x01D770), RUNE_C(0x01D788), GC_LL}, + {RUNE_C(0x01D789), RUNE_C(0x01D789), GC_SM}, + {RUNE_C(0x01D78A), RUNE_C(0x01D78F), GC_LL}, + {RUNE_C(0x01D790), RUNE_C(0x01D7A8), GC_LU}, + {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9), GC_SM}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2), GC_LL}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3), GC_SM}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7C9), GC_LL}, + {RUNE_C(0x01D7CA), RUNE_C(0x01D7CA), GC_LU}, + {RUNE_C(0x01D7CB), RUNE_C(0x01D7CB), GC_LL}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF), GC_ND}, + {RUNE_C(0x01D800), RUNE_C(0x01D9FF), GC_SO}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36), GC_MN}, + {RUNE_C(0x01DA37), RUNE_C(0x01DA3A), GC_SO}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C), GC_MN}, + {RUNE_C(0x01DA6D), RUNE_C(0x01DA74), GC_SO}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75), GC_MN}, + {RUNE_C(0x01DA76), RUNE_C(0x01DA83), GC_SO}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84), GC_MN}, + {RUNE_C(0x01DA85), RUNE_C(0x01DA86), GC_SO}, + {RUNE_C(0x01DA87), RUNE_C(0x01DA8B), GC_PO}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F), GC_MN}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF), GC_MN}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF09), GC_LL}, + {RUNE_C(0x01DF0A), RUNE_C(0x01DF0A), GC_LO}, + {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E), GC_LL}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A), GC_LL}, + {RUNE_C(0x01E000), RUNE_C(0x01E006), GC_MN}, + {RUNE_C(0x01E008), RUNE_C(0x01E018), GC_MN}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021), GC_MN}, + {RUNE_C(0x01E023), RUNE_C(0x01E024), GC_MN}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A), GC_MN}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D), GC_LM}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F), GC_MN}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C), GC_LO}, + {RUNE_C(0x01E130), RUNE_C(0x01E136), GC_MN}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D), GC_LM}, + {RUNE_C(0x01E140), RUNE_C(0x01E149), GC_ND}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E), GC_LO}, + {RUNE_C(0x01E14F), RUNE_C(0x01E14F), GC_SO}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD), GC_LO}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE), GC_MN}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB), GC_LO}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF), GC_MN}, + {RUNE_C(0x01E2F0), RUNE_C(0x01E2F9), GC_ND}, + {RUNE_C(0x01E2FF), RUNE_C(0x01E2FF), GC_SC}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EA), GC_LO}, + {RUNE_C(0x01E4EB), RUNE_C(0x01E4EB), GC_LM}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF), GC_MN}, + {RUNE_C(0x01E4F0), RUNE_C(0x01E4F9), GC_ND}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6), GC_LO}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB), GC_LO}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE), GC_LO}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE), GC_LO}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4), GC_LO}, + {RUNE_C(0x01E8C7), RUNE_C(0x01E8CF), GC_NO}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6), GC_MN}, + {RUNE_C(0x01E900), RUNE_C(0x01E921), GC_LU}, + {RUNE_C(0x01E922), RUNE_C(0x01E943), GC_LL}, + {RUNE_C(0x01E944), RUNE_C(0x01E94A), GC_MN}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B), GC_LM}, + {RUNE_C(0x01E950), RUNE_C(0x01E959), GC_ND}, + {RUNE_C(0x01E95E), RUNE_C(0x01E95F), GC_PO}, + {RUNE_C(0x01EC71), RUNE_C(0x01ECAB), GC_NO}, + {RUNE_C(0x01ECAC), RUNE_C(0x01ECAC), GC_SO}, + {RUNE_C(0x01ECAD), RUNE_C(0x01ECAF), GC_NO}, + {RUNE_C(0x01ECB0), RUNE_C(0x01ECB0), GC_SC}, + {RUNE_C(0x01ECB1), RUNE_C(0x01ECB4), GC_NO}, + {RUNE_C(0x01ED01), RUNE_C(0x01ED2D), GC_NO}, + {RUNE_C(0x01ED2E), RUNE_C(0x01ED2E), GC_SO}, + {RUNE_C(0x01ED2F), RUNE_C(0x01ED3D), GC_NO}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03), GC_LO}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F), GC_LO}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22), GC_LO}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24), GC_LO}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27), GC_LO}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32), GC_LO}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37), GC_LO}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39), GC_LO}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B), GC_LO}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42), GC_LO}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47), GC_LO}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49), GC_LO}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B), GC_LO}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F), GC_LO}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52), GC_LO}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54), GC_LO}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57), GC_LO}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59), GC_LO}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B), GC_LO}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D), GC_LO}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F), GC_LO}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62), GC_LO}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64), GC_LO}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A), GC_LO}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72), GC_LO}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77), GC_LO}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C), GC_LO}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E), GC_LO}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89), GC_LO}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B), GC_LO}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3), GC_LO}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9), GC_LO}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB), GC_LO}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1), GC_SM}, + {RUNE_C(0x01F000), RUNE_C(0x01F02B), GC_SO}, + {RUNE_C(0x01F030), RUNE_C(0x01F093), GC_SO}, + {RUNE_C(0x01F0A0), RUNE_C(0x01F0AE), GC_SO}, + {RUNE_C(0x01F0B1), RUNE_C(0x01F0BF), GC_SO}, + {RUNE_C(0x01F0C1), RUNE_C(0x01F0CF), GC_SO}, + {RUNE_C(0x01F0D1), RUNE_C(0x01F0F5), GC_SO}, + {RUNE_C(0x01F100), RUNE_C(0x01F10C), GC_NO}, + {RUNE_C(0x01F10D), RUNE_C(0x01F1AD), GC_SO}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F202), GC_SO}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B), GC_SO}, + {RUNE_C(0x01F240), RUNE_C(0x01F248), GC_SO}, + {RUNE_C(0x01F250), RUNE_C(0x01F251), GC_SO}, + {RUNE_C(0x01F260), RUNE_C(0x01F265), GC_SO}, + {RUNE_C(0x01F300), RUNE_C(0x01F3FA), GC_SO}, + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF), GC_SK}, + {RUNE_C(0x01F400), RUNE_C(0x01F6D7), GC_SO}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6EC), GC_SO}, + {RUNE_C(0x01F6F0), RUNE_C(0x01F6FC), GC_SO}, + {RUNE_C(0x01F700), RUNE_C(0x01F776), GC_SO}, + {RUNE_C(0x01F77B), RUNE_C(0x01F7D9), GC_SO}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB), GC_SO}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0), GC_SO}, + {RUNE_C(0x01F800), RUNE_C(0x01F80B), GC_SO}, + {RUNE_C(0x01F810), RUNE_C(0x01F847), GC_SO}, + {RUNE_C(0x01F850), RUNE_C(0x01F859), GC_SO}, + {RUNE_C(0x01F860), RUNE_C(0x01F887), GC_SO}, + {RUNE_C(0x01F890), RUNE_C(0x01F8AD), GC_SO}, + {RUNE_C(0x01F8B0), RUNE_C(0x01F8B1), GC_SO}, + {RUNE_C(0x01F900), RUNE_C(0x01FA53), GC_SO}, + {RUNE_C(0x01FA60), RUNE_C(0x01FA6D), GC_SO}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C), GC_SO}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88), GC_SO}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD), GC_SO}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5), GC_SO}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB), GC_SO}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8), GC_SO}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8), GC_SO}, + {RUNE_C(0x01FB00), RUNE_C(0x01FB92), GC_SO}, + {RUNE_C(0x01FB94), RUNE_C(0x01FBCA), GC_SO}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9), GC_ND}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF), GC_LO}, + {RUNE_C(0x02A700), RUNE_C(0x02B739), GC_LO}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D), GC_LO}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1), GC_LO}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0), GC_LO}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D), GC_LO}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D), GC_LO}, + {RUNE_C(0x030000), RUNE_C(0x03134A), GC_LO}, + {RUNE_C(0x031350), RUNE_C(0x0323AF), GC_LO}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001), GC_CF}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F), GC_CF}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF), GC_MN}, + {RUNE_C(0x0F0000), RUNE_C(0x0FFFFD), GC_CO}, + {RUNE_C(0x100000), RUNE_C(0x10FFFD), GC_CO}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_GC_H */ diff --git a/vendor/librune/include/internal/rtype/jg.h b/vendor/librune/include/internal/rtype/jg.h new file mode 100644 index 0000000..90f273b --- /dev/null +++ b/vendor/librune/include/internal/rtype/jg.h @@ -0,0 +1,230 @@ +/* This file is autogenerated by gen/rtype-jg; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_JG_H +#define RUNE_INTERNAL_RTYPE_JG_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const struct { + rune lo, hi; + rprop_jg_bf val; +} rtype_jg_tbl[] = { + {RUNE_C(0x000620), RUNE_C(0x000620), JG_YEH}, + {RUNE_C(0x000622), RUNE_C(0x000623), JG_ALEF}, + {RUNE_C(0x000624), RUNE_C(0x000624), JG_WAW}, + {RUNE_C(0x000625), RUNE_C(0x000625), JG_ALEF}, + {RUNE_C(0x000626), RUNE_C(0x000626), JG_YEH}, + {RUNE_C(0x000627), RUNE_C(0x000627), JG_ALEF}, + {RUNE_C(0x000628), RUNE_C(0x000628), JG_BEH}, + {RUNE_C(0x000629), RUNE_C(0x000629), JG_TEH_MARBUTA}, + {RUNE_C(0x00062A), RUNE_C(0x00062B), JG_BEH}, + {RUNE_C(0x00062C), RUNE_C(0x00062E), JG_HAH}, + {RUNE_C(0x00062F), RUNE_C(0x000630), JG_DAL}, + {RUNE_C(0x000631), RUNE_C(0x000632), JG_REH}, + {RUNE_C(0x000633), RUNE_C(0x000634), JG_SEEN}, + {RUNE_C(0x000635), RUNE_C(0x000636), JG_SAD}, + {RUNE_C(0x000637), RUNE_C(0x000638), JG_TAH}, + {RUNE_C(0x000639), RUNE_C(0x00063A), JG_AIN}, + {RUNE_C(0x00063B), RUNE_C(0x00063C), JG_GAF}, + {RUNE_C(0x00063D), RUNE_C(0x00063F), JG_FARSI_YEH}, + {RUNE_C(0x000641), RUNE_C(0x000641), JG_FEH}, + {RUNE_C(0x000642), RUNE_C(0x000642), JG_QAF}, + {RUNE_C(0x000643), RUNE_C(0x000643), JG_KAF}, + {RUNE_C(0x000644), RUNE_C(0x000644), JG_LAM}, + {RUNE_C(0x000645), RUNE_C(0x000645), JG_MEEM}, + {RUNE_C(0x000646), RUNE_C(0x000646), JG_NOON}, + {RUNE_C(0x000647), RUNE_C(0x000647), JG_HEH}, + {RUNE_C(0x000648), RUNE_C(0x000648), JG_WAW}, + {RUNE_C(0x000649), RUNE_C(0x00064A), JG_YEH}, + {RUNE_C(0x00066E), RUNE_C(0x00066E), JG_BEH}, + {RUNE_C(0x00066F), RUNE_C(0x00066F), JG_QAF}, + {RUNE_C(0x000671), RUNE_C(0x000673), JG_ALEF}, + {RUNE_C(0x000675), RUNE_C(0x000675), JG_ALEF}, + {RUNE_C(0x000676), RUNE_C(0x000677), JG_WAW}, + {RUNE_C(0x000678), RUNE_C(0x000678), JG_YEH}, + {RUNE_C(0x000679), RUNE_C(0x000680), JG_BEH}, + {RUNE_C(0x000681), RUNE_C(0x000687), JG_HAH}, + {RUNE_C(0x000688), RUNE_C(0x000690), JG_DAL}, + {RUNE_C(0x000691), RUNE_C(0x000699), JG_REH}, + {RUNE_C(0x00069A), RUNE_C(0x00069C), JG_SEEN}, + {RUNE_C(0x00069D), RUNE_C(0x00069E), JG_SAD}, + {RUNE_C(0x00069F), RUNE_C(0x00069F), JG_TAH}, + {RUNE_C(0x0006A0), RUNE_C(0x0006A0), JG_AIN}, + {RUNE_C(0x0006A1), RUNE_C(0x0006A6), JG_FEH}, + {RUNE_C(0x0006A7), RUNE_C(0x0006A8), JG_QAF}, + {RUNE_C(0x0006A9), RUNE_C(0x0006A9), JG_GAF}, + {RUNE_C(0x0006AA), RUNE_C(0x0006AA), JG_SWASH_KAF}, + {RUNE_C(0x0006AB), RUNE_C(0x0006AB), JG_GAF}, + {RUNE_C(0x0006AC), RUNE_C(0x0006AE), JG_KAF}, + {RUNE_C(0x0006AF), RUNE_C(0x0006B4), JG_GAF}, + {RUNE_C(0x0006B5), RUNE_C(0x0006B8), JG_LAM}, + {RUNE_C(0x0006B9), RUNE_C(0x0006BC), JG_NOON}, + {RUNE_C(0x0006BD), RUNE_C(0x0006BD), JG_NYA}, + {RUNE_C(0x0006BE), RUNE_C(0x0006BE), JG_KNOTTED_HEH}, + {RUNE_C(0x0006BF), RUNE_C(0x0006BF), JG_HAH}, + {RUNE_C(0x0006C0), RUNE_C(0x0006C0), JG_TEH_MARBUTA}, + {RUNE_C(0x0006C1), RUNE_C(0x0006C2), JG_HEH_GOAL}, + {RUNE_C(0x0006C3), RUNE_C(0x0006C3), JG_TEH_MARBUTA_GOAL}, + {RUNE_C(0x0006C4), RUNE_C(0x0006CB), JG_WAW}, + {RUNE_C(0x0006CC), RUNE_C(0x0006CC), JG_FARSI_YEH}, + {RUNE_C(0x0006CD), RUNE_C(0x0006CD), JG_YEH_WITH_TAIL}, + {RUNE_C(0x0006CE), RUNE_C(0x0006CE), JG_FARSI_YEH}, + {RUNE_C(0x0006CF), RUNE_C(0x0006CF), JG_WAW}, + {RUNE_C(0x0006D0), RUNE_C(0x0006D1), JG_YEH}, + {RUNE_C(0x0006D2), RUNE_C(0x0006D3), JG_YEH_BARREE}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5), JG_TEH_MARBUTA}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EE), JG_DAL}, + {RUNE_C(0x0006EF), RUNE_C(0x0006EF), JG_REH}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FA), JG_SEEN}, + {RUNE_C(0x0006FB), RUNE_C(0x0006FB), JG_SAD}, + {RUNE_C(0x0006FC), RUNE_C(0x0006FC), JG_AIN}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF), JG_KNOTTED_HEH}, + {RUNE_C(0x000710), RUNE_C(0x000710), JG_ALAPH}, + {RUNE_C(0x000712), RUNE_C(0x000712), JG_BETH}, + {RUNE_C(0x000713), RUNE_C(0x000714), JG_GAMAL}, + {RUNE_C(0x000715), RUNE_C(0x000716), JG_DALATH_RISH}, + {RUNE_C(0x000717), RUNE_C(0x000717), JG_HE}, + {RUNE_C(0x000718), RUNE_C(0x000718), JG_SYRIAC_WAW}, + {RUNE_C(0x000719), RUNE_C(0x000719), JG_ZAIN}, + {RUNE_C(0x00071A), RUNE_C(0x00071A), JG_HETH}, + {RUNE_C(0x00071B), RUNE_C(0x00071C), JG_TETH}, + {RUNE_C(0x00071D), RUNE_C(0x00071D), JG_YUDH}, + {RUNE_C(0x00071E), RUNE_C(0x00071E), JG_YUDH_HE}, + {RUNE_C(0x00071F), RUNE_C(0x00071F), JG_KAPH}, + {RUNE_C(0x000720), RUNE_C(0x000720), JG_LAMADH}, + {RUNE_C(0x000721), RUNE_C(0x000721), JG_MIM}, + {RUNE_C(0x000722), RUNE_C(0x000722), JG_NUN}, + {RUNE_C(0x000723), RUNE_C(0x000723), JG_SEMKATH}, + {RUNE_C(0x000724), RUNE_C(0x000724), JG_FINAL_SEMKATH}, + {RUNE_C(0x000725), RUNE_C(0x000725), JG_E}, + {RUNE_C(0x000726), RUNE_C(0x000726), JG_PE}, + {RUNE_C(0x000727), RUNE_C(0x000727), JG_REVERSED_PE}, + {RUNE_C(0x000728), RUNE_C(0x000728), JG_SADHE}, + {RUNE_C(0x000729), RUNE_C(0x000729), JG_QAPH}, + {RUNE_C(0x00072A), RUNE_C(0x00072A), JG_DALATH_RISH}, + {RUNE_C(0x00072B), RUNE_C(0x00072B), JG_SHIN}, + {RUNE_C(0x00072C), RUNE_C(0x00072C), JG_TAW}, + {RUNE_C(0x00072D), RUNE_C(0x00072D), JG_BETH}, + {RUNE_C(0x00072E), RUNE_C(0x00072E), JG_GAMAL}, + {RUNE_C(0x00072F), RUNE_C(0x00072F), JG_DALATH_RISH}, + {RUNE_C(0x00074D), RUNE_C(0x00074D), JG_ZHAIN}, + {RUNE_C(0x00074E), RUNE_C(0x00074E), JG_KHAPH}, + {RUNE_C(0x00074F), RUNE_C(0x00074F), JG_FE}, + {RUNE_C(0x000750), RUNE_C(0x000756), JG_BEH}, + {RUNE_C(0x000757), RUNE_C(0x000758), JG_HAH}, + {RUNE_C(0x000759), RUNE_C(0x00075A), JG_DAL}, + {RUNE_C(0x00075B), RUNE_C(0x00075B), JG_REH}, + {RUNE_C(0x00075C), RUNE_C(0x00075C), JG_SEEN}, + {RUNE_C(0x00075D), RUNE_C(0x00075F), JG_AIN}, + {RUNE_C(0x000760), RUNE_C(0x000761), JG_FEH}, + {RUNE_C(0x000762), RUNE_C(0x000764), JG_GAF}, + {RUNE_C(0x000765), RUNE_C(0x000766), JG_MEEM}, + {RUNE_C(0x000767), RUNE_C(0x000769), JG_NOON}, + {RUNE_C(0x00076A), RUNE_C(0x00076A), JG_LAM}, + {RUNE_C(0x00076B), RUNE_C(0x00076C), JG_REH}, + {RUNE_C(0x00076D), RUNE_C(0x00076D), JG_SEEN}, + {RUNE_C(0x00076E), RUNE_C(0x00076F), JG_HAH}, + {RUNE_C(0x000770), RUNE_C(0x000770), JG_SEEN}, + {RUNE_C(0x000771), RUNE_C(0x000771), JG_REH}, + {RUNE_C(0x000772), RUNE_C(0x000772), JG_HAH}, + {RUNE_C(0x000773), RUNE_C(0x000774), JG_ALEF}, + {RUNE_C(0x000775), RUNE_C(0x000776), JG_FARSI_YEH}, + {RUNE_C(0x000777), RUNE_C(0x000777), JG_YEH}, + {RUNE_C(0x000778), RUNE_C(0x000779), JG_WAW}, + {RUNE_C(0x00077A), RUNE_C(0x00077B), JG_BURUSHASKI_YEH_BARREE}, + {RUNE_C(0x00077C), RUNE_C(0x00077C), JG_HAH}, + {RUNE_C(0x00077D), RUNE_C(0x00077E), JG_SEEN}, + {RUNE_C(0x00077F), RUNE_C(0x00077F), JG_KAF}, + {RUNE_C(0x000860), RUNE_C(0x000860), JG_MALAYALAM_NGA}, + {RUNE_C(0x000861), RUNE_C(0x000861), JG_MALAYALAM_JA}, + {RUNE_C(0x000862), RUNE_C(0x000862), JG_MALAYALAM_NYA}, + {RUNE_C(0x000863), RUNE_C(0x000863), JG_MALAYALAM_TTA}, + {RUNE_C(0x000864), RUNE_C(0x000864), JG_MALAYALAM_NNA}, + {RUNE_C(0x000865), RUNE_C(0x000865), JG_MALAYALAM_NNNA}, + {RUNE_C(0x000866), RUNE_C(0x000866), JG_MALAYALAM_BHA}, + {RUNE_C(0x000867), RUNE_C(0x000867), JG_MALAYALAM_RA}, + {RUNE_C(0x000868), RUNE_C(0x000868), JG_MALAYALAM_LLA}, + {RUNE_C(0x000869), RUNE_C(0x000869), JG_MALAYALAM_LLLA}, + {RUNE_C(0x00086A), RUNE_C(0x00086A), JG_MALAYALAM_SSA}, + {RUNE_C(0x000870), RUNE_C(0x000882), JG_ALEF}, + {RUNE_C(0x000886), RUNE_C(0x000886), JG_THIN_YEH}, + {RUNE_C(0x000889), RUNE_C(0x000889), JG_NOON}, + {RUNE_C(0x00088A), RUNE_C(0x00088A), JG_HAH}, + {RUNE_C(0x00088B), RUNE_C(0x00088C), JG_TAH}, + {RUNE_C(0x00088D), RUNE_C(0x00088D), JG_GAF}, + {RUNE_C(0x00088E), RUNE_C(0x00088E), JG_VERTICAL_TAIL}, + {RUNE_C(0x0008A0), RUNE_C(0x0008A1), JG_BEH}, + {RUNE_C(0x0008A2), RUNE_C(0x0008A2), JG_HAH}, + {RUNE_C(0x0008A3), RUNE_C(0x0008A3), JG_TAH}, + {RUNE_C(0x0008A4), RUNE_C(0x0008A4), JG_FEH}, + {RUNE_C(0x0008A5), RUNE_C(0x0008A5), JG_QAF}, + {RUNE_C(0x0008A6), RUNE_C(0x0008A6), JG_LAM}, + {RUNE_C(0x0008A7), RUNE_C(0x0008A7), JG_MEEM}, + {RUNE_C(0x0008A8), RUNE_C(0x0008A9), JG_YEH}, + {RUNE_C(0x0008AA), RUNE_C(0x0008AA), JG_REH}, + {RUNE_C(0x0008AB), RUNE_C(0x0008AB), JG_WAW}, + {RUNE_C(0x0008AC), RUNE_C(0x0008AC), JG_ROHINGYA_YEH}, + {RUNE_C(0x0008AE), RUNE_C(0x0008AE), JG_DAL}, + {RUNE_C(0x0008AF), RUNE_C(0x0008AF), JG_SAD}, + {RUNE_C(0x0008B0), RUNE_C(0x0008B0), JG_GAF}, + {RUNE_C(0x0008B1), RUNE_C(0x0008B1), JG_STRAIGHT_WAW}, + {RUNE_C(0x0008B2), RUNE_C(0x0008B2), JG_REH}, + {RUNE_C(0x0008B3), RUNE_C(0x0008B3), JG_AIN}, + {RUNE_C(0x0008B4), RUNE_C(0x0008B4), JG_KAF}, + {RUNE_C(0x0008B5), RUNE_C(0x0008B5), JG_QAF}, + {RUNE_C(0x0008B6), RUNE_C(0x0008B8), JG_BEH}, + {RUNE_C(0x0008B9), RUNE_C(0x0008B9), JG_REH}, + {RUNE_C(0x0008BA), RUNE_C(0x0008BA), JG_YEH}, + {RUNE_C(0x0008BB), RUNE_C(0x0008BB), JG_AFRICAN_FEH}, + {RUNE_C(0x0008BC), RUNE_C(0x0008BC), JG_AFRICAN_QAF}, + {RUNE_C(0x0008BD), RUNE_C(0x0008BD), JG_AFRICAN_NOON}, + {RUNE_C(0x0008BE), RUNE_C(0x0008C0), JG_BEH}, + {RUNE_C(0x0008C1), RUNE_C(0x0008C1), JG_HAH}, + {RUNE_C(0x0008C2), RUNE_C(0x0008C2), JG_GAF}, + {RUNE_C(0x0008C3), RUNE_C(0x0008C3), JG_AIN}, + {RUNE_C(0x0008C4), RUNE_C(0x0008C4), JG_AFRICAN_QAF}, + {RUNE_C(0x0008C5), RUNE_C(0x0008C6), JG_HAH}, + {RUNE_C(0x0008C7), RUNE_C(0x0008C7), JG_LAM}, + {RUNE_C(0x0008C8), RUNE_C(0x0008C8), JG_GAF}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC0), JG_MANICHAEAN_ALEPH}, + {RUNE_C(0x010AC1), RUNE_C(0x010AC2), JG_MANICHAEAN_BETH}, + {RUNE_C(0x010AC3), RUNE_C(0x010AC4), JG_MANICHAEAN_GIMEL}, + {RUNE_C(0x010AC5), RUNE_C(0x010AC5), JG_MANICHAEAN_DALETH}, + {RUNE_C(0x010AC7), RUNE_C(0x010AC7), JG_MANICHAEAN_WAW}, + {RUNE_C(0x010AC9), RUNE_C(0x010ACA), JG_MANICHAEAN_ZAYIN}, + {RUNE_C(0x010ACD), RUNE_C(0x010ACD), JG_MANICHAEAN_HETH}, + {RUNE_C(0x010ACE), RUNE_C(0x010ACE), JG_MANICHAEAN_TETH}, + {RUNE_C(0x010ACF), RUNE_C(0x010ACF), JG_MANICHAEAN_YODH}, + {RUNE_C(0x010AD0), RUNE_C(0x010AD2), JG_MANICHAEAN_KAPH}, + {RUNE_C(0x010AD3), RUNE_C(0x010AD3), JG_MANICHAEAN_LAMEDH}, + {RUNE_C(0x010AD4), RUNE_C(0x010AD4), JG_MANICHAEAN_DHAMEDH}, + {RUNE_C(0x010AD5), RUNE_C(0x010AD5), JG_MANICHAEAN_THAMEDH}, + {RUNE_C(0x010AD6), RUNE_C(0x010AD6), JG_MANICHAEAN_MEM}, + {RUNE_C(0x010AD7), RUNE_C(0x010AD7), JG_MANICHAEAN_NUN}, + {RUNE_C(0x010AD8), RUNE_C(0x010AD8), JG_MANICHAEAN_SAMEKH}, + {RUNE_C(0x010AD9), RUNE_C(0x010ADA), JG_MANICHAEAN_AYIN}, + {RUNE_C(0x010ADB), RUNE_C(0x010ADC), JG_MANICHAEAN_PE}, + {RUNE_C(0x010ADD), RUNE_C(0x010ADD), JG_MANICHAEAN_SADHE}, + {RUNE_C(0x010ADE), RUNE_C(0x010AE0), JG_MANICHAEAN_QOPH}, + {RUNE_C(0x010AE1), RUNE_C(0x010AE1), JG_MANICHAEAN_RESH}, + {RUNE_C(0x010AE4), RUNE_C(0x010AE4), JG_MANICHAEAN_TAW}, + {RUNE_C(0x010AEB), RUNE_C(0x010AEB), JG_MANICHAEAN_ONE}, + {RUNE_C(0x010AEC), RUNE_C(0x010AEC), JG_MANICHAEAN_FIVE}, + {RUNE_C(0x010AED), RUNE_C(0x010AED), JG_MANICHAEAN_TEN}, + {RUNE_C(0x010AEE), RUNE_C(0x010AEE), JG_MANICHAEAN_TWENTY}, + {RUNE_C(0x010AEF), RUNE_C(0x010AEF), JG_MANICHAEAN_HUNDRED}, + {RUNE_C(0x010D02), RUNE_C(0x010D02), JG_HANIFI_ROHINGYA_PA}, + {RUNE_C(0x010D09), RUNE_C(0x010D09), JG_HANIFI_ROHINGYA_PA}, + {RUNE_C(0x010D19), RUNE_C(0x010D19), JG_HANIFI_ROHINGYA_KINNA_YA}, + {RUNE_C(0x010D1C), RUNE_C(0x010D1C), JG_HANIFI_ROHINGYA_PA}, + {RUNE_C(0x010D1E), RUNE_C(0x010D1E), JG_HANIFI_ROHINGYA_KINNA_YA}, + {RUNE_C(0x010D20), RUNE_C(0x010D20), JG_HANIFI_ROHINGYA_KINNA_YA}, + {RUNE_C(0x010D23), RUNE_C(0x010D23), JG_HANIFI_ROHINGYA_KINNA_YA}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_JG_H */ diff --git a/vendor/librune/include/internal/rtype/jt.h b/vendor/librune/include/internal/rtype/jt.h new file mode 100644 index 0000000..bebcaa4 --- /dev/null +++ b/vendor/librune/include/internal/rtype/jt.h @@ -0,0 +1,560 @@ +/* This file is autogenerated by gen/rtype-jt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_JT_H +#define RUNE_INTERNAL_RTYPE_JT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_jt_bf rtype_jt_lat1_tbl[] = { + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_T, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, + JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, JT_U, +}; + +static const struct { + rune lo, hi; + rprop_jt_bf val; +} rtype_jt_tbl[] = { + {RUNE_C(0x0000AD), RUNE_C(0x0000AD), JT_T}, + {RUNE_C(0x000300), RUNE_C(0x00036F), JT_T}, + {RUNE_C(0x000483), RUNE_C(0x000489), JT_T}, + {RUNE_C(0x000591), RUNE_C(0x0005BD), JT_T}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF), JT_T}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2), JT_T}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5), JT_T}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7), JT_T}, + {RUNE_C(0x000610), RUNE_C(0x00061A), JT_T}, + {RUNE_C(0x00061C), RUNE_C(0x00061C), JT_T}, + {RUNE_C(0x000620), RUNE_C(0x000620), JT_D}, + {RUNE_C(0x000622), RUNE_C(0x000625), JT_R}, + {RUNE_C(0x000626), RUNE_C(0x000626), JT_D}, + {RUNE_C(0x000627), RUNE_C(0x000627), JT_R}, + {RUNE_C(0x000628), RUNE_C(0x000628), JT_D}, + {RUNE_C(0x000629), RUNE_C(0x000629), JT_R}, + {RUNE_C(0x00062A), RUNE_C(0x00062E), JT_D}, + {RUNE_C(0x00062F), RUNE_C(0x000632), JT_R}, + {RUNE_C(0x000633), RUNE_C(0x00063F), JT_D}, + {RUNE_C(0x000640), RUNE_C(0x000640), JT_C}, + {RUNE_C(0x000641), RUNE_C(0x000647), JT_D}, + {RUNE_C(0x000648), RUNE_C(0x000648), JT_R}, + {RUNE_C(0x000649), RUNE_C(0x00064A), JT_D}, + {RUNE_C(0x00064B), RUNE_C(0x00065F), JT_T}, + {RUNE_C(0x00066E), RUNE_C(0x00066F), JT_D}, + {RUNE_C(0x000670), RUNE_C(0x000670), JT_T}, + {RUNE_C(0x000671), RUNE_C(0x000673), JT_R}, + {RUNE_C(0x000675), RUNE_C(0x000677), JT_R}, + {RUNE_C(0x000678), RUNE_C(0x000687), JT_D}, + {RUNE_C(0x000688), RUNE_C(0x000699), JT_R}, + {RUNE_C(0x00069A), RUNE_C(0x0006BF), JT_D}, + {RUNE_C(0x0006C0), RUNE_C(0x0006C0), JT_R}, + {RUNE_C(0x0006C1), RUNE_C(0x0006C2), JT_D}, + {RUNE_C(0x0006C3), RUNE_C(0x0006CB), JT_R}, + {RUNE_C(0x0006CC), RUNE_C(0x0006CC), JT_D}, + {RUNE_C(0x0006CD), RUNE_C(0x0006CD), JT_R}, + {RUNE_C(0x0006CE), RUNE_C(0x0006CE), JT_D}, + {RUNE_C(0x0006CF), RUNE_C(0x0006CF), JT_R}, + {RUNE_C(0x0006D0), RUNE_C(0x0006D1), JT_D}, + {RUNE_C(0x0006D2), RUNE_C(0x0006D3), JT_R}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5), JT_R}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC), JT_T}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4), JT_T}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8), JT_T}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED), JT_T}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF), JT_R}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC), JT_D}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF), JT_D}, + {RUNE_C(0x00070F), RUNE_C(0x00070F), JT_T}, + {RUNE_C(0x000710), RUNE_C(0x000710), JT_R}, + {RUNE_C(0x000711), RUNE_C(0x000711), JT_T}, + {RUNE_C(0x000712), RUNE_C(0x000714), JT_D}, + {RUNE_C(0x000715), RUNE_C(0x000719), JT_R}, + {RUNE_C(0x00071A), RUNE_C(0x00071D), JT_D}, + {RUNE_C(0x00071E), RUNE_C(0x00071E), JT_R}, + {RUNE_C(0x00071F), RUNE_C(0x000727), JT_D}, + {RUNE_C(0x000728), RUNE_C(0x000728), JT_R}, + {RUNE_C(0x000729), RUNE_C(0x000729), JT_D}, + {RUNE_C(0x00072A), RUNE_C(0x00072A), JT_R}, + {RUNE_C(0x00072B), RUNE_C(0x00072B), JT_D}, + {RUNE_C(0x00072C), RUNE_C(0x00072C), JT_R}, + {RUNE_C(0x00072D), RUNE_C(0x00072E), JT_D}, + {RUNE_C(0x00072F), RUNE_C(0x00072F), JT_R}, + {RUNE_C(0x000730), RUNE_C(0x00074A), JT_T}, + {RUNE_C(0x00074D), RUNE_C(0x00074D), JT_R}, + {RUNE_C(0x00074E), RUNE_C(0x000758), JT_D}, + {RUNE_C(0x000759), RUNE_C(0x00075B), JT_R}, + {RUNE_C(0x00075C), RUNE_C(0x00076A), JT_D}, + {RUNE_C(0x00076B), RUNE_C(0x00076C), JT_R}, + {RUNE_C(0x00076D), RUNE_C(0x000770), JT_D}, + {RUNE_C(0x000771), RUNE_C(0x000771), JT_R}, + {RUNE_C(0x000772), RUNE_C(0x000772), JT_D}, + {RUNE_C(0x000773), RUNE_C(0x000774), JT_R}, + {RUNE_C(0x000775), RUNE_C(0x000777), JT_D}, + {RUNE_C(0x000778), RUNE_C(0x000779), JT_R}, + {RUNE_C(0x00077A), RUNE_C(0x00077F), JT_D}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0), JT_T}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA), JT_D}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3), JT_T}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA), JT_C}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD), JT_T}, + {RUNE_C(0x000816), RUNE_C(0x000819), JT_T}, + {RUNE_C(0x00081B), RUNE_C(0x000823), JT_T}, + {RUNE_C(0x000825), RUNE_C(0x000827), JT_T}, + {RUNE_C(0x000829), RUNE_C(0x00082D), JT_T}, + {RUNE_C(0x000840), RUNE_C(0x000840), JT_R}, + {RUNE_C(0x000841), RUNE_C(0x000845), JT_D}, + {RUNE_C(0x000846), RUNE_C(0x000847), JT_R}, + {RUNE_C(0x000848), RUNE_C(0x000848), JT_D}, + {RUNE_C(0x000849), RUNE_C(0x000849), JT_R}, + {RUNE_C(0x00084A), RUNE_C(0x000853), JT_D}, + {RUNE_C(0x000854), RUNE_C(0x000854), JT_R}, + {RUNE_C(0x000855), RUNE_C(0x000855), JT_D}, + {RUNE_C(0x000856), RUNE_C(0x000858), JT_R}, + {RUNE_C(0x000859), RUNE_C(0x00085B), JT_T}, + {RUNE_C(0x000860), RUNE_C(0x000860), JT_D}, + {RUNE_C(0x000862), RUNE_C(0x000865), JT_D}, + {RUNE_C(0x000867), RUNE_C(0x000867), JT_R}, + {RUNE_C(0x000868), RUNE_C(0x000868), JT_D}, + {RUNE_C(0x000869), RUNE_C(0x00086A), JT_R}, + {RUNE_C(0x000870), RUNE_C(0x000882), JT_R}, + {RUNE_C(0x000883), RUNE_C(0x000885), JT_C}, + {RUNE_C(0x000886), RUNE_C(0x000886), JT_D}, + {RUNE_C(0x000889), RUNE_C(0x00088D), JT_D}, + {RUNE_C(0x00088E), RUNE_C(0x00088E), JT_R}, + {RUNE_C(0x000898), RUNE_C(0x00089F), JT_T}, + {RUNE_C(0x0008A0), RUNE_C(0x0008A9), JT_D}, + {RUNE_C(0x0008AA), RUNE_C(0x0008AC), JT_R}, + {RUNE_C(0x0008AE), RUNE_C(0x0008AE), JT_R}, + {RUNE_C(0x0008AF), RUNE_C(0x0008B0), JT_D}, + {RUNE_C(0x0008B1), RUNE_C(0x0008B2), JT_R}, + {RUNE_C(0x0008B3), RUNE_C(0x0008B8), JT_D}, + {RUNE_C(0x0008B9), RUNE_C(0x0008B9), JT_R}, + {RUNE_C(0x0008BA), RUNE_C(0x0008C8), JT_D}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1), JT_T}, + {RUNE_C(0x0008E3), RUNE_C(0x000902), JT_T}, + {RUNE_C(0x00093A), RUNE_C(0x00093A), JT_T}, + {RUNE_C(0x00093C), RUNE_C(0x00093C), JT_T}, + {RUNE_C(0x000941), RUNE_C(0x000948), JT_T}, + {RUNE_C(0x00094D), RUNE_C(0x00094D), JT_T}, + {RUNE_C(0x000951), RUNE_C(0x000957), JT_T}, + {RUNE_C(0x000962), RUNE_C(0x000963), JT_T}, + {RUNE_C(0x000981), RUNE_C(0x000981), JT_T}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC), JT_T}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4), JT_T}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD), JT_T}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3), JT_T}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE), JT_T}, + {RUNE_C(0x000A01), RUNE_C(0x000A02), JT_T}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C), JT_T}, + {RUNE_C(0x000A41), RUNE_C(0x000A42), JT_T}, + {RUNE_C(0x000A47), RUNE_C(0x000A48), JT_T}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D), JT_T}, + {RUNE_C(0x000A51), RUNE_C(0x000A51), JT_T}, + {RUNE_C(0x000A70), RUNE_C(0x000A71), JT_T}, + {RUNE_C(0x000A75), RUNE_C(0x000A75), JT_T}, + {RUNE_C(0x000A81), RUNE_C(0x000A82), JT_T}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC), JT_T}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5), JT_T}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8), JT_T}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD), JT_T}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3), JT_T}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF), JT_T}, + {RUNE_C(0x000B01), RUNE_C(0x000B01), JT_T}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C), JT_T}, + {RUNE_C(0x000B3F), RUNE_C(0x000B3F), JT_T}, + {RUNE_C(0x000B41), RUNE_C(0x000B44), JT_T}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D), JT_T}, + {RUNE_C(0x000B55), RUNE_C(0x000B56), JT_T}, + {RUNE_C(0x000B62), RUNE_C(0x000B63), JT_T}, + {RUNE_C(0x000B82), RUNE_C(0x000B82), JT_T}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0), JT_T}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD), JT_T}, + {RUNE_C(0x000C00), RUNE_C(0x000C00), JT_T}, + {RUNE_C(0x000C04), RUNE_C(0x000C04), JT_T}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C), JT_T}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40), JT_T}, + {RUNE_C(0x000C46), RUNE_C(0x000C48), JT_T}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D), JT_T}, + {RUNE_C(0x000C55), RUNE_C(0x000C56), JT_T}, + {RUNE_C(0x000C62), RUNE_C(0x000C63), JT_T}, + {RUNE_C(0x000C81), RUNE_C(0x000C81), JT_T}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC), JT_T}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF), JT_T}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6), JT_T}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD), JT_T}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3), JT_T}, + {RUNE_C(0x000D00), RUNE_C(0x000D01), JT_T}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C), JT_T}, + {RUNE_C(0x000D41), RUNE_C(0x000D44), JT_T}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D), JT_T}, + {RUNE_C(0x000D62), RUNE_C(0x000D63), JT_T}, + {RUNE_C(0x000D81), RUNE_C(0x000D81), JT_T}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA), JT_T}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4), JT_T}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6), JT_T}, + {RUNE_C(0x000E31), RUNE_C(0x000E31), JT_T}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A), JT_T}, + {RUNE_C(0x000E47), RUNE_C(0x000E4E), JT_T}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1), JT_T}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC), JT_T}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE), JT_T}, + {RUNE_C(0x000F18), RUNE_C(0x000F19), JT_T}, + {RUNE_C(0x000F35), RUNE_C(0x000F35), JT_T}, + {RUNE_C(0x000F37), RUNE_C(0x000F37), JT_T}, + {RUNE_C(0x000F39), RUNE_C(0x000F39), JT_T}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E), JT_T}, + {RUNE_C(0x000F80), RUNE_C(0x000F84), JT_T}, + {RUNE_C(0x000F86), RUNE_C(0x000F87), JT_T}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97), JT_T}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC), JT_T}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6), JT_T}, + {RUNE_C(0x00102D), RUNE_C(0x001030), JT_T}, + {RUNE_C(0x001032), RUNE_C(0x001037), JT_T}, + {RUNE_C(0x001039), RUNE_C(0x00103A), JT_T}, + {RUNE_C(0x00103D), RUNE_C(0x00103E), JT_T}, + {RUNE_C(0x001058), RUNE_C(0x001059), JT_T}, + {RUNE_C(0x00105E), RUNE_C(0x001060), JT_T}, + {RUNE_C(0x001071), RUNE_C(0x001074), JT_T}, + {RUNE_C(0x001082), RUNE_C(0x001082), JT_T}, + {RUNE_C(0x001085), RUNE_C(0x001086), JT_T}, + {RUNE_C(0x00108D), RUNE_C(0x00108D), JT_T}, + {RUNE_C(0x00109D), RUNE_C(0x00109D), JT_T}, + {RUNE_C(0x00135D), RUNE_C(0x00135F), JT_T}, + {RUNE_C(0x001712), RUNE_C(0x001714), JT_T}, + {RUNE_C(0x001732), RUNE_C(0x001733), JT_T}, + {RUNE_C(0x001752), RUNE_C(0x001753), JT_T}, + {RUNE_C(0x001772), RUNE_C(0x001773), JT_T}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5), JT_T}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD), JT_T}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6), JT_T}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3), JT_T}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD), JT_T}, + {RUNE_C(0x001807), RUNE_C(0x001807), JT_D}, + {RUNE_C(0x00180A), RUNE_C(0x00180A), JT_C}, + {RUNE_C(0x00180B), RUNE_C(0x00180D), JT_T}, + {RUNE_C(0x00180F), RUNE_C(0x00180F), JT_T}, + {RUNE_C(0x001820), RUNE_C(0x001878), JT_D}, + {RUNE_C(0x001885), RUNE_C(0x001886), JT_T}, + {RUNE_C(0x001887), RUNE_C(0x0018A8), JT_D}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9), JT_T}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA), JT_D}, + {RUNE_C(0x001920), RUNE_C(0x001922), JT_T}, + {RUNE_C(0x001927), RUNE_C(0x001928), JT_T}, + {RUNE_C(0x001932), RUNE_C(0x001932), JT_T}, + {RUNE_C(0x001939), RUNE_C(0x00193B), JT_T}, + {RUNE_C(0x001A17), RUNE_C(0x001A18), JT_T}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B), JT_T}, + {RUNE_C(0x001A56), RUNE_C(0x001A56), JT_T}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E), JT_T}, + {RUNE_C(0x001A60), RUNE_C(0x001A60), JT_T}, + {RUNE_C(0x001A62), RUNE_C(0x001A62), JT_T}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C), JT_T}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C), JT_T}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F), JT_T}, + {RUNE_C(0x001AB0), RUNE_C(0x001ACE), JT_T}, + {RUNE_C(0x001B00), RUNE_C(0x001B03), JT_T}, + {RUNE_C(0x001B34), RUNE_C(0x001B34), JT_T}, + {RUNE_C(0x001B36), RUNE_C(0x001B3A), JT_T}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C), JT_T}, + {RUNE_C(0x001B42), RUNE_C(0x001B42), JT_T}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73), JT_T}, + {RUNE_C(0x001B80), RUNE_C(0x001B81), JT_T}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5), JT_T}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9), JT_T}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD), JT_T}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6), JT_T}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9), JT_T}, + {RUNE_C(0x001BED), RUNE_C(0x001BED), JT_T}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1), JT_T}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33), JT_T}, + {RUNE_C(0x001C36), RUNE_C(0x001C37), JT_T}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2), JT_T}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0), JT_T}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8), JT_T}, + {RUNE_C(0x001CED), RUNE_C(0x001CED), JT_T}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4), JT_T}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9), JT_T}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF), JT_T}, + {RUNE_C(0x00200B), RUNE_C(0x00200B), JT_T}, + {RUNE_C(0x00200D), RUNE_C(0x00200D), JT_C}, + {RUNE_C(0x00200E), RUNE_C(0x00200F), JT_T}, + {RUNE_C(0x00202A), RUNE_C(0x00202E), JT_T}, + {RUNE_C(0x002060), RUNE_C(0x002064), JT_T}, + {RUNE_C(0x00206A), RUNE_C(0x00206F), JT_T}, + {RUNE_C(0x0020D0), RUNE_C(0x0020F0), JT_T}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1), JT_T}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F), JT_T}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF), JT_T}, + {RUNE_C(0x00302A), RUNE_C(0x00302D), JT_T}, + {RUNE_C(0x003099), RUNE_C(0x00309A), JT_T}, + {RUNE_C(0x00A66F), RUNE_C(0x00A672), JT_T}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D), JT_T}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F), JT_T}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1), JT_T}, + {RUNE_C(0x00A802), RUNE_C(0x00A802), JT_T}, + {RUNE_C(0x00A806), RUNE_C(0x00A806), JT_T}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B), JT_T}, + {RUNE_C(0x00A825), RUNE_C(0x00A826), JT_T}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C), JT_T}, + {RUNE_C(0x00A840), RUNE_C(0x00A871), JT_D}, + {RUNE_C(0x00A872), RUNE_C(0x00A872), JT_L}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5), JT_T}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1), JT_T}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF), JT_T}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D), JT_T}, + {RUNE_C(0x00A947), RUNE_C(0x00A951), JT_T}, + {RUNE_C(0x00A980), RUNE_C(0x00A982), JT_T}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3), JT_T}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9), JT_T}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD), JT_T}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5), JT_T}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E), JT_T}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32), JT_T}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36), JT_T}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43), JT_T}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C), JT_T}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C), JT_T}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0), JT_T}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4), JT_T}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8), JT_T}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF), JT_T}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1), JT_T}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED), JT_T}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6), JT_T}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5), JT_T}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8), JT_T}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED), JT_T}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E), JT_T}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F), JT_T}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F), JT_T}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF), JT_T}, + {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB), JT_T}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD), JT_T}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0), JT_T}, + {RUNE_C(0x010376), RUNE_C(0x01037A), JT_T}, + {RUNE_C(0x010A01), RUNE_C(0x010A03), JT_T}, + {RUNE_C(0x010A05), RUNE_C(0x010A06), JT_T}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F), JT_T}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A), JT_T}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F), JT_T}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC4), JT_D}, + {RUNE_C(0x010AC5), RUNE_C(0x010AC5), JT_R}, + {RUNE_C(0x010AC7), RUNE_C(0x010AC7), JT_R}, + {RUNE_C(0x010AC9), RUNE_C(0x010ACA), JT_R}, + {RUNE_C(0x010ACD), RUNE_C(0x010ACD), JT_L}, + {RUNE_C(0x010ACE), RUNE_C(0x010AD2), JT_R}, + {RUNE_C(0x010AD3), RUNE_C(0x010AD6), JT_D}, + {RUNE_C(0x010AD7), RUNE_C(0x010AD7), JT_L}, + {RUNE_C(0x010AD8), RUNE_C(0x010ADC), JT_D}, + {RUNE_C(0x010ADD), RUNE_C(0x010ADD), JT_R}, + {RUNE_C(0x010ADE), RUNE_C(0x010AE0), JT_D}, + {RUNE_C(0x010AE1), RUNE_C(0x010AE1), JT_R}, + {RUNE_C(0x010AE4), RUNE_C(0x010AE4), JT_R}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6), JT_T}, + {RUNE_C(0x010AEB), RUNE_C(0x010AEE), JT_D}, + {RUNE_C(0x010AEF), RUNE_C(0x010AEF), JT_R}, + {RUNE_C(0x010B80), RUNE_C(0x010B80), JT_D}, + {RUNE_C(0x010B81), RUNE_C(0x010B81), JT_R}, + {RUNE_C(0x010B82), RUNE_C(0x010B82), JT_D}, + {RUNE_C(0x010B83), RUNE_C(0x010B85), JT_R}, + {RUNE_C(0x010B86), RUNE_C(0x010B88), JT_D}, + {RUNE_C(0x010B89), RUNE_C(0x010B89), JT_R}, + {RUNE_C(0x010B8A), RUNE_C(0x010B8B), JT_D}, + {RUNE_C(0x010B8C), RUNE_C(0x010B8C), JT_R}, + {RUNE_C(0x010B8D), RUNE_C(0x010B8D), JT_D}, + {RUNE_C(0x010B8E), RUNE_C(0x010B8F), JT_R}, + {RUNE_C(0x010B90), RUNE_C(0x010B90), JT_D}, + {RUNE_C(0x010B91), RUNE_C(0x010B91), JT_R}, + {RUNE_C(0x010BA9), RUNE_C(0x010BAC), JT_R}, + {RUNE_C(0x010BAD), RUNE_C(0x010BAE), JT_D}, + {RUNE_C(0x010D00), RUNE_C(0x010D00), JT_L}, + {RUNE_C(0x010D01), RUNE_C(0x010D21), JT_D}, + {RUNE_C(0x010D22), RUNE_C(0x010D22), JT_R}, + {RUNE_C(0x010D23), RUNE_C(0x010D23), JT_D}, + {RUNE_C(0x010D24), RUNE_C(0x010D27), JT_T}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC), JT_T}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF), JT_T}, + {RUNE_C(0x010F30), RUNE_C(0x010F32), JT_D}, + {RUNE_C(0x010F33), RUNE_C(0x010F33), JT_R}, + {RUNE_C(0x010F34), RUNE_C(0x010F44), JT_D}, + {RUNE_C(0x010F46), RUNE_C(0x010F50), JT_T}, + {RUNE_C(0x010F51), RUNE_C(0x010F53), JT_D}, + {RUNE_C(0x010F54), RUNE_C(0x010F54), JT_R}, + {RUNE_C(0x010F70), RUNE_C(0x010F73), JT_D}, + {RUNE_C(0x010F74), RUNE_C(0x010F75), JT_R}, + {RUNE_C(0x010F76), RUNE_C(0x010F81), JT_D}, + {RUNE_C(0x010F82), RUNE_C(0x010F85), JT_T}, + {RUNE_C(0x010FB0), RUNE_C(0x010FB0), JT_D}, + {RUNE_C(0x010FB2), RUNE_C(0x010FB3), JT_D}, + {RUNE_C(0x010FB4), RUNE_C(0x010FB6), JT_R}, + {RUNE_C(0x010FB8), RUNE_C(0x010FB8), JT_D}, + {RUNE_C(0x010FB9), RUNE_C(0x010FBA), JT_R}, + {RUNE_C(0x010FBB), RUNE_C(0x010FBC), JT_D}, + {RUNE_C(0x010FBD), RUNE_C(0x010FBD), JT_R}, + {RUNE_C(0x010FBE), RUNE_C(0x010FBF), JT_D}, + {RUNE_C(0x010FC1), RUNE_C(0x010FC1), JT_D}, + {RUNE_C(0x010FC2), RUNE_C(0x010FC3), JT_R}, + {RUNE_C(0x010FC4), RUNE_C(0x010FC4), JT_D}, + {RUNE_C(0x010FC9), RUNE_C(0x010FC9), JT_R}, + {RUNE_C(0x010FCA), RUNE_C(0x010FCA), JT_D}, + {RUNE_C(0x010FCB), RUNE_C(0x010FCB), JT_L}, + {RUNE_C(0x011001), RUNE_C(0x011001), JT_T}, + {RUNE_C(0x011038), RUNE_C(0x011046), JT_T}, + {RUNE_C(0x011070), RUNE_C(0x011070), JT_T}, + {RUNE_C(0x011073), RUNE_C(0x011074), JT_T}, + {RUNE_C(0x01107F), RUNE_C(0x011081), JT_T}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6), JT_T}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA), JT_T}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2), JT_T}, + {RUNE_C(0x011100), RUNE_C(0x011102), JT_T}, + {RUNE_C(0x011127), RUNE_C(0x01112B), JT_T}, + {RUNE_C(0x01112D), RUNE_C(0x011134), JT_T}, + {RUNE_C(0x011173), RUNE_C(0x011173), JT_T}, + {RUNE_C(0x011180), RUNE_C(0x011181), JT_T}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE), JT_T}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC), JT_T}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF), JT_T}, + {RUNE_C(0x01122F), RUNE_C(0x011231), JT_T}, + {RUNE_C(0x011234), RUNE_C(0x011234), JT_T}, + {RUNE_C(0x011236), RUNE_C(0x011237), JT_T}, + {RUNE_C(0x01123E), RUNE_C(0x01123E), JT_T}, + {RUNE_C(0x011241), RUNE_C(0x011241), JT_T}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF), JT_T}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA), JT_T}, + {RUNE_C(0x011300), RUNE_C(0x011301), JT_T}, + {RUNE_C(0x01133B), RUNE_C(0x01133C), JT_T}, + {RUNE_C(0x011340), RUNE_C(0x011340), JT_T}, + {RUNE_C(0x011366), RUNE_C(0x01136C), JT_T}, + {RUNE_C(0x011370), RUNE_C(0x011374), JT_T}, + {RUNE_C(0x011438), RUNE_C(0x01143F), JT_T}, + {RUNE_C(0x011442), RUNE_C(0x011444), JT_T}, + {RUNE_C(0x011446), RUNE_C(0x011446), JT_T}, + {RUNE_C(0x01145E), RUNE_C(0x01145E), JT_T}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8), JT_T}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA), JT_T}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0), JT_T}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3), JT_T}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5), JT_T}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD), JT_T}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0), JT_T}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD), JT_T}, + {RUNE_C(0x011633), RUNE_C(0x01163A), JT_T}, + {RUNE_C(0x01163D), RUNE_C(0x01163D), JT_T}, + {RUNE_C(0x01163F), RUNE_C(0x011640), JT_T}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB), JT_T}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD), JT_T}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5), JT_T}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7), JT_T}, + {RUNE_C(0x01171D), RUNE_C(0x01171F), JT_T}, + {RUNE_C(0x011722), RUNE_C(0x011725), JT_T}, + {RUNE_C(0x011727), RUNE_C(0x01172B), JT_T}, + {RUNE_C(0x01182F), RUNE_C(0x011837), JT_T}, + {RUNE_C(0x011839), RUNE_C(0x01183A), JT_T}, + {RUNE_C(0x01193B), RUNE_C(0x01193C), JT_T}, + {RUNE_C(0x01193E), RUNE_C(0x01193E), JT_T}, + {RUNE_C(0x011943), RUNE_C(0x011943), JT_T}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7), JT_T}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB), JT_T}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0), JT_T}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A), JT_T}, + {RUNE_C(0x011A33), RUNE_C(0x011A38), JT_T}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E), JT_T}, + {RUNE_C(0x011A47), RUNE_C(0x011A47), JT_T}, + {RUNE_C(0x011A51), RUNE_C(0x011A56), JT_T}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B), JT_T}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96), JT_T}, + {RUNE_C(0x011A98), RUNE_C(0x011A99), JT_T}, + {RUNE_C(0x011C30), RUNE_C(0x011C36), JT_T}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D), JT_T}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F), JT_T}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7), JT_T}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0), JT_T}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3), JT_T}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6), JT_T}, + {RUNE_C(0x011D31), RUNE_C(0x011D36), JT_T}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A), JT_T}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D), JT_T}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45), JT_T}, + {RUNE_C(0x011D47), RUNE_C(0x011D47), JT_T}, + {RUNE_C(0x011D90), RUNE_C(0x011D91), JT_T}, + {RUNE_C(0x011D95), RUNE_C(0x011D95), JT_T}, + {RUNE_C(0x011D97), RUNE_C(0x011D97), JT_T}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4), JT_T}, + {RUNE_C(0x011F00), RUNE_C(0x011F01), JT_T}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A), JT_T}, + {RUNE_C(0x011F40), RUNE_C(0x011F40), JT_T}, + {RUNE_C(0x011F42), RUNE_C(0x011F42), JT_T}, + {RUNE_C(0x013430), RUNE_C(0x013440), JT_T}, + {RUNE_C(0x013447), RUNE_C(0x013455), JT_T}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4), JT_T}, + {RUNE_C(0x016B30), RUNE_C(0x016B36), JT_T}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F), JT_T}, + {RUNE_C(0x016F8F), RUNE_C(0x016F92), JT_T}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4), JT_T}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E), JT_T}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3), JT_T}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D), JT_T}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46), JT_T}, + {RUNE_C(0x01D167), RUNE_C(0x01D169), JT_T}, + {RUNE_C(0x01D173), RUNE_C(0x01D182), JT_T}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B), JT_T}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD), JT_T}, + {RUNE_C(0x01D242), RUNE_C(0x01D244), JT_T}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36), JT_T}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C), JT_T}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75), JT_T}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84), JT_T}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F), JT_T}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF), JT_T}, + {RUNE_C(0x01E000), RUNE_C(0x01E006), JT_T}, + {RUNE_C(0x01E008), RUNE_C(0x01E018), JT_T}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021), JT_T}, + {RUNE_C(0x01E023), RUNE_C(0x01E024), JT_T}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A), JT_T}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F), JT_T}, + {RUNE_C(0x01E130), RUNE_C(0x01E136), JT_T}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE), JT_T}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF), JT_T}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF), JT_T}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6), JT_T}, + {RUNE_C(0x01E900), RUNE_C(0x01E943), JT_D}, + {RUNE_C(0x01E944), RUNE_C(0x01E94B), JT_T}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001), JT_T}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F), JT_T}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF), JT_T}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_JT_H */ diff --git a/vendor/librune/include/internal/rtype/lookup-func.h b/vendor/librune/include/internal/rtype/lookup-func.h new file mode 100644 index 0000000..66f9c93 --- /dev/null +++ b/vendor/librune/include/internal/rtype/lookup-func.h @@ -0,0 +1,58 @@ +#include <stddef.h> + +#include "internal/common.h" + +#ifndef TYPE +# error "TYPE if not defined" +#endif +#ifndef DEFAULT +# error "DEFAULT is not defined" +#endif +#ifndef TABLE +# error "TABLE is not defined" +#endif +#ifndef HAS_VALUE +# error "HAS_VALUE is not defined" +#endif +#ifndef RANGE +# define RANGE 1 +#endif + +#if RANGE +# define LO lo +# define HI hi +#else +# define LO key +# define HI key +#endif + +[[gnu::always_inline]] static TYPE +lookup(rune ch) +{ + ptrdiff_t lo, hi; + +#ifdef LATIN1_TABLE + if (ch <= LATIN1_MAX) + return LATIN1_TABLE[ch]; +#endif + + lo = 0; + hi = lengthof(TABLE) - 1; + + while (lo <= hi) { + ptrdiff_t i = (lo + hi) / 2; + + if (ch < TABLE[i].LO) + hi = i - 1; + else if (ch > TABLE[i].HI) + lo = i + 1; + else +#if HAS_VALUE + return TABLE[i].val; +#else + return true; +#endif + } + + return DEFAULT; +} diff --git a/vendor/librune/include/internal/rtype/nt.h b/vendor/librune/include/internal/rtype/nt.h new file mode 100644 index 0000000..d72d31e --- /dev/null +++ b/vendor/librune/include/internal/rtype/nt.h @@ -0,0 +1,300 @@ +/* This file is autogenerated by gen/rtype-nt; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_NT_H +#define RUNE_INTERNAL_RTYPE_NT_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_nt_bf rtype_nt_lat1_tbl[] = { + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, NT_DECIMAL, + NT_DECIMAL, NT_DECIMAL, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_DIGIT, NT_DIGIT, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_DIGIT, NT_NONE, NT_NONE, NT_NUMERIC, NT_NUMERIC, NT_NUMERIC, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, + NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, NT_NONE, +}; + +static const struct { + rune lo, hi; + rprop_nt_bf val; +} rtype_nt_tbl[] = { + {RUNE_C(0x000030), RUNE_C(0x000039), NT_DECIMAL}, + {RUNE_C(0x0000B2), RUNE_C(0x0000B3), NT_DIGIT}, + {RUNE_C(0x0000B9), RUNE_C(0x0000B9), NT_DIGIT}, + {RUNE_C(0x0000BC), RUNE_C(0x0000BE), NT_NUMERIC}, + {RUNE_C(0x000660), RUNE_C(0x000669), NT_DECIMAL}, + {RUNE_C(0x0006F0), RUNE_C(0x0006F9), NT_DECIMAL}, + {RUNE_C(0x0007C0), RUNE_C(0x0007C9), NT_DECIMAL}, + {RUNE_C(0x000966), RUNE_C(0x00096F), NT_DECIMAL}, + {RUNE_C(0x0009E6), RUNE_C(0x0009EF), NT_DECIMAL}, + {RUNE_C(0x0009F4), RUNE_C(0x0009F9), NT_NUMERIC}, + {RUNE_C(0x000A66), RUNE_C(0x000A6F), NT_DECIMAL}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF), NT_DECIMAL}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F), NT_DECIMAL}, + {RUNE_C(0x000B72), RUNE_C(0x000B77), NT_NUMERIC}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF), NT_DECIMAL}, + {RUNE_C(0x000BF0), RUNE_C(0x000BF2), NT_NUMERIC}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F), NT_DECIMAL}, + {RUNE_C(0x000C78), RUNE_C(0x000C7E), NT_NUMERIC}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF), NT_DECIMAL}, + {RUNE_C(0x000D58), RUNE_C(0x000D5E), NT_NUMERIC}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F), NT_DECIMAL}, + {RUNE_C(0x000D70), RUNE_C(0x000D78), NT_NUMERIC}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF), NT_DECIMAL}, + {RUNE_C(0x000E50), RUNE_C(0x000E59), NT_DECIMAL}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9), NT_DECIMAL}, + {RUNE_C(0x000F20), RUNE_C(0x000F29), NT_DECIMAL}, + {RUNE_C(0x000F2A), RUNE_C(0x000F33), NT_NUMERIC}, + {RUNE_C(0x001040), RUNE_C(0x001049), NT_DECIMAL}, + {RUNE_C(0x001090), RUNE_C(0x001099), NT_DECIMAL}, + {RUNE_C(0x001369), RUNE_C(0x001371), NT_DIGIT}, + {RUNE_C(0x001372), RUNE_C(0x00137C), NT_NUMERIC}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F0), NT_NUMERIC}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9), NT_DECIMAL}, + {RUNE_C(0x0017F0), RUNE_C(0x0017F9), NT_NUMERIC}, + {RUNE_C(0x001810), RUNE_C(0x001819), NT_DECIMAL}, + {RUNE_C(0x001946), RUNE_C(0x00194F), NT_DECIMAL}, + {RUNE_C(0x0019D0), RUNE_C(0x0019D9), NT_DECIMAL}, + {RUNE_C(0x0019DA), RUNE_C(0x0019DA), NT_DIGIT}, + {RUNE_C(0x001A80), RUNE_C(0x001A89), NT_DECIMAL}, + {RUNE_C(0x001A90), RUNE_C(0x001A99), NT_DECIMAL}, + {RUNE_C(0x001B50), RUNE_C(0x001B59), NT_DECIMAL}, + {RUNE_C(0x001BB0), RUNE_C(0x001BB9), NT_DECIMAL}, + {RUNE_C(0x001C40), RUNE_C(0x001C49), NT_DECIMAL}, + {RUNE_C(0x001C50), RUNE_C(0x001C59), NT_DECIMAL}, + {RUNE_C(0x002070), RUNE_C(0x002070), NT_DIGIT}, + {RUNE_C(0x002074), RUNE_C(0x002079), NT_DIGIT}, + {RUNE_C(0x002080), RUNE_C(0x002089), NT_DIGIT}, + {RUNE_C(0x002150), RUNE_C(0x002182), NT_NUMERIC}, + {RUNE_C(0x002185), RUNE_C(0x002189), NT_NUMERIC}, + {RUNE_C(0x002460), RUNE_C(0x002468), NT_DIGIT}, + {RUNE_C(0x002469), RUNE_C(0x002473), NT_NUMERIC}, + {RUNE_C(0x002474), RUNE_C(0x00247C), NT_DIGIT}, + {RUNE_C(0x00247D), RUNE_C(0x002487), NT_NUMERIC}, + {RUNE_C(0x002488), RUNE_C(0x002490), NT_DIGIT}, + {RUNE_C(0x002491), RUNE_C(0x00249B), NT_NUMERIC}, + {RUNE_C(0x0024EA), RUNE_C(0x0024EA), NT_DIGIT}, + {RUNE_C(0x0024EB), RUNE_C(0x0024F4), NT_NUMERIC}, + {RUNE_C(0x0024F5), RUNE_C(0x0024FD), NT_DIGIT}, + {RUNE_C(0x0024FE), RUNE_C(0x0024FE), NT_NUMERIC}, + {RUNE_C(0x0024FF), RUNE_C(0x0024FF), NT_DIGIT}, + {RUNE_C(0x002776), RUNE_C(0x00277E), NT_DIGIT}, + {RUNE_C(0x00277F), RUNE_C(0x00277F), NT_NUMERIC}, + {RUNE_C(0x002780), RUNE_C(0x002788), NT_DIGIT}, + {RUNE_C(0x002789), RUNE_C(0x002789), NT_NUMERIC}, + {RUNE_C(0x00278A), RUNE_C(0x002792), NT_DIGIT}, + {RUNE_C(0x002793), RUNE_C(0x002793), NT_NUMERIC}, + {RUNE_C(0x002CFD), RUNE_C(0x002CFD), NT_NUMERIC}, + {RUNE_C(0x003007), RUNE_C(0x003007), NT_NUMERIC}, + {RUNE_C(0x003021), RUNE_C(0x003029), NT_NUMERIC}, + {RUNE_C(0x003038), RUNE_C(0x00303A), NT_NUMERIC}, + {RUNE_C(0x003192), RUNE_C(0x003195), NT_NUMERIC}, + {RUNE_C(0x003220), RUNE_C(0x003229), NT_NUMERIC}, + {RUNE_C(0x003248), RUNE_C(0x00324F), NT_NUMERIC}, + {RUNE_C(0x003251), RUNE_C(0x00325F), NT_NUMERIC}, + {RUNE_C(0x003280), RUNE_C(0x003289), NT_NUMERIC}, + {RUNE_C(0x0032B1), RUNE_C(0x0032BF), NT_NUMERIC}, + {RUNE_C(0x003405), RUNE_C(0x003405), NT_NUMERIC}, + {RUNE_C(0x003483), RUNE_C(0x003483), NT_NUMERIC}, + {RUNE_C(0x00382A), RUNE_C(0x00382A), NT_NUMERIC}, + {RUNE_C(0x003B4D), RUNE_C(0x003B4D), NT_NUMERIC}, + {RUNE_C(0x004E00), RUNE_C(0x004E00), NT_NUMERIC}, + {RUNE_C(0x004E03), RUNE_C(0x004E03), NT_NUMERIC}, + {RUNE_C(0x004E07), RUNE_C(0x004E07), NT_NUMERIC}, + {RUNE_C(0x004E09), RUNE_C(0x004E09), NT_NUMERIC}, + {RUNE_C(0x004E24), RUNE_C(0x004E24), NT_NUMERIC}, + {RUNE_C(0x004E5D), RUNE_C(0x004E5D), NT_NUMERIC}, + {RUNE_C(0x004E8C), RUNE_C(0x004E8C), NT_NUMERIC}, + {RUNE_C(0x004E94), RUNE_C(0x004E94), NT_NUMERIC}, + {RUNE_C(0x004E96), RUNE_C(0x004E96), NT_NUMERIC}, + {RUNE_C(0x004EAC), RUNE_C(0x004EAC), NT_NUMERIC}, + {RUNE_C(0x004EBF), RUNE_C(0x004EC0), NT_NUMERIC}, + {RUNE_C(0x004EDF), RUNE_C(0x004EDF), NT_NUMERIC}, + {RUNE_C(0x004EE8), RUNE_C(0x004EE8), NT_NUMERIC}, + {RUNE_C(0x004F0D), RUNE_C(0x004F0D), NT_NUMERIC}, + {RUNE_C(0x004F70), RUNE_C(0x004F70), NT_NUMERIC}, + {RUNE_C(0x004FE9), RUNE_C(0x004FE9), NT_NUMERIC}, + {RUNE_C(0x005006), RUNE_C(0x005006), NT_NUMERIC}, + {RUNE_C(0x005104), RUNE_C(0x005104), NT_NUMERIC}, + {RUNE_C(0x005146), RUNE_C(0x005146), NT_NUMERIC}, + {RUNE_C(0x005169), RUNE_C(0x005169), NT_NUMERIC}, + {RUNE_C(0x00516B), RUNE_C(0x00516B), NT_NUMERIC}, + {RUNE_C(0x00516D), RUNE_C(0x00516D), NT_NUMERIC}, + {RUNE_C(0x005341), RUNE_C(0x005341), NT_NUMERIC}, + {RUNE_C(0x005343), RUNE_C(0x005345), NT_NUMERIC}, + {RUNE_C(0x00534C), RUNE_C(0x00534C), NT_NUMERIC}, + {RUNE_C(0x0053C1), RUNE_C(0x0053C4), NT_NUMERIC}, + {RUNE_C(0x0056DB), RUNE_C(0x0056DB), NT_NUMERIC}, + {RUNE_C(0x0058F1), RUNE_C(0x0058F1), NT_NUMERIC}, + {RUNE_C(0x0058F9), RUNE_C(0x0058F9), NT_NUMERIC}, + {RUNE_C(0x005E7A), RUNE_C(0x005E7A), NT_NUMERIC}, + {RUNE_C(0x005EFE), RUNE_C(0x005EFF), NT_NUMERIC}, + {RUNE_C(0x005F0C), RUNE_C(0x005F0E), NT_NUMERIC}, + {RUNE_C(0x005F10), RUNE_C(0x005F10), NT_NUMERIC}, + {RUNE_C(0x0062D0), RUNE_C(0x0062D0), NT_NUMERIC}, + {RUNE_C(0x0062FE), RUNE_C(0x0062FE), NT_NUMERIC}, + {RUNE_C(0x00634C), RUNE_C(0x00634C), NT_NUMERIC}, + {RUNE_C(0x0067D2), RUNE_C(0x0067D2), NT_NUMERIC}, + {RUNE_C(0x006D1E), RUNE_C(0x006D1E), NT_NUMERIC}, + {RUNE_C(0x006F06), RUNE_C(0x006F06), NT_NUMERIC}, + {RUNE_C(0x007396), RUNE_C(0x007396), NT_NUMERIC}, + {RUNE_C(0x00767E), RUNE_C(0x00767E), NT_NUMERIC}, + {RUNE_C(0x007695), RUNE_C(0x007695), NT_NUMERIC}, + {RUNE_C(0x0079ED), RUNE_C(0x0079ED), NT_NUMERIC}, + {RUNE_C(0x008086), RUNE_C(0x008086), NT_NUMERIC}, + {RUNE_C(0x00842C), RUNE_C(0x00842C), NT_NUMERIC}, + {RUNE_C(0x008CAE), RUNE_C(0x008CAE), NT_NUMERIC}, + {RUNE_C(0x008CB3), RUNE_C(0x008CB3), NT_NUMERIC}, + {RUNE_C(0x008D30), RUNE_C(0x008D30), NT_NUMERIC}, + {RUNE_C(0x00920E), RUNE_C(0x00920E), NT_NUMERIC}, + {RUNE_C(0x0094A9), RUNE_C(0x0094A9), NT_NUMERIC}, + {RUNE_C(0x009621), RUNE_C(0x009621), NT_NUMERIC}, + {RUNE_C(0x009646), RUNE_C(0x009646), NT_NUMERIC}, + {RUNE_C(0x00964C), RUNE_C(0x00964C), NT_NUMERIC}, + {RUNE_C(0x009678), RUNE_C(0x009678), NT_NUMERIC}, + {RUNE_C(0x0096F6), RUNE_C(0x0096F6), NT_NUMERIC}, + {RUNE_C(0x00A620), RUNE_C(0x00A629), NT_DECIMAL}, + {RUNE_C(0x00A6E6), RUNE_C(0x00A6EF), NT_NUMERIC}, + {RUNE_C(0x00A830), RUNE_C(0x00A835), NT_NUMERIC}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9), NT_DECIMAL}, + {RUNE_C(0x00A900), RUNE_C(0x00A909), NT_DECIMAL}, + {RUNE_C(0x00A9D0), RUNE_C(0x00A9D9), NT_DECIMAL}, + {RUNE_C(0x00A9F0), RUNE_C(0x00A9F9), NT_DECIMAL}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59), NT_DECIMAL}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9), NT_DECIMAL}, + {RUNE_C(0x00F96B), RUNE_C(0x00F96B), NT_NUMERIC}, + {RUNE_C(0x00F973), RUNE_C(0x00F973), NT_NUMERIC}, + {RUNE_C(0x00F978), RUNE_C(0x00F978), NT_NUMERIC}, + {RUNE_C(0x00F9B2), RUNE_C(0x00F9B2), NT_NUMERIC}, + {RUNE_C(0x00F9D1), RUNE_C(0x00F9D1), NT_NUMERIC}, + {RUNE_C(0x00F9D3), RUNE_C(0x00F9D3), NT_NUMERIC}, + {RUNE_C(0x00F9FD), RUNE_C(0x00F9FD), NT_NUMERIC}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19), NT_DECIMAL}, + {RUNE_C(0x010107), RUNE_C(0x010133), NT_NUMERIC}, + {RUNE_C(0x010140), RUNE_C(0x010178), NT_NUMERIC}, + {RUNE_C(0x01018A), RUNE_C(0x01018B), NT_NUMERIC}, + {RUNE_C(0x0102E1), RUNE_C(0x0102FB), NT_NUMERIC}, + {RUNE_C(0x010320), RUNE_C(0x010323), NT_NUMERIC}, + {RUNE_C(0x010341), RUNE_C(0x010341), NT_NUMERIC}, + {RUNE_C(0x01034A), RUNE_C(0x01034A), NT_NUMERIC}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5), NT_NUMERIC}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9), NT_DECIMAL}, + {RUNE_C(0x010858), RUNE_C(0x01085F), NT_NUMERIC}, + {RUNE_C(0x010879), RUNE_C(0x01087F), NT_NUMERIC}, + {RUNE_C(0x0108A7), RUNE_C(0x0108AF), NT_NUMERIC}, + {RUNE_C(0x0108FB), RUNE_C(0x0108FF), NT_NUMERIC}, + {RUNE_C(0x010916), RUNE_C(0x01091B), NT_NUMERIC}, + {RUNE_C(0x0109BC), RUNE_C(0x0109BD), NT_NUMERIC}, + {RUNE_C(0x0109C0), RUNE_C(0x0109CF), NT_NUMERIC}, + {RUNE_C(0x0109D2), RUNE_C(0x0109FF), NT_NUMERIC}, + {RUNE_C(0x010A40), RUNE_C(0x010A43), NT_DIGIT}, + {RUNE_C(0x010A44), RUNE_C(0x010A48), NT_NUMERIC}, + {RUNE_C(0x010A7D), RUNE_C(0x010A7E), NT_NUMERIC}, + {RUNE_C(0x010A9D), RUNE_C(0x010A9F), NT_NUMERIC}, + {RUNE_C(0x010AEB), RUNE_C(0x010AEF), NT_NUMERIC}, + {RUNE_C(0x010B58), RUNE_C(0x010B5F), NT_NUMERIC}, + {RUNE_C(0x010B78), RUNE_C(0x010B7F), NT_NUMERIC}, + {RUNE_C(0x010BA9), RUNE_C(0x010BAF), NT_NUMERIC}, + {RUNE_C(0x010CFA), RUNE_C(0x010CFF), NT_NUMERIC}, + {RUNE_C(0x010D30), RUNE_C(0x010D39), NT_DECIMAL}, + {RUNE_C(0x010E60), RUNE_C(0x010E68), NT_DIGIT}, + {RUNE_C(0x010E69), RUNE_C(0x010E7E), NT_NUMERIC}, + {RUNE_C(0x010F1D), RUNE_C(0x010F26), NT_NUMERIC}, + {RUNE_C(0x010F51), RUNE_C(0x010F54), NT_NUMERIC}, + {RUNE_C(0x010FC5), RUNE_C(0x010FCB), NT_NUMERIC}, + {RUNE_C(0x011052), RUNE_C(0x01105A), NT_DIGIT}, + {RUNE_C(0x01105B), RUNE_C(0x011065), NT_NUMERIC}, + {RUNE_C(0x011066), RUNE_C(0x01106F), NT_DECIMAL}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9), NT_DECIMAL}, + {RUNE_C(0x011136), RUNE_C(0x01113F), NT_DECIMAL}, + {RUNE_C(0x0111D0), RUNE_C(0x0111D9), NT_DECIMAL}, + {RUNE_C(0x0111E1), RUNE_C(0x0111F4), NT_NUMERIC}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9), NT_DECIMAL}, + {RUNE_C(0x011450), RUNE_C(0x011459), NT_DECIMAL}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9), NT_DECIMAL}, + {RUNE_C(0x011650), RUNE_C(0x011659), NT_DECIMAL}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9), NT_DECIMAL}, + {RUNE_C(0x011730), RUNE_C(0x011739), NT_DECIMAL}, + {RUNE_C(0x01173A), RUNE_C(0x01173B), NT_NUMERIC}, + {RUNE_C(0x0118E0), RUNE_C(0x0118E9), NT_DECIMAL}, + {RUNE_C(0x0118EA), RUNE_C(0x0118F2), NT_NUMERIC}, + {RUNE_C(0x011950), RUNE_C(0x011959), NT_DECIMAL}, + {RUNE_C(0x011C50), RUNE_C(0x011C59), NT_DECIMAL}, + {RUNE_C(0x011C5A), RUNE_C(0x011C6C), NT_NUMERIC}, + {RUNE_C(0x011D50), RUNE_C(0x011D59), NT_DECIMAL}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9), NT_DECIMAL}, + {RUNE_C(0x011F50), RUNE_C(0x011F59), NT_DECIMAL}, + {RUNE_C(0x011FC0), RUNE_C(0x011FD4), NT_NUMERIC}, + {RUNE_C(0x012400), RUNE_C(0x01246E), NT_NUMERIC}, + {RUNE_C(0x016A60), RUNE_C(0x016A69), NT_DECIMAL}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9), NT_DECIMAL}, + {RUNE_C(0x016B50), RUNE_C(0x016B59), NT_DECIMAL}, + {RUNE_C(0x016B5B), RUNE_C(0x016B61), NT_NUMERIC}, + {RUNE_C(0x016E80), RUNE_C(0x016E96), NT_NUMERIC}, + {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3), NT_NUMERIC}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3), NT_NUMERIC}, + {RUNE_C(0x01D360), RUNE_C(0x01D378), NT_NUMERIC}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF), NT_DECIMAL}, + {RUNE_C(0x01E140), RUNE_C(0x01E149), NT_DECIMAL}, + {RUNE_C(0x01E2F0), RUNE_C(0x01E2F9), NT_DECIMAL}, + {RUNE_C(0x01E4F0), RUNE_C(0x01E4F9), NT_DECIMAL}, + {RUNE_C(0x01E8C7), RUNE_C(0x01E8CF), NT_NUMERIC}, + {RUNE_C(0x01E950), RUNE_C(0x01E959), NT_DECIMAL}, + {RUNE_C(0x01EC71), RUNE_C(0x01ECAB), NT_NUMERIC}, + {RUNE_C(0x01ECAD), RUNE_C(0x01ECAF), NT_NUMERIC}, + {RUNE_C(0x01ECB1), RUNE_C(0x01ECB4), NT_NUMERIC}, + {RUNE_C(0x01ED01), RUNE_C(0x01ED2D), NT_NUMERIC}, + {RUNE_C(0x01ED2F), RUNE_C(0x01ED3D), NT_NUMERIC}, + {RUNE_C(0x01F100), RUNE_C(0x01F10A), NT_DIGIT}, + {RUNE_C(0x01F10B), RUNE_C(0x01F10C), NT_NUMERIC}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9), NT_DECIMAL}, + {RUNE_C(0x020001), RUNE_C(0x020001), NT_NUMERIC}, + {RUNE_C(0x020064), RUNE_C(0x020064), NT_NUMERIC}, + {RUNE_C(0x0200E2), RUNE_C(0x0200E2), NT_NUMERIC}, + {RUNE_C(0x020121), RUNE_C(0x020121), NT_NUMERIC}, + {RUNE_C(0x02092A), RUNE_C(0x02092A), NT_NUMERIC}, + {RUNE_C(0x020983), RUNE_C(0x020983), NT_NUMERIC}, + {RUNE_C(0x02098C), RUNE_C(0x02098C), NT_NUMERIC}, + {RUNE_C(0x02099C), RUNE_C(0x02099C), NT_NUMERIC}, + {RUNE_C(0x020AEA), RUNE_C(0x020AEA), NT_NUMERIC}, + {RUNE_C(0x020AFD), RUNE_C(0x020AFD), NT_NUMERIC}, + {RUNE_C(0x020B19), RUNE_C(0x020B19), NT_NUMERIC}, + {RUNE_C(0x022390), RUNE_C(0x022390), NT_NUMERIC}, + {RUNE_C(0x022998), RUNE_C(0x022998), NT_NUMERIC}, + {RUNE_C(0x023B1B), RUNE_C(0x023B1B), NT_NUMERIC}, + {RUNE_C(0x02626D), RUNE_C(0x02626D), NT_NUMERIC}, + {RUNE_C(0x02F890), RUNE_C(0x02F890), NT_NUMERIC}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_NT_H */ diff --git a/vendor/librune/include/internal/rtype/nv.h b/vendor/librune/include/internal/rtype/nv.h new file mode 100644 index 0000000..1eb88fb --- /dev/null +++ b/vendor/librune/include/internal/rtype/nv.h @@ -0,0 +1,1941 @@ +/* This file is autogenerated by gen/rtype-nv; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_NV_H +#define RUNE_INTERNAL_RTYPE_NV_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const struct { + rune key; + double val; +} rtype_nv_tbl[] = { + {RUNE_C(0x000030), (double)0}, + {RUNE_C(0x000031), (double)1}, + {RUNE_C(0x000032), (double)2}, + {RUNE_C(0x000033), (double)3}, + {RUNE_C(0x000034), (double)4}, + {RUNE_C(0x000035), (double)5}, + {RUNE_C(0x000036), (double)6}, + {RUNE_C(0x000037), (double)7}, + {RUNE_C(0x000038), (double)8}, + {RUNE_C(0x000039), (double)9}, + {RUNE_C(0x0000B2), (double)2}, + {RUNE_C(0x0000B3), (double)3}, + {RUNE_C(0x0000B9), (double)1}, + {RUNE_C(0x0000BC), (double)1/4}, + {RUNE_C(0x0000BD), (double)1/2}, + {RUNE_C(0x0000BE), (double)3/4}, + {RUNE_C(0x000660), (double)0}, + {RUNE_C(0x000661), (double)1}, + {RUNE_C(0x000662), (double)2}, + {RUNE_C(0x000663), (double)3}, + {RUNE_C(0x000664), (double)4}, + {RUNE_C(0x000665), (double)5}, + {RUNE_C(0x000666), (double)6}, + {RUNE_C(0x000667), (double)7}, + {RUNE_C(0x000668), (double)8}, + {RUNE_C(0x000669), (double)9}, + {RUNE_C(0x0006F0), (double)0}, + {RUNE_C(0x0006F1), (double)1}, + {RUNE_C(0x0006F2), (double)2}, + {RUNE_C(0x0006F3), (double)3}, + {RUNE_C(0x0006F4), (double)4}, + {RUNE_C(0x0006F5), (double)5}, + {RUNE_C(0x0006F6), (double)6}, + {RUNE_C(0x0006F7), (double)7}, + {RUNE_C(0x0006F8), (double)8}, + {RUNE_C(0x0006F9), (double)9}, + {RUNE_C(0x0007C0), (double)0}, + {RUNE_C(0x0007C1), (double)1}, + {RUNE_C(0x0007C2), (double)2}, + {RUNE_C(0x0007C3), (double)3}, + {RUNE_C(0x0007C4), (double)4}, + {RUNE_C(0x0007C5), (double)5}, + {RUNE_C(0x0007C6), (double)6}, + {RUNE_C(0x0007C7), (double)7}, + {RUNE_C(0x0007C8), (double)8}, + {RUNE_C(0x0007C9), (double)9}, + {RUNE_C(0x000966), (double)0}, + {RUNE_C(0x000967), (double)1}, + {RUNE_C(0x000968), (double)2}, + {RUNE_C(0x000969), (double)3}, + {RUNE_C(0x00096A), (double)4}, + {RUNE_C(0x00096B), (double)5}, + {RUNE_C(0x00096C), (double)6}, + {RUNE_C(0x00096D), (double)7}, + {RUNE_C(0x00096E), (double)8}, + {RUNE_C(0x00096F), (double)9}, + {RUNE_C(0x0009E6), (double)0}, + {RUNE_C(0x0009E7), (double)1}, + {RUNE_C(0x0009E8), (double)2}, + {RUNE_C(0x0009E9), (double)3}, + {RUNE_C(0x0009EA), (double)4}, + {RUNE_C(0x0009EB), (double)5}, + {RUNE_C(0x0009EC), (double)6}, + {RUNE_C(0x0009ED), (double)7}, + {RUNE_C(0x0009EE), (double)8}, + {RUNE_C(0x0009EF), (double)9}, + {RUNE_C(0x0009F4), (double)1/16}, + {RUNE_C(0x0009F5), (double)1/8}, + {RUNE_C(0x0009F6), (double)3/16}, + {RUNE_C(0x0009F7), (double)1/4}, + {RUNE_C(0x0009F8), (double)3/4}, + {RUNE_C(0x0009F9), (double)16}, + {RUNE_C(0x000A66), (double)0}, + {RUNE_C(0x000A67), (double)1}, + {RUNE_C(0x000A68), (double)2}, + {RUNE_C(0x000A69), (double)3}, + {RUNE_C(0x000A6A), (double)4}, + {RUNE_C(0x000A6B), (double)5}, + {RUNE_C(0x000A6C), (double)6}, + {RUNE_C(0x000A6D), (double)7}, + {RUNE_C(0x000A6E), (double)8}, + {RUNE_C(0x000A6F), (double)9}, + {RUNE_C(0x000AE6), (double)0}, + {RUNE_C(0x000AE7), (double)1}, + {RUNE_C(0x000AE8), (double)2}, + {RUNE_C(0x000AE9), (double)3}, + {RUNE_C(0x000AEA), (double)4}, + {RUNE_C(0x000AEB), (double)5}, + {RUNE_C(0x000AEC), (double)6}, + {RUNE_C(0x000AED), (double)7}, + {RUNE_C(0x000AEE), (double)8}, + {RUNE_C(0x000AEF), (double)9}, + {RUNE_C(0x000B66), (double)0}, + {RUNE_C(0x000B67), (double)1}, + {RUNE_C(0x000B68), (double)2}, + {RUNE_C(0x000B69), (double)3}, + {RUNE_C(0x000B6A), (double)4}, + {RUNE_C(0x000B6B), (double)5}, + {RUNE_C(0x000B6C), (double)6}, + {RUNE_C(0x000B6D), (double)7}, + {RUNE_C(0x000B6E), (double)8}, + {RUNE_C(0x000B6F), (double)9}, + {RUNE_C(0x000B72), (double)1/4}, + {RUNE_C(0x000B73), (double)1/2}, + {RUNE_C(0x000B74), (double)3/4}, + {RUNE_C(0x000B75), (double)1/16}, + {RUNE_C(0x000B76), (double)1/8}, + {RUNE_C(0x000B77), (double)3/16}, + {RUNE_C(0x000BE6), (double)0}, + {RUNE_C(0x000BE7), (double)1}, + {RUNE_C(0x000BE8), (double)2}, + {RUNE_C(0x000BE9), (double)3}, + {RUNE_C(0x000BEA), (double)4}, + {RUNE_C(0x000BEB), (double)5}, + {RUNE_C(0x000BEC), (double)6}, + {RUNE_C(0x000BED), (double)7}, + {RUNE_C(0x000BEE), (double)8}, + {RUNE_C(0x000BEF), (double)9}, + {RUNE_C(0x000BF0), (double)10}, + {RUNE_C(0x000BF1), (double)100}, + {RUNE_C(0x000BF2), (double)1000}, + {RUNE_C(0x000C66), (double)0}, + {RUNE_C(0x000C67), (double)1}, + {RUNE_C(0x000C68), (double)2}, + {RUNE_C(0x000C69), (double)3}, + {RUNE_C(0x000C6A), (double)4}, + {RUNE_C(0x000C6B), (double)5}, + {RUNE_C(0x000C6C), (double)6}, + {RUNE_C(0x000C6D), (double)7}, + {RUNE_C(0x000C6E), (double)8}, + {RUNE_C(0x000C6F), (double)9}, + {RUNE_C(0x000C78), (double)0}, + {RUNE_C(0x000C79), (double)1}, + {RUNE_C(0x000C7A), (double)2}, + {RUNE_C(0x000C7B), (double)3}, + {RUNE_C(0x000C7C), (double)1}, + {RUNE_C(0x000C7D), (double)2}, + {RUNE_C(0x000C7E), (double)3}, + {RUNE_C(0x000CE6), (double)0}, + {RUNE_C(0x000CE7), (double)1}, + {RUNE_C(0x000CE8), (double)2}, + {RUNE_C(0x000CE9), (double)3}, + {RUNE_C(0x000CEA), (double)4}, + {RUNE_C(0x000CEB), (double)5}, + {RUNE_C(0x000CEC), (double)6}, + {RUNE_C(0x000CED), (double)7}, + {RUNE_C(0x000CEE), (double)8}, + {RUNE_C(0x000CEF), (double)9}, + {RUNE_C(0x000D58), (double)1/160}, + {RUNE_C(0x000D59), (double)1/40}, + {RUNE_C(0x000D5A), (double)3/80}, + {RUNE_C(0x000D5B), (double)1/20}, + {RUNE_C(0x000D5C), (double)1/10}, + {RUNE_C(0x000D5D), (double)3/20}, + {RUNE_C(0x000D5E), (double)1/5}, + {RUNE_C(0x000D66), (double)0}, + {RUNE_C(0x000D67), (double)1}, + {RUNE_C(0x000D68), (double)2}, + {RUNE_C(0x000D69), (double)3}, + {RUNE_C(0x000D6A), (double)4}, + {RUNE_C(0x000D6B), (double)5}, + {RUNE_C(0x000D6C), (double)6}, + {RUNE_C(0x000D6D), (double)7}, + {RUNE_C(0x000D6E), (double)8}, + {RUNE_C(0x000D6F), (double)9}, + {RUNE_C(0x000D70), (double)10}, + {RUNE_C(0x000D71), (double)100}, + {RUNE_C(0x000D72), (double)1000}, + {RUNE_C(0x000D73), (double)1/4}, + {RUNE_C(0x000D74), (double)1/2}, + {RUNE_C(0x000D75), (double)3/4}, + {RUNE_C(0x000D76), (double)1/16}, + {RUNE_C(0x000D77), (double)1/8}, + {RUNE_C(0x000D78), (double)3/16}, + {RUNE_C(0x000DE6), (double)0}, + {RUNE_C(0x000DE7), (double)1}, + {RUNE_C(0x000DE8), (double)2}, + {RUNE_C(0x000DE9), (double)3}, + {RUNE_C(0x000DEA), (double)4}, + {RUNE_C(0x000DEB), (double)5}, + {RUNE_C(0x000DEC), (double)6}, + {RUNE_C(0x000DED), (double)7}, + {RUNE_C(0x000DEE), (double)8}, + {RUNE_C(0x000DEF), (double)9}, + {RUNE_C(0x000E50), (double)0}, + {RUNE_C(0x000E51), (double)1}, + {RUNE_C(0x000E52), (double)2}, + {RUNE_C(0x000E53), (double)3}, + {RUNE_C(0x000E54), (double)4}, + {RUNE_C(0x000E55), (double)5}, + {RUNE_C(0x000E56), (double)6}, + {RUNE_C(0x000E57), (double)7}, + {RUNE_C(0x000E58), (double)8}, + {RUNE_C(0x000E59), (double)9}, + {RUNE_C(0x000ED0), (double)0}, + {RUNE_C(0x000ED1), (double)1}, + {RUNE_C(0x000ED2), (double)2}, + {RUNE_C(0x000ED3), (double)3}, + {RUNE_C(0x000ED4), (double)4}, + {RUNE_C(0x000ED5), (double)5}, + {RUNE_C(0x000ED6), (double)6}, + {RUNE_C(0x000ED7), (double)7}, + {RUNE_C(0x000ED8), (double)8}, + {RUNE_C(0x000ED9), (double)9}, + {RUNE_C(0x000F20), (double)0}, + {RUNE_C(0x000F21), (double)1}, + {RUNE_C(0x000F22), (double)2}, + {RUNE_C(0x000F23), (double)3}, + {RUNE_C(0x000F24), (double)4}, + {RUNE_C(0x000F25), (double)5}, + {RUNE_C(0x000F26), (double)6}, + {RUNE_C(0x000F27), (double)7}, + {RUNE_C(0x000F28), (double)8}, + {RUNE_C(0x000F29), (double)9}, + {RUNE_C(0x000F2A), (double)1/2}, + {RUNE_C(0x000F2B), (double)3/2}, + {RUNE_C(0x000F2C), (double)5/2}, + {RUNE_C(0x000F2D), (double)7/2}, + {RUNE_C(0x000F2E), (double)9/2}, + {RUNE_C(0x000F2F), (double)11/2}, + {RUNE_C(0x000F30), (double)13/2}, + {RUNE_C(0x000F31), (double)15/2}, + {RUNE_C(0x000F32), (double)17/2}, + {RUNE_C(0x000F33), (double)-1/2}, + {RUNE_C(0x001040), (double)0}, + {RUNE_C(0x001041), (double)1}, + {RUNE_C(0x001042), (double)2}, + {RUNE_C(0x001043), (double)3}, + {RUNE_C(0x001044), (double)4}, + {RUNE_C(0x001045), (double)5}, + {RUNE_C(0x001046), (double)6}, + {RUNE_C(0x001047), (double)7}, + {RUNE_C(0x001048), (double)8}, + {RUNE_C(0x001049), (double)9}, + {RUNE_C(0x001090), (double)0}, + {RUNE_C(0x001091), (double)1}, + {RUNE_C(0x001092), (double)2}, + {RUNE_C(0x001093), (double)3}, + {RUNE_C(0x001094), (double)4}, + {RUNE_C(0x001095), (double)5}, + {RUNE_C(0x001096), (double)6}, + {RUNE_C(0x001097), (double)7}, + {RUNE_C(0x001098), (double)8}, + {RUNE_C(0x001099), (double)9}, + {RUNE_C(0x001369), (double)1}, + {RUNE_C(0x00136A), (double)2}, + {RUNE_C(0x00136B), (double)3}, + {RUNE_C(0x00136C), (double)4}, + {RUNE_C(0x00136D), (double)5}, + {RUNE_C(0x00136E), (double)6}, + {RUNE_C(0x00136F), (double)7}, + {RUNE_C(0x001370), (double)8}, + {RUNE_C(0x001371), (double)9}, + {RUNE_C(0x001372), (double)10}, + {RUNE_C(0x001373), (double)20}, + {RUNE_C(0x001374), (double)30}, + {RUNE_C(0x001375), (double)40}, + {RUNE_C(0x001376), (double)50}, + {RUNE_C(0x001377), (double)60}, + {RUNE_C(0x001378), (double)70}, + {RUNE_C(0x001379), (double)80}, + {RUNE_C(0x00137A), (double)90}, + {RUNE_C(0x00137B), (double)100}, + {RUNE_C(0x00137C), (double)10000}, + {RUNE_C(0x0016EE), (double)17}, + {RUNE_C(0x0016EF), (double)18}, + {RUNE_C(0x0016F0), (double)19}, + {RUNE_C(0x0017E0), (double)0}, + {RUNE_C(0x0017E1), (double)1}, + {RUNE_C(0x0017E2), (double)2}, + {RUNE_C(0x0017E3), (double)3}, + {RUNE_C(0x0017E4), (double)4}, + {RUNE_C(0x0017E5), (double)5}, + {RUNE_C(0x0017E6), (double)6}, + {RUNE_C(0x0017E7), (double)7}, + {RUNE_C(0x0017E8), (double)8}, + {RUNE_C(0x0017E9), (double)9}, + {RUNE_C(0x0017F0), (double)0}, + {RUNE_C(0x0017F1), (double)1}, + {RUNE_C(0x0017F2), (double)2}, + {RUNE_C(0x0017F3), (double)3}, + {RUNE_C(0x0017F4), (double)4}, + {RUNE_C(0x0017F5), (double)5}, + {RUNE_C(0x0017F6), (double)6}, + {RUNE_C(0x0017F7), (double)7}, + {RUNE_C(0x0017F8), (double)8}, + {RUNE_C(0x0017F9), (double)9}, + {RUNE_C(0x001810), (double)0}, + {RUNE_C(0x001811), (double)1}, + {RUNE_C(0x001812), (double)2}, + {RUNE_C(0x001813), (double)3}, + {RUNE_C(0x001814), (double)4}, + {RUNE_C(0x001815), (double)5}, + {RUNE_C(0x001816), (double)6}, + {RUNE_C(0x001817), (double)7}, + {RUNE_C(0x001818), (double)8}, + {RUNE_C(0x001819), (double)9}, + {RUNE_C(0x001946), (double)0}, + {RUNE_C(0x001947), (double)1}, + {RUNE_C(0x001948), (double)2}, + {RUNE_C(0x001949), (double)3}, + {RUNE_C(0x00194A), (double)4}, + {RUNE_C(0x00194B), (double)5}, + {RUNE_C(0x00194C), (double)6}, + {RUNE_C(0x00194D), (double)7}, + {RUNE_C(0x00194E), (double)8}, + {RUNE_C(0x00194F), (double)9}, + {RUNE_C(0x0019D0), (double)0}, + {RUNE_C(0x0019D1), (double)1}, + {RUNE_C(0x0019D2), (double)2}, + {RUNE_C(0x0019D3), (double)3}, + {RUNE_C(0x0019D4), (double)4}, + {RUNE_C(0x0019D5), (double)5}, + {RUNE_C(0x0019D6), (double)6}, + {RUNE_C(0x0019D7), (double)7}, + {RUNE_C(0x0019D8), (double)8}, + {RUNE_C(0x0019D9), (double)9}, + {RUNE_C(0x0019DA), (double)1}, + {RUNE_C(0x001A80), (double)0}, + {RUNE_C(0x001A81), (double)1}, + {RUNE_C(0x001A82), (double)2}, + {RUNE_C(0x001A83), (double)3}, + {RUNE_C(0x001A84), (double)4}, + {RUNE_C(0x001A85), (double)5}, + {RUNE_C(0x001A86), (double)6}, + {RUNE_C(0x001A87), (double)7}, + {RUNE_C(0x001A88), (double)8}, + {RUNE_C(0x001A89), (double)9}, + {RUNE_C(0x001A90), (double)0}, + {RUNE_C(0x001A91), (double)1}, + {RUNE_C(0x001A92), (double)2}, + {RUNE_C(0x001A93), (double)3}, + {RUNE_C(0x001A94), (double)4}, + {RUNE_C(0x001A95), (double)5}, + {RUNE_C(0x001A96), (double)6}, + {RUNE_C(0x001A97), (double)7}, + {RUNE_C(0x001A98), (double)8}, + {RUNE_C(0x001A99), (double)9}, + {RUNE_C(0x001B50), (double)0}, + {RUNE_C(0x001B51), (double)1}, + {RUNE_C(0x001B52), (double)2}, + {RUNE_C(0x001B53), (double)3}, + {RUNE_C(0x001B54), (double)4}, + {RUNE_C(0x001B55), (double)5}, + {RUNE_C(0x001B56), (double)6}, + {RUNE_C(0x001B57), (double)7}, + {RUNE_C(0x001B58), (double)8}, + {RUNE_C(0x001B59), (double)9}, + {RUNE_C(0x001BB0), (double)0}, + {RUNE_C(0x001BB1), (double)1}, + {RUNE_C(0x001BB2), (double)2}, + {RUNE_C(0x001BB3), (double)3}, + {RUNE_C(0x001BB4), (double)4}, + {RUNE_C(0x001BB5), (double)5}, + {RUNE_C(0x001BB6), (double)6}, + {RUNE_C(0x001BB7), (double)7}, + {RUNE_C(0x001BB8), (double)8}, + {RUNE_C(0x001BB9), (double)9}, + {RUNE_C(0x001C40), (double)0}, + {RUNE_C(0x001C41), (double)1}, + {RUNE_C(0x001C42), (double)2}, + {RUNE_C(0x001C43), (double)3}, + {RUNE_C(0x001C44), (double)4}, + {RUNE_C(0x001C45), (double)5}, + {RUNE_C(0x001C46), (double)6}, + {RUNE_C(0x001C47), (double)7}, + {RUNE_C(0x001C48), (double)8}, + {RUNE_C(0x001C49), (double)9}, + {RUNE_C(0x001C50), (double)0}, + {RUNE_C(0x001C51), (double)1}, + {RUNE_C(0x001C52), (double)2}, + {RUNE_C(0x001C53), (double)3}, + {RUNE_C(0x001C54), (double)4}, + {RUNE_C(0x001C55), (double)5}, + {RUNE_C(0x001C56), (double)6}, + {RUNE_C(0x001C57), (double)7}, + {RUNE_C(0x001C58), (double)8}, + {RUNE_C(0x001C59), (double)9}, + {RUNE_C(0x002070), (double)0}, + {RUNE_C(0x002074), (double)4}, + {RUNE_C(0x002075), (double)5}, + {RUNE_C(0x002076), (double)6}, + {RUNE_C(0x002077), (double)7}, + {RUNE_C(0x002078), (double)8}, + {RUNE_C(0x002079), (double)9}, + {RUNE_C(0x002080), (double)0}, + {RUNE_C(0x002081), (double)1}, + {RUNE_C(0x002082), (double)2}, + {RUNE_C(0x002083), (double)3}, + {RUNE_C(0x002084), (double)4}, + {RUNE_C(0x002085), (double)5}, + {RUNE_C(0x002086), (double)6}, + {RUNE_C(0x002087), (double)7}, + {RUNE_C(0x002088), (double)8}, + {RUNE_C(0x002089), (double)9}, + {RUNE_C(0x002150), (double)1/7}, + {RUNE_C(0x002151), (double)1/9}, + {RUNE_C(0x002152), (double)1/10}, + {RUNE_C(0x002153), (double)1/3}, + {RUNE_C(0x002154), (double)2/3}, + {RUNE_C(0x002155), (double)1/5}, + {RUNE_C(0x002156), (double)2/5}, + {RUNE_C(0x002157), (double)3/5}, + {RUNE_C(0x002158), (double)4/5}, + {RUNE_C(0x002159), (double)1/6}, + {RUNE_C(0x00215A), (double)5/6}, + {RUNE_C(0x00215B), (double)1/8}, + {RUNE_C(0x00215C), (double)3/8}, + {RUNE_C(0x00215D), (double)5/8}, + {RUNE_C(0x00215E), (double)7/8}, + {RUNE_C(0x00215F), (double)1}, + {RUNE_C(0x002160), (double)1}, + {RUNE_C(0x002161), (double)2}, + {RUNE_C(0x002162), (double)3}, + {RUNE_C(0x002163), (double)4}, + {RUNE_C(0x002164), (double)5}, + {RUNE_C(0x002165), (double)6}, + {RUNE_C(0x002166), (double)7}, + {RUNE_C(0x002167), (double)8}, + {RUNE_C(0x002168), (double)9}, + {RUNE_C(0x002169), (double)10}, + {RUNE_C(0x00216A), (double)11}, + {RUNE_C(0x00216B), (double)12}, + {RUNE_C(0x00216C), (double)50}, + {RUNE_C(0x00216D), (double)100}, + {RUNE_C(0x00216E), (double)500}, + {RUNE_C(0x00216F), (double)1000}, + {RUNE_C(0x002170), (double)1}, + {RUNE_C(0x002171), (double)2}, + {RUNE_C(0x002172), (double)3}, + {RUNE_C(0x002173), (double)4}, + {RUNE_C(0x002174), (double)5}, + {RUNE_C(0x002175), (double)6}, + {RUNE_C(0x002176), (double)7}, + {RUNE_C(0x002177), (double)8}, + {RUNE_C(0x002178), (double)9}, + {RUNE_C(0x002179), (double)10}, + {RUNE_C(0x00217A), (double)11}, + {RUNE_C(0x00217B), (double)12}, + {RUNE_C(0x00217C), (double)50}, + {RUNE_C(0x00217D), (double)100}, + {RUNE_C(0x00217E), (double)500}, + {RUNE_C(0x00217F), (double)1000}, + {RUNE_C(0x002180), (double)1000}, + {RUNE_C(0x002181), (double)5000}, + {RUNE_C(0x002182), (double)10000}, + {RUNE_C(0x002185), (double)6}, + {RUNE_C(0x002186), (double)50}, + {RUNE_C(0x002187), (double)50000}, + {RUNE_C(0x002188), (double)100000}, + {RUNE_C(0x002189), (double)0}, + {RUNE_C(0x002460), (double)1}, + {RUNE_C(0x002461), (double)2}, + {RUNE_C(0x002462), (double)3}, + {RUNE_C(0x002463), (double)4}, + {RUNE_C(0x002464), (double)5}, + {RUNE_C(0x002465), (double)6}, + {RUNE_C(0x002466), (double)7}, + {RUNE_C(0x002467), (double)8}, + {RUNE_C(0x002468), (double)9}, + {RUNE_C(0x002469), (double)10}, + {RUNE_C(0x00246A), (double)11}, + {RUNE_C(0x00246B), (double)12}, + {RUNE_C(0x00246C), (double)13}, + {RUNE_C(0x00246D), (double)14}, + {RUNE_C(0x00246E), (double)15}, + {RUNE_C(0x00246F), (double)16}, + {RUNE_C(0x002470), (double)17}, + {RUNE_C(0x002471), (double)18}, + {RUNE_C(0x002472), (double)19}, + {RUNE_C(0x002473), (double)20}, + {RUNE_C(0x002474), (double)1}, + {RUNE_C(0x002475), (double)2}, + {RUNE_C(0x002476), (double)3}, + {RUNE_C(0x002477), (double)4}, + {RUNE_C(0x002478), (double)5}, + {RUNE_C(0x002479), (double)6}, + {RUNE_C(0x00247A), (double)7}, + {RUNE_C(0x00247B), (double)8}, + {RUNE_C(0x00247C), (double)9}, + {RUNE_C(0x00247D), (double)10}, + {RUNE_C(0x00247E), (double)11}, + {RUNE_C(0x00247F), (double)12}, + {RUNE_C(0x002480), (double)13}, + {RUNE_C(0x002481), (double)14}, + {RUNE_C(0x002482), (double)15}, + {RUNE_C(0x002483), (double)16}, + {RUNE_C(0x002484), (double)17}, + {RUNE_C(0x002485), (double)18}, + {RUNE_C(0x002486), (double)19}, + {RUNE_C(0x002487), (double)20}, + {RUNE_C(0x002488), (double)1}, + {RUNE_C(0x002489), (double)2}, + {RUNE_C(0x00248A), (double)3}, + {RUNE_C(0x00248B), (double)4}, + {RUNE_C(0x00248C), (double)5}, + {RUNE_C(0x00248D), (double)6}, + {RUNE_C(0x00248E), (double)7}, + {RUNE_C(0x00248F), (double)8}, + {RUNE_C(0x002490), (double)9}, + {RUNE_C(0x002491), (double)10}, + {RUNE_C(0x002492), (double)11}, + {RUNE_C(0x002493), (double)12}, + {RUNE_C(0x002494), (double)13}, + {RUNE_C(0x002495), (double)14}, + {RUNE_C(0x002496), (double)15}, + {RUNE_C(0x002497), (double)16}, + {RUNE_C(0x002498), (double)17}, + {RUNE_C(0x002499), (double)18}, + {RUNE_C(0x00249A), (double)19}, + {RUNE_C(0x00249B), (double)20}, + {RUNE_C(0x0024EA), (double)0}, + {RUNE_C(0x0024EB), (double)11}, + {RUNE_C(0x0024EC), (double)12}, + {RUNE_C(0x0024ED), (double)13}, + {RUNE_C(0x0024EE), (double)14}, + {RUNE_C(0x0024EF), (double)15}, + {RUNE_C(0x0024F0), (double)16}, + {RUNE_C(0x0024F1), (double)17}, + {RUNE_C(0x0024F2), (double)18}, + {RUNE_C(0x0024F3), (double)19}, + {RUNE_C(0x0024F4), (double)20}, + {RUNE_C(0x0024F5), (double)1}, + {RUNE_C(0x0024F6), (double)2}, + {RUNE_C(0x0024F7), (double)3}, + {RUNE_C(0x0024F8), (double)4}, + {RUNE_C(0x0024F9), (double)5}, + {RUNE_C(0x0024FA), (double)6}, + {RUNE_C(0x0024FB), (double)7}, + {RUNE_C(0x0024FC), (double)8}, + {RUNE_C(0x0024FD), (double)9}, + {RUNE_C(0x0024FE), (double)10}, + {RUNE_C(0x0024FF), (double)0}, + {RUNE_C(0x002776), (double)1}, + {RUNE_C(0x002777), (double)2}, + {RUNE_C(0x002778), (double)3}, + {RUNE_C(0x002779), (double)4}, + {RUNE_C(0x00277A), (double)5}, + {RUNE_C(0x00277B), (double)6}, + {RUNE_C(0x00277C), (double)7}, + {RUNE_C(0x00277D), (double)8}, + {RUNE_C(0x00277E), (double)9}, + {RUNE_C(0x00277F), (double)10}, + {RUNE_C(0x002780), (double)1}, + {RUNE_C(0x002781), (double)2}, + {RUNE_C(0x002782), (double)3}, + {RUNE_C(0x002783), (double)4}, + {RUNE_C(0x002784), (double)5}, + {RUNE_C(0x002785), (double)6}, + {RUNE_C(0x002786), (double)7}, + {RUNE_C(0x002787), (double)8}, + {RUNE_C(0x002788), (double)9}, + {RUNE_C(0x002789), (double)10}, + {RUNE_C(0x00278A), (double)1}, + {RUNE_C(0x00278B), (double)2}, + {RUNE_C(0x00278C), (double)3}, + {RUNE_C(0x00278D), (double)4}, + {RUNE_C(0x00278E), (double)5}, + {RUNE_C(0x00278F), (double)6}, + {RUNE_C(0x002790), (double)7}, + {RUNE_C(0x002791), (double)8}, + {RUNE_C(0x002792), (double)9}, + {RUNE_C(0x002793), (double)10}, + {RUNE_C(0x002CFD), (double)1/2}, + {RUNE_C(0x003007), (double)0}, + {RUNE_C(0x003021), (double)1}, + {RUNE_C(0x003022), (double)2}, + {RUNE_C(0x003023), (double)3}, + {RUNE_C(0x003024), (double)4}, + {RUNE_C(0x003025), (double)5}, + {RUNE_C(0x003026), (double)6}, + {RUNE_C(0x003027), (double)7}, + {RUNE_C(0x003028), (double)8}, + {RUNE_C(0x003029), (double)9}, + {RUNE_C(0x003038), (double)10}, + {RUNE_C(0x003039), (double)20}, + {RUNE_C(0x00303A), (double)30}, + {RUNE_C(0x003192), (double)1}, + {RUNE_C(0x003193), (double)2}, + {RUNE_C(0x003194), (double)3}, + {RUNE_C(0x003195), (double)4}, + {RUNE_C(0x003220), (double)1}, + {RUNE_C(0x003221), (double)2}, + {RUNE_C(0x003222), (double)3}, + {RUNE_C(0x003223), (double)4}, + {RUNE_C(0x003224), (double)5}, + {RUNE_C(0x003225), (double)6}, + {RUNE_C(0x003226), (double)7}, + {RUNE_C(0x003227), (double)8}, + {RUNE_C(0x003228), (double)9}, + {RUNE_C(0x003229), (double)10}, + {RUNE_C(0x003248), (double)10}, + {RUNE_C(0x003249), (double)20}, + {RUNE_C(0x00324A), (double)30}, + {RUNE_C(0x00324B), (double)40}, + {RUNE_C(0x00324C), (double)50}, + {RUNE_C(0x00324D), (double)60}, + {RUNE_C(0x00324E), (double)70}, + {RUNE_C(0x00324F), (double)80}, + {RUNE_C(0x003251), (double)21}, + {RUNE_C(0x003252), (double)22}, + {RUNE_C(0x003253), (double)23}, + {RUNE_C(0x003254), (double)24}, + {RUNE_C(0x003255), (double)25}, + {RUNE_C(0x003256), (double)26}, + {RUNE_C(0x003257), (double)27}, + {RUNE_C(0x003258), (double)28}, + {RUNE_C(0x003259), (double)29}, + {RUNE_C(0x00325A), (double)30}, + {RUNE_C(0x00325B), (double)31}, + {RUNE_C(0x00325C), (double)32}, + {RUNE_C(0x00325D), (double)33}, + {RUNE_C(0x00325E), (double)34}, + {RUNE_C(0x00325F), (double)35}, + {RUNE_C(0x003280), (double)1}, + {RUNE_C(0x003281), (double)2}, + {RUNE_C(0x003282), (double)3}, + {RUNE_C(0x003283), (double)4}, + {RUNE_C(0x003284), (double)5}, + {RUNE_C(0x003285), (double)6}, + {RUNE_C(0x003286), (double)7}, + {RUNE_C(0x003287), (double)8}, + {RUNE_C(0x003288), (double)9}, + {RUNE_C(0x003289), (double)10}, + {RUNE_C(0x0032B1), (double)36}, + {RUNE_C(0x0032B2), (double)37}, + {RUNE_C(0x0032B3), (double)38}, + {RUNE_C(0x0032B4), (double)39}, + {RUNE_C(0x0032B5), (double)40}, + {RUNE_C(0x0032B6), (double)41}, + {RUNE_C(0x0032B7), (double)42}, + {RUNE_C(0x0032B8), (double)43}, + {RUNE_C(0x0032B9), (double)44}, + {RUNE_C(0x0032BA), (double)45}, + {RUNE_C(0x0032BB), (double)46}, + {RUNE_C(0x0032BC), (double)47}, + {RUNE_C(0x0032BD), (double)48}, + {RUNE_C(0x0032BE), (double)49}, + {RUNE_C(0x0032BF), (double)50}, + {RUNE_C(0x003405), (double)5}, + {RUNE_C(0x003483), (double)2}, + {RUNE_C(0x00382A), (double)5}, + {RUNE_C(0x003B4D), (double)7}, + {RUNE_C(0x004E00), (double)1}, + {RUNE_C(0x004E03), (double)7}, + {RUNE_C(0x004E07), (double)10000}, + {RUNE_C(0x004E09), (double)3}, + {RUNE_C(0x004E24), (double)2}, + {RUNE_C(0x004E5D), (double)9}, + {RUNE_C(0x004E8C), (double)2}, + {RUNE_C(0x004E94), (double)5}, + {RUNE_C(0x004E96), (double)4}, + {RUNE_C(0x004EAC), (double)10000000000000000}, + {RUNE_C(0x004EBF), (double)100000000}, + {RUNE_C(0x004EC0), (double)10}, + {RUNE_C(0x004EDF), (double)1000}, + {RUNE_C(0x004EE8), (double)3}, + {RUNE_C(0x004F0D), (double)5}, + {RUNE_C(0x004F70), (double)100}, + {RUNE_C(0x004FE9), (double)2}, + {RUNE_C(0x005006), (double)2}, + {RUNE_C(0x005104), (double)100000000}, + {RUNE_C(0x005146), (double)1000000}, + {RUNE_C(0x005169), (double)2}, + {RUNE_C(0x00516B), (double)8}, + {RUNE_C(0x00516D), (double)6}, + {RUNE_C(0x005341), (double)10}, + {RUNE_C(0x005343), (double)1000}, + {RUNE_C(0x005344), (double)20}, + {RUNE_C(0x005345), (double)30}, + {RUNE_C(0x00534C), (double)40}, + {RUNE_C(0x0053C1), (double)3}, + {RUNE_C(0x0053C2), (double)3}, + {RUNE_C(0x0053C3), (double)3}, + {RUNE_C(0x0053C4), (double)3}, + {RUNE_C(0x0056DB), (double)4}, + {RUNE_C(0x0058F1), (double)1}, + {RUNE_C(0x0058F9), (double)1}, + {RUNE_C(0x005E7A), (double)1}, + {RUNE_C(0x005EFE), (double)9}, + {RUNE_C(0x005EFF), (double)20}, + {RUNE_C(0x005F0C), (double)1}, + {RUNE_C(0x005F0D), (double)2}, + {RUNE_C(0x005F0E), (double)3}, + {RUNE_C(0x005F10), (double)2}, + {RUNE_C(0x0062D0), (double)7}, + {RUNE_C(0x0062FE), (double)10}, + {RUNE_C(0x00634C), (double)8}, + {RUNE_C(0x0067D2), (double)7}, + {RUNE_C(0x006D1E), (double)0}, + {RUNE_C(0x006F06), (double)7}, + {RUNE_C(0x007396), (double)9}, + {RUNE_C(0x00767E), (double)100}, + {RUNE_C(0x007695), (double)200}, + {RUNE_C(0x0079ED), (double)1000000000}, + {RUNE_C(0x008086), (double)4}, + {RUNE_C(0x00842C), (double)10000}, + {RUNE_C(0x008CAE), (double)2}, + {RUNE_C(0x008CB3), (double)2}, + {RUNE_C(0x008D30), (double)2}, + {RUNE_C(0x00920E), (double)9}, + {RUNE_C(0x0094A9), (double)9}, + {RUNE_C(0x009621), (double)1000}, + {RUNE_C(0x009646), (double)6}, + {RUNE_C(0x00964C), (double)100}, + {RUNE_C(0x009678), (double)6}, + {RUNE_C(0x0096F6), (double)0}, + {RUNE_C(0x00A620), (double)0}, + {RUNE_C(0x00A621), (double)1}, + {RUNE_C(0x00A622), (double)2}, + {RUNE_C(0x00A623), (double)3}, + {RUNE_C(0x00A624), (double)4}, + {RUNE_C(0x00A625), (double)5}, + {RUNE_C(0x00A626), (double)6}, + {RUNE_C(0x00A627), (double)7}, + {RUNE_C(0x00A628), (double)8}, + {RUNE_C(0x00A629), (double)9}, + {RUNE_C(0x00A6E6), (double)1}, + {RUNE_C(0x00A6E7), (double)2}, + {RUNE_C(0x00A6E8), (double)3}, + {RUNE_C(0x00A6E9), (double)4}, + {RUNE_C(0x00A6EA), (double)5}, + {RUNE_C(0x00A6EB), (double)6}, + {RUNE_C(0x00A6EC), (double)7}, + {RUNE_C(0x00A6ED), (double)8}, + {RUNE_C(0x00A6EE), (double)9}, + {RUNE_C(0x00A6EF), (double)0}, + {RUNE_C(0x00A830), (double)1/4}, + {RUNE_C(0x00A831), (double)1/2}, + {RUNE_C(0x00A832), (double)3/4}, + {RUNE_C(0x00A833), (double)1/16}, + {RUNE_C(0x00A834), (double)1/8}, + {RUNE_C(0x00A835), (double)3/16}, + {RUNE_C(0x00A8D0), (double)0}, + {RUNE_C(0x00A8D1), (double)1}, + {RUNE_C(0x00A8D2), (double)2}, + {RUNE_C(0x00A8D3), (double)3}, + {RUNE_C(0x00A8D4), (double)4}, + {RUNE_C(0x00A8D5), (double)5}, + {RUNE_C(0x00A8D6), (double)6}, + {RUNE_C(0x00A8D7), (double)7}, + {RUNE_C(0x00A8D8), (double)8}, + {RUNE_C(0x00A8D9), (double)9}, + {RUNE_C(0x00A900), (double)0}, + {RUNE_C(0x00A901), (double)1}, + {RUNE_C(0x00A902), (double)2}, + {RUNE_C(0x00A903), (double)3}, + {RUNE_C(0x00A904), (double)4}, + {RUNE_C(0x00A905), (double)5}, + {RUNE_C(0x00A906), (double)6}, + {RUNE_C(0x00A907), (double)7}, + {RUNE_C(0x00A908), (double)8}, + {RUNE_C(0x00A909), (double)9}, + {RUNE_C(0x00A9D0), (double)0}, + {RUNE_C(0x00A9D1), (double)1}, + {RUNE_C(0x00A9D2), (double)2}, + {RUNE_C(0x00A9D3), (double)3}, + {RUNE_C(0x00A9D4), (double)4}, + {RUNE_C(0x00A9D5), (double)5}, + {RUNE_C(0x00A9D6), (double)6}, + {RUNE_C(0x00A9D7), (double)7}, + {RUNE_C(0x00A9D8), (double)8}, + {RUNE_C(0x00A9D9), (double)9}, + {RUNE_C(0x00A9F0), (double)0}, + {RUNE_C(0x00A9F1), (double)1}, + {RUNE_C(0x00A9F2), (double)2}, + {RUNE_C(0x00A9F3), (double)3}, + {RUNE_C(0x00A9F4), (double)4}, + {RUNE_C(0x00A9F5), (double)5}, + {RUNE_C(0x00A9F6), (double)6}, + {RUNE_C(0x00A9F7), (double)7}, + {RUNE_C(0x00A9F8), (double)8}, + {RUNE_C(0x00A9F9), (double)9}, + {RUNE_C(0x00AA50), (double)0}, + {RUNE_C(0x00AA51), (double)1}, + {RUNE_C(0x00AA52), (double)2}, + {RUNE_C(0x00AA53), (double)3}, + {RUNE_C(0x00AA54), (double)4}, + {RUNE_C(0x00AA55), (double)5}, + {RUNE_C(0x00AA56), (double)6}, + {RUNE_C(0x00AA57), (double)7}, + {RUNE_C(0x00AA58), (double)8}, + {RUNE_C(0x00AA59), (double)9}, + {RUNE_C(0x00ABF0), (double)0}, + {RUNE_C(0x00ABF1), (double)1}, + {RUNE_C(0x00ABF2), (double)2}, + {RUNE_C(0x00ABF3), (double)3}, + {RUNE_C(0x00ABF4), (double)4}, + {RUNE_C(0x00ABF5), (double)5}, + {RUNE_C(0x00ABF6), (double)6}, + {RUNE_C(0x00ABF7), (double)7}, + {RUNE_C(0x00ABF8), (double)8}, + {RUNE_C(0x00ABF9), (double)9}, + {RUNE_C(0x00F96B), (double)3}, + {RUNE_C(0x00F973), (double)10}, + {RUNE_C(0x00F978), (double)2}, + {RUNE_C(0x00F9B2), (double)0}, + {RUNE_C(0x00F9D1), (double)6}, + {RUNE_C(0x00F9D3), (double)6}, + {RUNE_C(0x00F9FD), (double)10}, + {RUNE_C(0x00FF10), (double)0}, + {RUNE_C(0x00FF11), (double)1}, + {RUNE_C(0x00FF12), (double)2}, + {RUNE_C(0x00FF13), (double)3}, + {RUNE_C(0x00FF14), (double)4}, + {RUNE_C(0x00FF15), (double)5}, + {RUNE_C(0x00FF16), (double)6}, + {RUNE_C(0x00FF17), (double)7}, + {RUNE_C(0x00FF18), (double)8}, + {RUNE_C(0x00FF19), (double)9}, + {RUNE_C(0x010107), (double)1}, + {RUNE_C(0x010108), (double)2}, + {RUNE_C(0x010109), (double)3}, + {RUNE_C(0x01010A), (double)4}, + {RUNE_C(0x01010B), (double)5}, + {RUNE_C(0x01010C), (double)6}, + {RUNE_C(0x01010D), (double)7}, + {RUNE_C(0x01010E), (double)8}, + {RUNE_C(0x01010F), (double)9}, + {RUNE_C(0x010110), (double)10}, + {RUNE_C(0x010111), (double)20}, + {RUNE_C(0x010112), (double)30}, + {RUNE_C(0x010113), (double)40}, + {RUNE_C(0x010114), (double)50}, + {RUNE_C(0x010115), (double)60}, + {RUNE_C(0x010116), (double)70}, + {RUNE_C(0x010117), (double)80}, + {RUNE_C(0x010118), (double)90}, + {RUNE_C(0x010119), (double)100}, + {RUNE_C(0x01011A), (double)200}, + {RUNE_C(0x01011B), (double)300}, + {RUNE_C(0x01011C), (double)400}, + {RUNE_C(0x01011D), (double)500}, + {RUNE_C(0x01011E), (double)600}, + {RUNE_C(0x01011F), (double)700}, + {RUNE_C(0x010120), (double)800}, + {RUNE_C(0x010121), (double)900}, + {RUNE_C(0x010122), (double)1000}, + {RUNE_C(0x010123), (double)2000}, + {RUNE_C(0x010124), (double)3000}, + {RUNE_C(0x010125), (double)4000}, + {RUNE_C(0x010126), (double)5000}, + {RUNE_C(0x010127), (double)6000}, + {RUNE_C(0x010128), (double)7000}, + {RUNE_C(0x010129), (double)8000}, + {RUNE_C(0x01012A), (double)9000}, + {RUNE_C(0x01012B), (double)10000}, + {RUNE_C(0x01012C), (double)20000}, + {RUNE_C(0x01012D), (double)30000}, + {RUNE_C(0x01012E), (double)40000}, + {RUNE_C(0x01012F), (double)50000}, + {RUNE_C(0x010130), (double)60000}, + {RUNE_C(0x010131), (double)70000}, + {RUNE_C(0x010132), (double)80000}, + {RUNE_C(0x010133), (double)90000}, + {RUNE_C(0x010140), (double)1/4}, + {RUNE_C(0x010141), (double)1/2}, + {RUNE_C(0x010142), (double)1}, + {RUNE_C(0x010143), (double)5}, + {RUNE_C(0x010144), (double)50}, + {RUNE_C(0x010145), (double)500}, + {RUNE_C(0x010146), (double)5000}, + {RUNE_C(0x010147), (double)50000}, + {RUNE_C(0x010148), (double)5}, + {RUNE_C(0x010149), (double)10}, + {RUNE_C(0x01014A), (double)50}, + {RUNE_C(0x01014B), (double)100}, + {RUNE_C(0x01014C), (double)500}, + {RUNE_C(0x01014D), (double)1000}, + {RUNE_C(0x01014E), (double)5000}, + {RUNE_C(0x01014F), (double)5}, + {RUNE_C(0x010150), (double)10}, + {RUNE_C(0x010151), (double)50}, + {RUNE_C(0x010152), (double)100}, + {RUNE_C(0x010153), (double)500}, + {RUNE_C(0x010154), (double)1000}, + {RUNE_C(0x010155), (double)10000}, + {RUNE_C(0x010156), (double)50000}, + {RUNE_C(0x010157), (double)10}, + {RUNE_C(0x010158), (double)1}, + {RUNE_C(0x010159), (double)1}, + {RUNE_C(0x01015A), (double)1}, + {RUNE_C(0x01015B), (double)2}, + {RUNE_C(0x01015C), (double)2}, + {RUNE_C(0x01015D), (double)2}, + {RUNE_C(0x01015E), (double)2}, + {RUNE_C(0x01015F), (double)5}, + {RUNE_C(0x010160), (double)10}, + {RUNE_C(0x010161), (double)10}, + {RUNE_C(0x010162), (double)10}, + {RUNE_C(0x010163), (double)10}, + {RUNE_C(0x010164), (double)10}, + {RUNE_C(0x010165), (double)30}, + {RUNE_C(0x010166), (double)50}, + {RUNE_C(0x010167), (double)50}, + {RUNE_C(0x010168), (double)50}, + {RUNE_C(0x010169), (double)50}, + {RUNE_C(0x01016A), (double)100}, + {RUNE_C(0x01016B), (double)300}, + {RUNE_C(0x01016C), (double)500}, + {RUNE_C(0x01016D), (double)500}, + {RUNE_C(0x01016E), (double)500}, + {RUNE_C(0x01016F), (double)500}, + {RUNE_C(0x010170), (double)500}, + {RUNE_C(0x010171), (double)1000}, + {RUNE_C(0x010172), (double)5000}, + {RUNE_C(0x010173), (double)5}, + {RUNE_C(0x010174), (double)50}, + {RUNE_C(0x010175), (double)1/2}, + {RUNE_C(0x010176), (double)1/2}, + {RUNE_C(0x010177), (double)2/3}, + {RUNE_C(0x010178), (double)3/4}, + {RUNE_C(0x01018A), (double)0}, + {RUNE_C(0x01018B), (double)1/4}, + {RUNE_C(0x0102E1), (double)1}, + {RUNE_C(0x0102E2), (double)2}, + {RUNE_C(0x0102E3), (double)3}, + {RUNE_C(0x0102E4), (double)4}, + {RUNE_C(0x0102E5), (double)5}, + {RUNE_C(0x0102E6), (double)6}, + {RUNE_C(0x0102E7), (double)7}, + {RUNE_C(0x0102E8), (double)8}, + {RUNE_C(0x0102E9), (double)9}, + {RUNE_C(0x0102EA), (double)10}, + {RUNE_C(0x0102EB), (double)20}, + {RUNE_C(0x0102EC), (double)30}, + {RUNE_C(0x0102ED), (double)40}, + {RUNE_C(0x0102EE), (double)50}, + {RUNE_C(0x0102EF), (double)60}, + {RUNE_C(0x0102F0), (double)70}, + {RUNE_C(0x0102F1), (double)80}, + {RUNE_C(0x0102F2), (double)90}, + {RUNE_C(0x0102F3), (double)100}, + {RUNE_C(0x0102F4), (double)200}, + {RUNE_C(0x0102F5), (double)300}, + {RUNE_C(0x0102F6), (double)400}, + {RUNE_C(0x0102F7), (double)500}, + {RUNE_C(0x0102F8), (double)600}, + {RUNE_C(0x0102F9), (double)700}, + {RUNE_C(0x0102FA), (double)800}, + {RUNE_C(0x0102FB), (double)900}, + {RUNE_C(0x010320), (double)1}, + {RUNE_C(0x010321), (double)5}, + {RUNE_C(0x010322), (double)10}, + {RUNE_C(0x010323), (double)50}, + {RUNE_C(0x010341), (double)90}, + {RUNE_C(0x01034A), (double)900}, + {RUNE_C(0x0103D1), (double)1}, + {RUNE_C(0x0103D2), (double)2}, + {RUNE_C(0x0103D3), (double)10}, + {RUNE_C(0x0103D4), (double)20}, + {RUNE_C(0x0103D5), (double)100}, + {RUNE_C(0x0104A0), (double)0}, + {RUNE_C(0x0104A1), (double)1}, + {RUNE_C(0x0104A2), (double)2}, + {RUNE_C(0x0104A3), (double)3}, + {RUNE_C(0x0104A4), (double)4}, + {RUNE_C(0x0104A5), (double)5}, + {RUNE_C(0x0104A6), (double)6}, + {RUNE_C(0x0104A7), (double)7}, + {RUNE_C(0x0104A8), (double)8}, + {RUNE_C(0x0104A9), (double)9}, + {RUNE_C(0x010858), (double)1}, + {RUNE_C(0x010859), (double)2}, + {RUNE_C(0x01085A), (double)3}, + {RUNE_C(0x01085B), (double)10}, + {RUNE_C(0x01085C), (double)20}, + {RUNE_C(0x01085D), (double)100}, + {RUNE_C(0x01085E), (double)1000}, + {RUNE_C(0x01085F), (double)10000}, + {RUNE_C(0x010879), (double)1}, + {RUNE_C(0x01087A), (double)2}, + {RUNE_C(0x01087B), (double)3}, + {RUNE_C(0x01087C), (double)4}, + {RUNE_C(0x01087D), (double)5}, + {RUNE_C(0x01087E), (double)10}, + {RUNE_C(0x01087F), (double)20}, + {RUNE_C(0x0108A7), (double)1}, + {RUNE_C(0x0108A8), (double)2}, + {RUNE_C(0x0108A9), (double)3}, + {RUNE_C(0x0108AA), (double)4}, + {RUNE_C(0x0108AB), (double)4}, + {RUNE_C(0x0108AC), (double)5}, + {RUNE_C(0x0108AD), (double)10}, + {RUNE_C(0x0108AE), (double)20}, + {RUNE_C(0x0108AF), (double)100}, + {RUNE_C(0x0108FB), (double)1}, + {RUNE_C(0x0108FC), (double)5}, + {RUNE_C(0x0108FD), (double)10}, + {RUNE_C(0x0108FE), (double)20}, + {RUNE_C(0x0108FF), (double)100}, + {RUNE_C(0x010916), (double)1}, + {RUNE_C(0x010917), (double)10}, + {RUNE_C(0x010918), (double)20}, + {RUNE_C(0x010919), (double)100}, + {RUNE_C(0x01091A), (double)2}, + {RUNE_C(0x01091B), (double)3}, + {RUNE_C(0x0109BC), (double)11/12}, + {RUNE_C(0x0109BD), (double)1/2}, + {RUNE_C(0x0109C0), (double)1}, + {RUNE_C(0x0109C1), (double)2}, + {RUNE_C(0x0109C2), (double)3}, + {RUNE_C(0x0109C3), (double)4}, + {RUNE_C(0x0109C4), (double)5}, + {RUNE_C(0x0109C5), (double)6}, + {RUNE_C(0x0109C6), (double)7}, + {RUNE_C(0x0109C7), (double)8}, + {RUNE_C(0x0109C8), (double)9}, + {RUNE_C(0x0109C9), (double)10}, + {RUNE_C(0x0109CA), (double)20}, + {RUNE_C(0x0109CB), (double)30}, + {RUNE_C(0x0109CC), (double)40}, + {RUNE_C(0x0109CD), (double)50}, + {RUNE_C(0x0109CE), (double)60}, + {RUNE_C(0x0109CF), (double)70}, + {RUNE_C(0x0109D2), (double)100}, + {RUNE_C(0x0109D3), (double)200}, + {RUNE_C(0x0109D4), (double)300}, + {RUNE_C(0x0109D5), (double)400}, + {RUNE_C(0x0109D6), (double)500}, + {RUNE_C(0x0109D7), (double)600}, + {RUNE_C(0x0109D8), (double)700}, + {RUNE_C(0x0109D9), (double)800}, + {RUNE_C(0x0109DA), (double)900}, + {RUNE_C(0x0109DB), (double)1000}, + {RUNE_C(0x0109DC), (double)2000}, + {RUNE_C(0x0109DD), (double)3000}, + {RUNE_C(0x0109DE), (double)4000}, + {RUNE_C(0x0109DF), (double)5000}, + {RUNE_C(0x0109E0), (double)6000}, + {RUNE_C(0x0109E1), (double)7000}, + {RUNE_C(0x0109E2), (double)8000}, + {RUNE_C(0x0109E3), (double)9000}, + {RUNE_C(0x0109E4), (double)10000}, + {RUNE_C(0x0109E5), (double)20000}, + {RUNE_C(0x0109E6), (double)30000}, + {RUNE_C(0x0109E7), (double)40000}, + {RUNE_C(0x0109E8), (double)50000}, + {RUNE_C(0x0109E9), (double)60000}, + {RUNE_C(0x0109EA), (double)70000}, + {RUNE_C(0x0109EB), (double)80000}, + {RUNE_C(0x0109EC), (double)90000}, + {RUNE_C(0x0109ED), (double)100000}, + {RUNE_C(0x0109EE), (double)200000}, + {RUNE_C(0x0109EF), (double)300000}, + {RUNE_C(0x0109F0), (double)400000}, + {RUNE_C(0x0109F1), (double)500000}, + {RUNE_C(0x0109F2), (double)600000}, + {RUNE_C(0x0109F3), (double)700000}, + {RUNE_C(0x0109F4), (double)800000}, + {RUNE_C(0x0109F5), (double)900000}, + {RUNE_C(0x0109F6), (double)1/12}, + {RUNE_C(0x0109F7), (double)1/6}, + {RUNE_C(0x0109F8), (double)1/4}, + {RUNE_C(0x0109F9), (double)1/3}, + {RUNE_C(0x0109FA), (double)5/12}, + {RUNE_C(0x0109FB), (double)1/2}, + {RUNE_C(0x0109FC), (double)7/12}, + {RUNE_C(0x0109FD), (double)2/3}, + {RUNE_C(0x0109FE), (double)3/4}, + {RUNE_C(0x0109FF), (double)5/6}, + {RUNE_C(0x010A40), (double)1}, + {RUNE_C(0x010A41), (double)2}, + {RUNE_C(0x010A42), (double)3}, + {RUNE_C(0x010A43), (double)4}, + {RUNE_C(0x010A44), (double)10}, + {RUNE_C(0x010A45), (double)20}, + {RUNE_C(0x010A46), (double)100}, + {RUNE_C(0x010A47), (double)1000}, + {RUNE_C(0x010A48), (double)1/2}, + {RUNE_C(0x010A7D), (double)1}, + {RUNE_C(0x010A7E), (double)50}, + {RUNE_C(0x010A9D), (double)1}, + {RUNE_C(0x010A9E), (double)10}, + {RUNE_C(0x010A9F), (double)20}, + {RUNE_C(0x010AEB), (double)1}, + {RUNE_C(0x010AEC), (double)5}, + {RUNE_C(0x010AED), (double)10}, + {RUNE_C(0x010AEE), (double)20}, + {RUNE_C(0x010AEF), (double)100}, + {RUNE_C(0x010B58), (double)1}, + {RUNE_C(0x010B59), (double)2}, + {RUNE_C(0x010B5A), (double)3}, + {RUNE_C(0x010B5B), (double)4}, + {RUNE_C(0x010B5C), (double)10}, + {RUNE_C(0x010B5D), (double)20}, + {RUNE_C(0x010B5E), (double)100}, + {RUNE_C(0x010B5F), (double)1000}, + {RUNE_C(0x010B78), (double)1}, + {RUNE_C(0x010B79), (double)2}, + {RUNE_C(0x010B7A), (double)3}, + {RUNE_C(0x010B7B), (double)4}, + {RUNE_C(0x010B7C), (double)10}, + {RUNE_C(0x010B7D), (double)20}, + {RUNE_C(0x010B7E), (double)100}, + {RUNE_C(0x010B7F), (double)1000}, + {RUNE_C(0x010BA9), (double)1}, + {RUNE_C(0x010BAA), (double)2}, + {RUNE_C(0x010BAB), (double)3}, + {RUNE_C(0x010BAC), (double)4}, + {RUNE_C(0x010BAD), (double)10}, + {RUNE_C(0x010BAE), (double)20}, + {RUNE_C(0x010BAF), (double)100}, + {RUNE_C(0x010CFA), (double)1}, + {RUNE_C(0x010CFB), (double)5}, + {RUNE_C(0x010CFC), (double)10}, + {RUNE_C(0x010CFD), (double)50}, + {RUNE_C(0x010CFE), (double)100}, + {RUNE_C(0x010CFF), (double)1000}, + {RUNE_C(0x010D30), (double)0}, + {RUNE_C(0x010D31), (double)1}, + {RUNE_C(0x010D32), (double)2}, + {RUNE_C(0x010D33), (double)3}, + {RUNE_C(0x010D34), (double)4}, + {RUNE_C(0x010D35), (double)5}, + {RUNE_C(0x010D36), (double)6}, + {RUNE_C(0x010D37), (double)7}, + {RUNE_C(0x010D38), (double)8}, + {RUNE_C(0x010D39), (double)9}, + {RUNE_C(0x010E60), (double)1}, + {RUNE_C(0x010E61), (double)2}, + {RUNE_C(0x010E62), (double)3}, + {RUNE_C(0x010E63), (double)4}, + {RUNE_C(0x010E64), (double)5}, + {RUNE_C(0x010E65), (double)6}, + {RUNE_C(0x010E66), (double)7}, + {RUNE_C(0x010E67), (double)8}, + {RUNE_C(0x010E68), (double)9}, + {RUNE_C(0x010E69), (double)10}, + {RUNE_C(0x010E6A), (double)20}, + {RUNE_C(0x010E6B), (double)30}, + {RUNE_C(0x010E6C), (double)40}, + {RUNE_C(0x010E6D), (double)50}, + {RUNE_C(0x010E6E), (double)60}, + {RUNE_C(0x010E6F), (double)70}, + {RUNE_C(0x010E70), (double)80}, + {RUNE_C(0x010E71), (double)90}, + {RUNE_C(0x010E72), (double)100}, + {RUNE_C(0x010E73), (double)200}, + {RUNE_C(0x010E74), (double)300}, + {RUNE_C(0x010E75), (double)400}, + {RUNE_C(0x010E76), (double)500}, + {RUNE_C(0x010E77), (double)600}, + {RUNE_C(0x010E78), (double)700}, + {RUNE_C(0x010E79), (double)800}, + {RUNE_C(0x010E7A), (double)900}, + {RUNE_C(0x010E7B), (double)1/2}, + {RUNE_C(0x010E7C), (double)1/4}, + {RUNE_C(0x010E7D), (double)1/3}, + {RUNE_C(0x010E7E), (double)2/3}, + {RUNE_C(0x010F1D), (double)1}, + {RUNE_C(0x010F1E), (double)2}, + {RUNE_C(0x010F1F), (double)3}, + {RUNE_C(0x010F20), (double)4}, + {RUNE_C(0x010F21), (double)5}, + {RUNE_C(0x010F22), (double)10}, + {RUNE_C(0x010F23), (double)20}, + {RUNE_C(0x010F24), (double)30}, + {RUNE_C(0x010F25), (double)100}, + {RUNE_C(0x010F26), (double)1/2}, + {RUNE_C(0x010F51), (double)1}, + {RUNE_C(0x010F52), (double)10}, + {RUNE_C(0x010F53), (double)20}, + {RUNE_C(0x010F54), (double)100}, + {RUNE_C(0x010FC5), (double)1}, + {RUNE_C(0x010FC6), (double)2}, + {RUNE_C(0x010FC7), (double)3}, + {RUNE_C(0x010FC8), (double)4}, + {RUNE_C(0x010FC9), (double)10}, + {RUNE_C(0x010FCA), (double)20}, + {RUNE_C(0x010FCB), (double)100}, + {RUNE_C(0x011052), (double)1}, + {RUNE_C(0x011053), (double)2}, + {RUNE_C(0x011054), (double)3}, + {RUNE_C(0x011055), (double)4}, + {RUNE_C(0x011056), (double)5}, + {RUNE_C(0x011057), (double)6}, + {RUNE_C(0x011058), (double)7}, + {RUNE_C(0x011059), (double)8}, + {RUNE_C(0x01105A), (double)9}, + {RUNE_C(0x01105B), (double)10}, + {RUNE_C(0x01105C), (double)20}, + {RUNE_C(0x01105D), (double)30}, + {RUNE_C(0x01105E), (double)40}, + {RUNE_C(0x01105F), (double)50}, + {RUNE_C(0x011060), (double)60}, + {RUNE_C(0x011061), (double)70}, + {RUNE_C(0x011062), (double)80}, + {RUNE_C(0x011063), (double)90}, + {RUNE_C(0x011064), (double)100}, + {RUNE_C(0x011065), (double)1000}, + {RUNE_C(0x011066), (double)0}, + {RUNE_C(0x011067), (double)1}, + {RUNE_C(0x011068), (double)2}, + {RUNE_C(0x011069), (double)3}, + {RUNE_C(0x01106A), (double)4}, + {RUNE_C(0x01106B), (double)5}, + {RUNE_C(0x01106C), (double)6}, + {RUNE_C(0x01106D), (double)7}, + {RUNE_C(0x01106E), (double)8}, + {RUNE_C(0x01106F), (double)9}, + {RUNE_C(0x0110F0), (double)0}, + {RUNE_C(0x0110F1), (double)1}, + {RUNE_C(0x0110F2), (double)2}, + {RUNE_C(0x0110F3), (double)3}, + {RUNE_C(0x0110F4), (double)4}, + {RUNE_C(0x0110F5), (double)5}, + {RUNE_C(0x0110F6), (double)6}, + {RUNE_C(0x0110F7), (double)7}, + {RUNE_C(0x0110F8), (double)8}, + {RUNE_C(0x0110F9), (double)9}, + {RUNE_C(0x011136), (double)0}, + {RUNE_C(0x011137), (double)1}, + {RUNE_C(0x011138), (double)2}, + {RUNE_C(0x011139), (double)3}, + {RUNE_C(0x01113A), (double)4}, + {RUNE_C(0x01113B), (double)5}, + {RUNE_C(0x01113C), (double)6}, + {RUNE_C(0x01113D), (double)7}, + {RUNE_C(0x01113E), (double)8}, + {RUNE_C(0x01113F), (double)9}, + {RUNE_C(0x0111D0), (double)0}, + {RUNE_C(0x0111D1), (double)1}, + {RUNE_C(0x0111D2), (double)2}, + {RUNE_C(0x0111D3), (double)3}, + {RUNE_C(0x0111D4), (double)4}, + {RUNE_C(0x0111D5), (double)5}, + {RUNE_C(0x0111D6), (double)6}, + {RUNE_C(0x0111D7), (double)7}, + {RUNE_C(0x0111D8), (double)8}, + {RUNE_C(0x0111D9), (double)9}, + {RUNE_C(0x0111E1), (double)1}, + {RUNE_C(0x0111E2), (double)2}, + {RUNE_C(0x0111E3), (double)3}, + {RUNE_C(0x0111E4), (double)4}, + {RUNE_C(0x0111E5), (double)5}, + {RUNE_C(0x0111E6), (double)6}, + {RUNE_C(0x0111E7), (double)7}, + {RUNE_C(0x0111E8), (double)8}, + {RUNE_C(0x0111E9), (double)9}, + {RUNE_C(0x0111EA), (double)10}, + {RUNE_C(0x0111EB), (double)20}, + {RUNE_C(0x0111EC), (double)30}, + {RUNE_C(0x0111ED), (double)40}, + {RUNE_C(0x0111EE), (double)50}, + {RUNE_C(0x0111EF), (double)60}, + {RUNE_C(0x0111F0), (double)70}, + {RUNE_C(0x0111F1), (double)80}, + {RUNE_C(0x0111F2), (double)90}, + {RUNE_C(0x0111F3), (double)100}, + {RUNE_C(0x0111F4), (double)1000}, + {RUNE_C(0x0112F0), (double)0}, + {RUNE_C(0x0112F1), (double)1}, + {RUNE_C(0x0112F2), (double)2}, + {RUNE_C(0x0112F3), (double)3}, + {RUNE_C(0x0112F4), (double)4}, + {RUNE_C(0x0112F5), (double)5}, + {RUNE_C(0x0112F6), (double)6}, + {RUNE_C(0x0112F7), (double)7}, + {RUNE_C(0x0112F8), (double)8}, + {RUNE_C(0x0112F9), (double)9}, + {RUNE_C(0x011450), (double)0}, + {RUNE_C(0x011451), (double)1}, + {RUNE_C(0x011452), (double)2}, + {RUNE_C(0x011453), (double)3}, + {RUNE_C(0x011454), (double)4}, + {RUNE_C(0x011455), (double)5}, + {RUNE_C(0x011456), (double)6}, + {RUNE_C(0x011457), (double)7}, + {RUNE_C(0x011458), (double)8}, + {RUNE_C(0x011459), (double)9}, + {RUNE_C(0x0114D0), (double)0}, + {RUNE_C(0x0114D1), (double)1}, + {RUNE_C(0x0114D2), (double)2}, + {RUNE_C(0x0114D3), (double)3}, + {RUNE_C(0x0114D4), (double)4}, + {RUNE_C(0x0114D5), (double)5}, + {RUNE_C(0x0114D6), (double)6}, + {RUNE_C(0x0114D7), (double)7}, + {RUNE_C(0x0114D8), (double)8}, + {RUNE_C(0x0114D9), (double)9}, + {RUNE_C(0x011650), (double)0}, + {RUNE_C(0x011651), (double)1}, + {RUNE_C(0x011652), (double)2}, + {RUNE_C(0x011653), (double)3}, + {RUNE_C(0x011654), (double)4}, + {RUNE_C(0x011655), (double)5}, + {RUNE_C(0x011656), (double)6}, + {RUNE_C(0x011657), (double)7}, + {RUNE_C(0x011658), (double)8}, + {RUNE_C(0x011659), (double)9}, + {RUNE_C(0x0116C0), (double)0}, + {RUNE_C(0x0116C1), (double)1}, + {RUNE_C(0x0116C2), (double)2}, + {RUNE_C(0x0116C3), (double)3}, + {RUNE_C(0x0116C4), (double)4}, + {RUNE_C(0x0116C5), (double)5}, + {RUNE_C(0x0116C6), (double)6}, + {RUNE_C(0x0116C7), (double)7}, + {RUNE_C(0x0116C8), (double)8}, + {RUNE_C(0x0116C9), (double)9}, + {RUNE_C(0x011730), (double)0}, + {RUNE_C(0x011731), (double)1}, + {RUNE_C(0x011732), (double)2}, + {RUNE_C(0x011733), (double)3}, + {RUNE_C(0x011734), (double)4}, + {RUNE_C(0x011735), (double)5}, + {RUNE_C(0x011736), (double)6}, + {RUNE_C(0x011737), (double)7}, + {RUNE_C(0x011738), (double)8}, + {RUNE_C(0x011739), (double)9}, + {RUNE_C(0x01173A), (double)10}, + {RUNE_C(0x01173B), (double)20}, + {RUNE_C(0x0118E0), (double)0}, + {RUNE_C(0x0118E1), (double)1}, + {RUNE_C(0x0118E2), (double)2}, + {RUNE_C(0x0118E3), (double)3}, + {RUNE_C(0x0118E4), (double)4}, + {RUNE_C(0x0118E5), (double)5}, + {RUNE_C(0x0118E6), (double)6}, + {RUNE_C(0x0118E7), (double)7}, + {RUNE_C(0x0118E8), (double)8}, + {RUNE_C(0x0118E9), (double)9}, + {RUNE_C(0x0118EA), (double)10}, + {RUNE_C(0x0118EB), (double)20}, + {RUNE_C(0x0118EC), (double)30}, + {RUNE_C(0x0118ED), (double)40}, + {RUNE_C(0x0118EE), (double)50}, + {RUNE_C(0x0118EF), (double)60}, + {RUNE_C(0x0118F0), (double)70}, + {RUNE_C(0x0118F1), (double)80}, + {RUNE_C(0x0118F2), (double)90}, + {RUNE_C(0x011950), (double)0}, + {RUNE_C(0x011951), (double)1}, + {RUNE_C(0x011952), (double)2}, + {RUNE_C(0x011953), (double)3}, + {RUNE_C(0x011954), (double)4}, + {RUNE_C(0x011955), (double)5}, + {RUNE_C(0x011956), (double)6}, + {RUNE_C(0x011957), (double)7}, + {RUNE_C(0x011958), (double)8}, + {RUNE_C(0x011959), (double)9}, + {RUNE_C(0x011C50), (double)0}, + {RUNE_C(0x011C51), (double)1}, + {RUNE_C(0x011C52), (double)2}, + {RUNE_C(0x011C53), (double)3}, + {RUNE_C(0x011C54), (double)4}, + {RUNE_C(0x011C55), (double)5}, + {RUNE_C(0x011C56), (double)6}, + {RUNE_C(0x011C57), (double)7}, + {RUNE_C(0x011C58), (double)8}, + {RUNE_C(0x011C59), (double)9}, + {RUNE_C(0x011C5A), (double)1}, + {RUNE_C(0x011C5B), (double)2}, + {RUNE_C(0x011C5C), (double)3}, + {RUNE_C(0x011C5D), (double)4}, + {RUNE_C(0x011C5E), (double)5}, + {RUNE_C(0x011C5F), (double)6}, + {RUNE_C(0x011C60), (double)7}, + {RUNE_C(0x011C61), (double)8}, + {RUNE_C(0x011C62), (double)9}, + {RUNE_C(0x011C63), (double)10}, + {RUNE_C(0x011C64), (double)20}, + {RUNE_C(0x011C65), (double)30}, + {RUNE_C(0x011C66), (double)40}, + {RUNE_C(0x011C67), (double)50}, + {RUNE_C(0x011C68), (double)60}, + {RUNE_C(0x011C69), (double)70}, + {RUNE_C(0x011C6A), (double)80}, + {RUNE_C(0x011C6B), (double)90}, + {RUNE_C(0x011C6C), (double)100}, + {RUNE_C(0x011D50), (double)0}, + {RUNE_C(0x011D51), (double)1}, + {RUNE_C(0x011D52), (double)2}, + {RUNE_C(0x011D53), (double)3}, + {RUNE_C(0x011D54), (double)4}, + {RUNE_C(0x011D55), (double)5}, + {RUNE_C(0x011D56), (double)6}, + {RUNE_C(0x011D57), (double)7}, + {RUNE_C(0x011D58), (double)8}, + {RUNE_C(0x011D59), (double)9}, + {RUNE_C(0x011DA0), (double)0}, + {RUNE_C(0x011DA1), (double)1}, + {RUNE_C(0x011DA2), (double)2}, + {RUNE_C(0x011DA3), (double)3}, + {RUNE_C(0x011DA4), (double)4}, + {RUNE_C(0x011DA5), (double)5}, + {RUNE_C(0x011DA6), (double)6}, + {RUNE_C(0x011DA7), (double)7}, + {RUNE_C(0x011DA8), (double)8}, + {RUNE_C(0x011DA9), (double)9}, + {RUNE_C(0x011F50), (double)0}, + {RUNE_C(0x011F51), (double)1}, + {RUNE_C(0x011F52), (double)2}, + {RUNE_C(0x011F53), (double)3}, + {RUNE_C(0x011F54), (double)4}, + {RUNE_C(0x011F55), (double)5}, + {RUNE_C(0x011F56), (double)6}, + {RUNE_C(0x011F57), (double)7}, + {RUNE_C(0x011F58), (double)8}, + {RUNE_C(0x011F59), (double)9}, + {RUNE_C(0x011FC0), (double)1/320}, + {RUNE_C(0x011FC1), (double)1/160}, + {RUNE_C(0x011FC2), (double)1/80}, + {RUNE_C(0x011FC3), (double)1/64}, + {RUNE_C(0x011FC4), (double)1/40}, + {RUNE_C(0x011FC5), (double)1/32}, + {RUNE_C(0x011FC6), (double)3/80}, + {RUNE_C(0x011FC7), (double)3/64}, + {RUNE_C(0x011FC8), (double)1/20}, + {RUNE_C(0x011FC9), (double)1/16}, + {RUNE_C(0x011FCA), (double)1/16}, + {RUNE_C(0x011FCB), (double)1/10}, + {RUNE_C(0x011FCC), (double)1/8}, + {RUNE_C(0x011FCD), (double)3/20}, + {RUNE_C(0x011FCE), (double)3/16}, + {RUNE_C(0x011FCF), (double)1/5}, + {RUNE_C(0x011FD0), (double)1/4}, + {RUNE_C(0x011FD1), (double)1/2}, + {RUNE_C(0x011FD2), (double)1/2}, + {RUNE_C(0x011FD3), (double)3/4}, + {RUNE_C(0x011FD4), (double)1/320}, + {RUNE_C(0x012400), (double)2}, + {RUNE_C(0x012401), (double)3}, + {RUNE_C(0x012402), (double)4}, + {RUNE_C(0x012403), (double)5}, + {RUNE_C(0x012404), (double)6}, + {RUNE_C(0x012405), (double)7}, + {RUNE_C(0x012406), (double)8}, + {RUNE_C(0x012407), (double)9}, + {RUNE_C(0x012408), (double)3}, + {RUNE_C(0x012409), (double)4}, + {RUNE_C(0x01240A), (double)5}, + {RUNE_C(0x01240B), (double)6}, + {RUNE_C(0x01240C), (double)7}, + {RUNE_C(0x01240D), (double)8}, + {RUNE_C(0x01240E), (double)9}, + {RUNE_C(0x01240F), (double)4}, + {RUNE_C(0x012410), (double)5}, + {RUNE_C(0x012411), (double)6}, + {RUNE_C(0x012412), (double)7}, + {RUNE_C(0x012413), (double)8}, + {RUNE_C(0x012414), (double)9}, + {RUNE_C(0x012415), (double)1}, + {RUNE_C(0x012416), (double)2}, + {RUNE_C(0x012417), (double)3}, + {RUNE_C(0x012418), (double)4}, + {RUNE_C(0x012419), (double)5}, + {RUNE_C(0x01241A), (double)6}, + {RUNE_C(0x01241B), (double)7}, + {RUNE_C(0x01241C), (double)8}, + {RUNE_C(0x01241D), (double)9}, + {RUNE_C(0x01241E), (double)1}, + {RUNE_C(0x01241F), (double)2}, + {RUNE_C(0x012420), (double)3}, + {RUNE_C(0x012421), (double)4}, + {RUNE_C(0x012422), (double)5}, + {RUNE_C(0x012423), (double)2}, + {RUNE_C(0x012424), (double)3}, + {RUNE_C(0x012425), (double)3}, + {RUNE_C(0x012426), (double)4}, + {RUNE_C(0x012427), (double)5}, + {RUNE_C(0x012428), (double)6}, + {RUNE_C(0x012429), (double)7}, + {RUNE_C(0x01242A), (double)8}, + {RUNE_C(0x01242B), (double)9}, + {RUNE_C(0x01242C), (double)1}, + {RUNE_C(0x01242D), (double)2}, + {RUNE_C(0x01242E), (double)3}, + {RUNE_C(0x01242F), (double)3}, + {RUNE_C(0x012430), (double)4}, + {RUNE_C(0x012431), (double)5}, + {RUNE_C(0x012432), (double)216000}, + {RUNE_C(0x012433), (double)432000}, + {RUNE_C(0x012434), (double)1}, + {RUNE_C(0x012435), (double)2}, + {RUNE_C(0x012436), (double)3}, + {RUNE_C(0x012437), (double)3}, + {RUNE_C(0x012438), (double)4}, + {RUNE_C(0x012439), (double)5}, + {RUNE_C(0x01243A), (double)3}, + {RUNE_C(0x01243B), (double)3}, + {RUNE_C(0x01243C), (double)4}, + {RUNE_C(0x01243D), (double)4}, + {RUNE_C(0x01243E), (double)4}, + {RUNE_C(0x01243F), (double)4}, + {RUNE_C(0x012440), (double)6}, + {RUNE_C(0x012441), (double)7}, + {RUNE_C(0x012442), (double)7}, + {RUNE_C(0x012443), (double)7}, + {RUNE_C(0x012444), (double)8}, + {RUNE_C(0x012445), (double)8}, + {RUNE_C(0x012446), (double)9}, + {RUNE_C(0x012447), (double)9}, + {RUNE_C(0x012448), (double)9}, + {RUNE_C(0x012449), (double)9}, + {RUNE_C(0x01244A), (double)2}, + {RUNE_C(0x01244B), (double)3}, + {RUNE_C(0x01244C), (double)4}, + {RUNE_C(0x01244D), (double)5}, + {RUNE_C(0x01244E), (double)6}, + {RUNE_C(0x01244F), (double)1}, + {RUNE_C(0x012450), (double)2}, + {RUNE_C(0x012451), (double)3}, + {RUNE_C(0x012452), (double)4}, + {RUNE_C(0x012453), (double)4}, + {RUNE_C(0x012454), (double)5}, + {RUNE_C(0x012455), (double)5}, + {RUNE_C(0x012456), (double)2}, + {RUNE_C(0x012457), (double)3}, + {RUNE_C(0x012458), (double)1}, + {RUNE_C(0x012459), (double)2}, + {RUNE_C(0x01245A), (double)1/3}, + {RUNE_C(0x01245B), (double)2/3}, + {RUNE_C(0x01245C), (double)5/6}, + {RUNE_C(0x01245D), (double)1/3}, + {RUNE_C(0x01245E), (double)2/3}, + {RUNE_C(0x01245F), (double)1/8}, + {RUNE_C(0x012460), (double)1/4}, + {RUNE_C(0x012461), (double)1/6}, + {RUNE_C(0x012462), (double)1/4}, + {RUNE_C(0x012463), (double)1/4}, + {RUNE_C(0x012464), (double)1/2}, + {RUNE_C(0x012465), (double)1/3}, + {RUNE_C(0x012466), (double)2/3}, + {RUNE_C(0x012467), (double)40}, + {RUNE_C(0x012468), (double)50}, + {RUNE_C(0x012469), (double)4}, + {RUNE_C(0x01246A), (double)5}, + {RUNE_C(0x01246B), (double)6}, + {RUNE_C(0x01246C), (double)7}, + {RUNE_C(0x01246D), (double)8}, + {RUNE_C(0x01246E), (double)9}, + {RUNE_C(0x016A60), (double)0}, + {RUNE_C(0x016A61), (double)1}, + {RUNE_C(0x016A62), (double)2}, + {RUNE_C(0x016A63), (double)3}, + {RUNE_C(0x016A64), (double)4}, + {RUNE_C(0x016A65), (double)5}, + {RUNE_C(0x016A66), (double)6}, + {RUNE_C(0x016A67), (double)7}, + {RUNE_C(0x016A68), (double)8}, + {RUNE_C(0x016A69), (double)9}, + {RUNE_C(0x016AC0), (double)0}, + {RUNE_C(0x016AC1), (double)1}, + {RUNE_C(0x016AC2), (double)2}, + {RUNE_C(0x016AC3), (double)3}, + {RUNE_C(0x016AC4), (double)4}, + {RUNE_C(0x016AC5), (double)5}, + {RUNE_C(0x016AC6), (double)6}, + {RUNE_C(0x016AC7), (double)7}, + {RUNE_C(0x016AC8), (double)8}, + {RUNE_C(0x016AC9), (double)9}, + {RUNE_C(0x016B50), (double)0}, + {RUNE_C(0x016B51), (double)1}, + {RUNE_C(0x016B52), (double)2}, + {RUNE_C(0x016B53), (double)3}, + {RUNE_C(0x016B54), (double)4}, + {RUNE_C(0x016B55), (double)5}, + {RUNE_C(0x016B56), (double)6}, + {RUNE_C(0x016B57), (double)7}, + {RUNE_C(0x016B58), (double)8}, + {RUNE_C(0x016B59), (double)9}, + {RUNE_C(0x016B5B), (double)10}, + {RUNE_C(0x016B5C), (double)100}, + {RUNE_C(0x016B5D), (double)10000}, + {RUNE_C(0x016B5E), (double)1000000}, + {RUNE_C(0x016B5F), (double)100000000}, + {RUNE_C(0x016B60), (double)10000000000}, + {RUNE_C(0x016B61), (double)1000000000000}, + {RUNE_C(0x016E80), (double)0}, + {RUNE_C(0x016E81), (double)1}, + {RUNE_C(0x016E82), (double)2}, + {RUNE_C(0x016E83), (double)3}, + {RUNE_C(0x016E84), (double)4}, + {RUNE_C(0x016E85), (double)5}, + {RUNE_C(0x016E86), (double)6}, + {RUNE_C(0x016E87), (double)7}, + {RUNE_C(0x016E88), (double)8}, + {RUNE_C(0x016E89), (double)9}, + {RUNE_C(0x016E8A), (double)10}, + {RUNE_C(0x016E8B), (double)11}, + {RUNE_C(0x016E8C), (double)12}, + {RUNE_C(0x016E8D), (double)13}, + {RUNE_C(0x016E8E), (double)14}, + {RUNE_C(0x016E8F), (double)15}, + {RUNE_C(0x016E90), (double)16}, + {RUNE_C(0x016E91), (double)17}, + {RUNE_C(0x016E92), (double)18}, + {RUNE_C(0x016E93), (double)19}, + {RUNE_C(0x016E94), (double)1}, + {RUNE_C(0x016E95), (double)2}, + {RUNE_C(0x016E96), (double)3}, + {RUNE_C(0x01D2C0), (double)0}, + {RUNE_C(0x01D2C1), (double)1}, + {RUNE_C(0x01D2C2), (double)2}, + {RUNE_C(0x01D2C3), (double)3}, + {RUNE_C(0x01D2C4), (double)4}, + {RUNE_C(0x01D2C5), (double)5}, + {RUNE_C(0x01D2C6), (double)6}, + {RUNE_C(0x01D2C7), (double)7}, + {RUNE_C(0x01D2C8), (double)8}, + {RUNE_C(0x01D2C9), (double)9}, + {RUNE_C(0x01D2CA), (double)10}, + {RUNE_C(0x01D2CB), (double)11}, + {RUNE_C(0x01D2CC), (double)12}, + {RUNE_C(0x01D2CD), (double)13}, + {RUNE_C(0x01D2CE), (double)14}, + {RUNE_C(0x01D2CF), (double)15}, + {RUNE_C(0x01D2D0), (double)16}, + {RUNE_C(0x01D2D1), (double)17}, + {RUNE_C(0x01D2D2), (double)18}, + {RUNE_C(0x01D2D3), (double)19}, + {RUNE_C(0x01D2E0), (double)0}, + {RUNE_C(0x01D2E1), (double)1}, + {RUNE_C(0x01D2E2), (double)2}, + {RUNE_C(0x01D2E3), (double)3}, + {RUNE_C(0x01D2E4), (double)4}, + {RUNE_C(0x01D2E5), (double)5}, + {RUNE_C(0x01D2E6), (double)6}, + {RUNE_C(0x01D2E7), (double)7}, + {RUNE_C(0x01D2E8), (double)8}, + {RUNE_C(0x01D2E9), (double)9}, + {RUNE_C(0x01D2EA), (double)10}, + {RUNE_C(0x01D2EB), (double)11}, + {RUNE_C(0x01D2EC), (double)12}, + {RUNE_C(0x01D2ED), (double)13}, + {RUNE_C(0x01D2EE), (double)14}, + {RUNE_C(0x01D2EF), (double)15}, + {RUNE_C(0x01D2F0), (double)16}, + {RUNE_C(0x01D2F1), (double)17}, + {RUNE_C(0x01D2F2), (double)18}, + {RUNE_C(0x01D2F3), (double)19}, + {RUNE_C(0x01D360), (double)1}, + {RUNE_C(0x01D361), (double)2}, + {RUNE_C(0x01D362), (double)3}, + {RUNE_C(0x01D363), (double)4}, + {RUNE_C(0x01D364), (double)5}, + {RUNE_C(0x01D365), (double)6}, + {RUNE_C(0x01D366), (double)7}, + {RUNE_C(0x01D367), (double)8}, + {RUNE_C(0x01D368), (double)9}, + {RUNE_C(0x01D369), (double)10}, + {RUNE_C(0x01D36A), (double)20}, + {RUNE_C(0x01D36B), (double)30}, + {RUNE_C(0x01D36C), (double)40}, + {RUNE_C(0x01D36D), (double)50}, + {RUNE_C(0x01D36E), (double)60}, + {RUNE_C(0x01D36F), (double)70}, + {RUNE_C(0x01D370), (double)80}, + {RUNE_C(0x01D371), (double)90}, + {RUNE_C(0x01D372), (double)1}, + {RUNE_C(0x01D373), (double)2}, + {RUNE_C(0x01D374), (double)3}, + {RUNE_C(0x01D375), (double)4}, + {RUNE_C(0x01D376), (double)5}, + {RUNE_C(0x01D377), (double)1}, + {RUNE_C(0x01D378), (double)5}, + {RUNE_C(0x01D7CE), (double)0}, + {RUNE_C(0x01D7CF), (double)1}, + {RUNE_C(0x01D7D0), (double)2}, + {RUNE_C(0x01D7D1), (double)3}, + {RUNE_C(0x01D7D2), (double)4}, + {RUNE_C(0x01D7D3), (double)5}, + {RUNE_C(0x01D7D4), (double)6}, + {RUNE_C(0x01D7D5), (double)7}, + {RUNE_C(0x01D7D6), (double)8}, + {RUNE_C(0x01D7D7), (double)9}, + {RUNE_C(0x01D7D8), (double)0}, + {RUNE_C(0x01D7D9), (double)1}, + {RUNE_C(0x01D7DA), (double)2}, + {RUNE_C(0x01D7DB), (double)3}, + {RUNE_C(0x01D7DC), (double)4}, + {RUNE_C(0x01D7DD), (double)5}, + {RUNE_C(0x01D7DE), (double)6}, + {RUNE_C(0x01D7DF), (double)7}, + {RUNE_C(0x01D7E0), (double)8}, + {RUNE_C(0x01D7E1), (double)9}, + {RUNE_C(0x01D7E2), (double)0}, + {RUNE_C(0x01D7E3), (double)1}, + {RUNE_C(0x01D7E4), (double)2}, + {RUNE_C(0x01D7E5), (double)3}, + {RUNE_C(0x01D7E6), (double)4}, + {RUNE_C(0x01D7E7), (double)5}, + {RUNE_C(0x01D7E8), (double)6}, + {RUNE_C(0x01D7E9), (double)7}, + {RUNE_C(0x01D7EA), (double)8}, + {RUNE_C(0x01D7EB), (double)9}, + {RUNE_C(0x01D7EC), (double)0}, + {RUNE_C(0x01D7ED), (double)1}, + {RUNE_C(0x01D7EE), (double)2}, + {RUNE_C(0x01D7EF), (double)3}, + {RUNE_C(0x01D7F0), (double)4}, + {RUNE_C(0x01D7F1), (double)5}, + {RUNE_C(0x01D7F2), (double)6}, + {RUNE_C(0x01D7F3), (double)7}, + {RUNE_C(0x01D7F4), (double)8}, + {RUNE_C(0x01D7F5), (double)9}, + {RUNE_C(0x01D7F6), (double)0}, + {RUNE_C(0x01D7F7), (double)1}, + {RUNE_C(0x01D7F8), (double)2}, + {RUNE_C(0x01D7F9), (double)3}, + {RUNE_C(0x01D7FA), (double)4}, + {RUNE_C(0x01D7FB), (double)5}, + {RUNE_C(0x01D7FC), (double)6}, + {RUNE_C(0x01D7FD), (double)7}, + {RUNE_C(0x01D7FE), (double)8}, + {RUNE_C(0x01D7FF), (double)9}, + {RUNE_C(0x01E140), (double)0}, + {RUNE_C(0x01E141), (double)1}, + {RUNE_C(0x01E142), (double)2}, + {RUNE_C(0x01E143), (double)3}, + {RUNE_C(0x01E144), (double)4}, + {RUNE_C(0x01E145), (double)5}, + {RUNE_C(0x01E146), (double)6}, + {RUNE_C(0x01E147), (double)7}, + {RUNE_C(0x01E148), (double)8}, + {RUNE_C(0x01E149), (double)9}, + {RUNE_C(0x01E2F0), (double)0}, + {RUNE_C(0x01E2F1), (double)1}, + {RUNE_C(0x01E2F2), (double)2}, + {RUNE_C(0x01E2F3), (double)3}, + {RUNE_C(0x01E2F4), (double)4}, + {RUNE_C(0x01E2F5), (double)5}, + {RUNE_C(0x01E2F6), (double)6}, + {RUNE_C(0x01E2F7), (double)7}, + {RUNE_C(0x01E2F8), (double)8}, + {RUNE_C(0x01E2F9), (double)9}, + {RUNE_C(0x01E4F0), (double)0}, + {RUNE_C(0x01E4F1), (double)1}, + {RUNE_C(0x01E4F2), (double)2}, + {RUNE_C(0x01E4F3), (double)3}, + {RUNE_C(0x01E4F4), (double)4}, + {RUNE_C(0x01E4F5), (double)5}, + {RUNE_C(0x01E4F6), (double)6}, + {RUNE_C(0x01E4F7), (double)7}, + {RUNE_C(0x01E4F8), (double)8}, + {RUNE_C(0x01E4F9), (double)9}, + {RUNE_C(0x01E8C7), (double)1}, + {RUNE_C(0x01E8C8), (double)2}, + {RUNE_C(0x01E8C9), (double)3}, + {RUNE_C(0x01E8CA), (double)4}, + {RUNE_C(0x01E8CB), (double)5}, + {RUNE_C(0x01E8CC), (double)6}, + {RUNE_C(0x01E8CD), (double)7}, + {RUNE_C(0x01E8CE), (double)8}, + {RUNE_C(0x01E8CF), (double)9}, + {RUNE_C(0x01E950), (double)0}, + {RUNE_C(0x01E951), (double)1}, + {RUNE_C(0x01E952), (double)2}, + {RUNE_C(0x01E953), (double)3}, + {RUNE_C(0x01E954), (double)4}, + {RUNE_C(0x01E955), (double)5}, + {RUNE_C(0x01E956), (double)6}, + {RUNE_C(0x01E957), (double)7}, + {RUNE_C(0x01E958), (double)8}, + {RUNE_C(0x01E959), (double)9}, + {RUNE_C(0x01EC71), (double)1}, + {RUNE_C(0x01EC72), (double)2}, + {RUNE_C(0x01EC73), (double)3}, + {RUNE_C(0x01EC74), (double)4}, + {RUNE_C(0x01EC75), (double)5}, + {RUNE_C(0x01EC76), (double)6}, + {RUNE_C(0x01EC77), (double)7}, + {RUNE_C(0x01EC78), (double)8}, + {RUNE_C(0x01EC79), (double)9}, + {RUNE_C(0x01EC7A), (double)10}, + {RUNE_C(0x01EC7B), (double)20}, + {RUNE_C(0x01EC7C), (double)30}, + {RUNE_C(0x01EC7D), (double)40}, + {RUNE_C(0x01EC7E), (double)50}, + {RUNE_C(0x01EC7F), (double)60}, + {RUNE_C(0x01EC80), (double)70}, + {RUNE_C(0x01EC81), (double)80}, + {RUNE_C(0x01EC82), (double)90}, + {RUNE_C(0x01EC83), (double)100}, + {RUNE_C(0x01EC84), (double)200}, + {RUNE_C(0x01EC85), (double)300}, + {RUNE_C(0x01EC86), (double)400}, + {RUNE_C(0x01EC87), (double)500}, + {RUNE_C(0x01EC88), (double)600}, + {RUNE_C(0x01EC89), (double)700}, + {RUNE_C(0x01EC8A), (double)800}, + {RUNE_C(0x01EC8B), (double)900}, + {RUNE_C(0x01EC8C), (double)1000}, + {RUNE_C(0x01EC8D), (double)2000}, + {RUNE_C(0x01EC8E), (double)3000}, + {RUNE_C(0x01EC8F), (double)4000}, + {RUNE_C(0x01EC90), (double)5000}, + {RUNE_C(0x01EC91), (double)6000}, + {RUNE_C(0x01EC92), (double)7000}, + {RUNE_C(0x01EC93), (double)8000}, + {RUNE_C(0x01EC94), (double)9000}, + {RUNE_C(0x01EC95), (double)10000}, + {RUNE_C(0x01EC96), (double)20000}, + {RUNE_C(0x01EC97), (double)30000}, + {RUNE_C(0x01EC98), (double)40000}, + {RUNE_C(0x01EC99), (double)50000}, + {RUNE_C(0x01EC9A), (double)60000}, + {RUNE_C(0x01EC9B), (double)70000}, + {RUNE_C(0x01EC9C), (double)80000}, + {RUNE_C(0x01EC9D), (double)90000}, + {RUNE_C(0x01EC9E), (double)100000}, + {RUNE_C(0x01EC9F), (double)200000}, + {RUNE_C(0x01ECA0), (double)100000}, + {RUNE_C(0x01ECA1), (double)10000000}, + {RUNE_C(0x01ECA2), (double)20000000}, + {RUNE_C(0x01ECA3), (double)1}, + {RUNE_C(0x01ECA4), (double)2}, + {RUNE_C(0x01ECA5), (double)3}, + {RUNE_C(0x01ECA6), (double)4}, + {RUNE_C(0x01ECA7), (double)5}, + {RUNE_C(0x01ECA8), (double)6}, + {RUNE_C(0x01ECA9), (double)7}, + {RUNE_C(0x01ECAA), (double)8}, + {RUNE_C(0x01ECAB), (double)9}, + {RUNE_C(0x01ECAD), (double)1/4}, + {RUNE_C(0x01ECAE), (double)1/2}, + {RUNE_C(0x01ECAF), (double)3/4}, + {RUNE_C(0x01ECB1), (double)1}, + {RUNE_C(0x01ECB2), (double)2}, + {RUNE_C(0x01ECB3), (double)10000}, + {RUNE_C(0x01ECB4), (double)100000}, + {RUNE_C(0x01ED01), (double)1}, + {RUNE_C(0x01ED02), (double)2}, + {RUNE_C(0x01ED03), (double)3}, + {RUNE_C(0x01ED04), (double)4}, + {RUNE_C(0x01ED05), (double)5}, + {RUNE_C(0x01ED06), (double)6}, + {RUNE_C(0x01ED07), (double)7}, + {RUNE_C(0x01ED08), (double)8}, + {RUNE_C(0x01ED09), (double)9}, + {RUNE_C(0x01ED0A), (double)10}, + {RUNE_C(0x01ED0B), (double)20}, + {RUNE_C(0x01ED0C), (double)30}, + {RUNE_C(0x01ED0D), (double)40}, + {RUNE_C(0x01ED0E), (double)50}, + {RUNE_C(0x01ED0F), (double)60}, + {RUNE_C(0x01ED10), (double)70}, + {RUNE_C(0x01ED11), (double)80}, + {RUNE_C(0x01ED12), (double)90}, + {RUNE_C(0x01ED13), (double)100}, + {RUNE_C(0x01ED14), (double)200}, + {RUNE_C(0x01ED15), (double)300}, + {RUNE_C(0x01ED16), (double)400}, + {RUNE_C(0x01ED17), (double)500}, + {RUNE_C(0x01ED18), (double)600}, + {RUNE_C(0x01ED19), (double)700}, + {RUNE_C(0x01ED1A), (double)800}, + {RUNE_C(0x01ED1B), (double)900}, + {RUNE_C(0x01ED1C), (double)1000}, + {RUNE_C(0x01ED1D), (double)2000}, + {RUNE_C(0x01ED1E), (double)3000}, + {RUNE_C(0x01ED1F), (double)4000}, + {RUNE_C(0x01ED20), (double)5000}, + {RUNE_C(0x01ED21), (double)6000}, + {RUNE_C(0x01ED22), (double)7000}, + {RUNE_C(0x01ED23), (double)8000}, + {RUNE_C(0x01ED24), (double)9000}, + {RUNE_C(0x01ED25), (double)10000}, + {RUNE_C(0x01ED26), (double)20000}, + {RUNE_C(0x01ED27), (double)30000}, + {RUNE_C(0x01ED28), (double)40000}, + {RUNE_C(0x01ED29), (double)50000}, + {RUNE_C(0x01ED2A), (double)60000}, + {RUNE_C(0x01ED2B), (double)70000}, + {RUNE_C(0x01ED2C), (double)80000}, + {RUNE_C(0x01ED2D), (double)90000}, + {RUNE_C(0x01ED2F), (double)2}, + {RUNE_C(0x01ED30), (double)3}, + {RUNE_C(0x01ED31), (double)4}, + {RUNE_C(0x01ED32), (double)5}, + {RUNE_C(0x01ED33), (double)6}, + {RUNE_C(0x01ED34), (double)7}, + {RUNE_C(0x01ED35), (double)8}, + {RUNE_C(0x01ED36), (double)9}, + {RUNE_C(0x01ED37), (double)10}, + {RUNE_C(0x01ED38), (double)400}, + {RUNE_C(0x01ED39), (double)600}, + {RUNE_C(0x01ED3A), (double)2000}, + {RUNE_C(0x01ED3B), (double)10000}, + {RUNE_C(0x01ED3C), (double)1/2}, + {RUNE_C(0x01ED3D), (double)1/6}, + {RUNE_C(0x01F100), (double)0}, + {RUNE_C(0x01F101), (double)0}, + {RUNE_C(0x01F102), (double)1}, + {RUNE_C(0x01F103), (double)2}, + {RUNE_C(0x01F104), (double)3}, + {RUNE_C(0x01F105), (double)4}, + {RUNE_C(0x01F106), (double)5}, + {RUNE_C(0x01F107), (double)6}, + {RUNE_C(0x01F108), (double)7}, + {RUNE_C(0x01F109), (double)8}, + {RUNE_C(0x01F10A), (double)9}, + {RUNE_C(0x01F10B), (double)0}, + {RUNE_C(0x01F10C), (double)0}, + {RUNE_C(0x01FBF0), (double)0}, + {RUNE_C(0x01FBF1), (double)1}, + {RUNE_C(0x01FBF2), (double)2}, + {RUNE_C(0x01FBF3), (double)3}, + {RUNE_C(0x01FBF4), (double)4}, + {RUNE_C(0x01FBF5), (double)5}, + {RUNE_C(0x01FBF6), (double)6}, + {RUNE_C(0x01FBF7), (double)7}, + {RUNE_C(0x01FBF8), (double)8}, + {RUNE_C(0x01FBF9), (double)9}, + {RUNE_C(0x020001), (double)7}, + {RUNE_C(0x020064), (double)4}, + {RUNE_C(0x0200E2), (double)4}, + {RUNE_C(0x020121), (double)5}, + {RUNE_C(0x02092A), (double)1}, + {RUNE_C(0x020983), (double)30}, + {RUNE_C(0x02098C), (double)40}, + {RUNE_C(0x02099C), (double)40}, + {RUNE_C(0x020AEA), (double)6}, + {RUNE_C(0x020AFD), (double)3}, + {RUNE_C(0x020B19), (double)3}, + {RUNE_C(0x022390), (double)2}, + {RUNE_C(0x022998), (double)3}, + {RUNE_C(0x023B1B), (double)3}, + {RUNE_C(0x02626D), (double)4}, + {RUNE_C(0x02F890), (double)9}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_NV_H */ diff --git a/vendor/librune/include/internal/rtype/vo.h b/vendor/librune/include/internal/rtype/vo.h new file mode 100644 index 0000000..8cb30c8 --- /dev/null +++ b/vendor/librune/include/internal/rtype/vo.h @@ -0,0 +1,232 @@ +/* This file is autogenerated by gen/rtype-vo; DO NOT EDIT. */ + +#ifndef RUNE_INTERNAL_RTYPE_VO_H +#define RUNE_INTERNAL_RTYPE_VO_H + +/* IWYU pragma: private */ +/* clang-format off */ + +#include "../types.h" +#include "../../rtype.h" +#include "../../rune.h" + +static const rprop_vo_bf rtype_vo_lat1_tbl[] = { + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_U, + VO_R, VO_U, VO_R, VO_R, VO_R, VO_R, VO_U, VO_R, + VO_R, VO_U, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_U, VO_U, VO_U, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_U, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_U, + VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, VO_R, +}; + +/* This lookup table omits VO_R entries. As VO_R is the default value, we can + remove them from the lookup table for a dramatic decrease in size. */ +static const struct { + rune lo, hi; + rprop_vo_bf val; +} rtype_vo_tbl[] = { + {RUNE_C(0x0000A7), RUNE_C(0x0000A7), VO_U}, + {RUNE_C(0x0000A9), RUNE_C(0x0000A9), VO_U}, + {RUNE_C(0x0000AE), RUNE_C(0x0000AE), VO_U}, + {RUNE_C(0x0000B1), RUNE_C(0x0000B1), VO_U}, + {RUNE_C(0x0000BC), RUNE_C(0x0000BE), VO_U}, + {RUNE_C(0x0000D7), RUNE_C(0x0000D7), VO_U}, + {RUNE_C(0x0000F7), RUNE_C(0x0000F7), VO_U}, + {RUNE_C(0x0002EA), RUNE_C(0x0002EB), VO_U}, + {RUNE_C(0x001100), RUNE_C(0x0011FF), VO_U}, + {RUNE_C(0x001401), RUNE_C(0x00167F), VO_U}, + {RUNE_C(0x0018B0), RUNE_C(0x0018FF), VO_U}, + {RUNE_C(0x002016), RUNE_C(0x002016), VO_U}, + {RUNE_C(0x002020), RUNE_C(0x002021), VO_U}, + {RUNE_C(0x002030), RUNE_C(0x002031), VO_U}, + {RUNE_C(0x00203B), RUNE_C(0x00203C), VO_U}, + {RUNE_C(0x002042), RUNE_C(0x002042), VO_U}, + {RUNE_C(0x002047), RUNE_C(0x002049), VO_U}, + {RUNE_C(0x002051), RUNE_C(0x002051), VO_U}, + {RUNE_C(0x002065), RUNE_C(0x002065), VO_U}, + {RUNE_C(0x0020DD), RUNE_C(0x0020E0), VO_U}, + {RUNE_C(0x0020E2), RUNE_C(0x0020E4), VO_U}, + {RUNE_C(0x002100), RUNE_C(0x002101), VO_U}, + {RUNE_C(0x002103), RUNE_C(0x002109), VO_U}, + {RUNE_C(0x00210F), RUNE_C(0x00210F), VO_U}, + {RUNE_C(0x002113), RUNE_C(0x002114), VO_U}, + {RUNE_C(0x002116), RUNE_C(0x002117), VO_U}, + {RUNE_C(0x00211E), RUNE_C(0x002123), VO_U}, + {RUNE_C(0x002125), RUNE_C(0x002125), VO_U}, + {RUNE_C(0x002127), RUNE_C(0x002127), VO_U}, + {RUNE_C(0x002129), RUNE_C(0x002129), VO_U}, + {RUNE_C(0x00212E), RUNE_C(0x00212E), VO_U}, + {RUNE_C(0x002135), RUNE_C(0x00213F), VO_U}, + {RUNE_C(0x002145), RUNE_C(0x00214A), VO_U}, + {RUNE_C(0x00214C), RUNE_C(0x00214D), VO_U}, + {RUNE_C(0x00214F), RUNE_C(0x002189), VO_U}, + {RUNE_C(0x00218C), RUNE_C(0x00218F), VO_U}, + {RUNE_C(0x00221E), RUNE_C(0x00221E), VO_U}, + {RUNE_C(0x002234), RUNE_C(0x002235), VO_U}, + {RUNE_C(0x002300), RUNE_C(0x002307), VO_U}, + {RUNE_C(0x00230C), RUNE_C(0x00231F), VO_U}, + {RUNE_C(0x002324), RUNE_C(0x002328), VO_U}, + {RUNE_C(0x002329), RUNE_C(0x00232A), VO_TR}, + {RUNE_C(0x00232B), RUNE_C(0x00232B), VO_U}, + {RUNE_C(0x00237D), RUNE_C(0x00239A), VO_U}, + {RUNE_C(0x0023BE), RUNE_C(0x0023CD), VO_U}, + {RUNE_C(0x0023CF), RUNE_C(0x0023CF), VO_U}, + {RUNE_C(0x0023D1), RUNE_C(0x0023DB), VO_U}, + {RUNE_C(0x0023E2), RUNE_C(0x002422), VO_U}, + {RUNE_C(0x002424), RUNE_C(0x0024FF), VO_U}, + {RUNE_C(0x0025A0), RUNE_C(0x002619), VO_U}, + {RUNE_C(0x002620), RUNE_C(0x002767), VO_U}, + {RUNE_C(0x002776), RUNE_C(0x002793), VO_U}, + {RUNE_C(0x002B12), RUNE_C(0x002B2F), VO_U}, + {RUNE_C(0x002B50), RUNE_C(0x002B59), VO_U}, + {RUNE_C(0x002B97), RUNE_C(0x002B97), VO_U}, + {RUNE_C(0x002BB8), RUNE_C(0x002BD1), VO_U}, + {RUNE_C(0x002BD3), RUNE_C(0x002BEB), VO_U}, + {RUNE_C(0x002BF0), RUNE_C(0x002BFF), VO_U}, + {RUNE_C(0x002E50), RUNE_C(0x002E51), VO_U}, + {RUNE_C(0x002E80), RUNE_C(0x003000), VO_U}, + {RUNE_C(0x003001), RUNE_C(0x003002), VO_TU}, + {RUNE_C(0x003003), RUNE_C(0x003007), VO_U}, + {RUNE_C(0x003008), RUNE_C(0x003011), VO_TR}, + {RUNE_C(0x003012), RUNE_C(0x003013), VO_U}, + {RUNE_C(0x003014), RUNE_C(0x00301F), VO_TR}, + {RUNE_C(0x003020), RUNE_C(0x00302F), VO_U}, + {RUNE_C(0x003030), RUNE_C(0x003030), VO_TR}, + {RUNE_C(0x003031), RUNE_C(0x003040), VO_U}, + {RUNE_C(0x003041), RUNE_C(0x003041), VO_TU}, + {RUNE_C(0x003042), RUNE_C(0x003042), VO_U}, + {RUNE_C(0x003043), RUNE_C(0x003043), VO_TU}, + {RUNE_C(0x003044), RUNE_C(0x003044), VO_U}, + {RUNE_C(0x003045), RUNE_C(0x003045), VO_TU}, + {RUNE_C(0x003046), RUNE_C(0x003046), VO_U}, + {RUNE_C(0x003047), RUNE_C(0x003047), VO_TU}, + {RUNE_C(0x003048), RUNE_C(0x003048), VO_U}, + {RUNE_C(0x003049), RUNE_C(0x003049), VO_TU}, + {RUNE_C(0x00304A), RUNE_C(0x003062), VO_U}, + {RUNE_C(0x003063), RUNE_C(0x003063), VO_TU}, + {RUNE_C(0x003064), RUNE_C(0x003082), VO_U}, + {RUNE_C(0x003083), RUNE_C(0x003083), VO_TU}, + {RUNE_C(0x003084), RUNE_C(0x003084), VO_U}, + {RUNE_C(0x003085), RUNE_C(0x003085), VO_TU}, + {RUNE_C(0x003086), RUNE_C(0x003086), VO_U}, + {RUNE_C(0x003087), RUNE_C(0x003087), VO_TU}, + {RUNE_C(0x003088), RUNE_C(0x00308D), VO_U}, + {RUNE_C(0x00308E), RUNE_C(0x00308E), VO_TU}, + {RUNE_C(0x00308F), RUNE_C(0x003094), VO_U}, + {RUNE_C(0x003095), RUNE_C(0x003096), VO_TU}, + {RUNE_C(0x003097), RUNE_C(0x00309A), VO_U}, + {RUNE_C(0x00309B), RUNE_C(0x00309C), VO_TU}, + {RUNE_C(0x00309D), RUNE_C(0x00309F), VO_U}, + {RUNE_C(0x0030A0), RUNE_C(0x0030A0), VO_TR}, + {RUNE_C(0x0030A1), RUNE_C(0x0030A1), VO_TU}, + {RUNE_C(0x0030A2), RUNE_C(0x0030A2), VO_U}, + {RUNE_C(0x0030A3), RUNE_C(0x0030A3), VO_TU}, + {RUNE_C(0x0030A4), RUNE_C(0x0030A4), VO_U}, + {RUNE_C(0x0030A5), RUNE_C(0x0030A5), VO_TU}, + {RUNE_C(0x0030A6), RUNE_C(0x0030A6), VO_U}, + {RUNE_C(0x0030A7), RUNE_C(0x0030A7), VO_TU}, + {RUNE_C(0x0030A8), RUNE_C(0x0030A8), VO_U}, + {RUNE_C(0x0030A9), RUNE_C(0x0030A9), VO_TU}, + {RUNE_C(0x0030AA), RUNE_C(0x0030C2), VO_U}, + {RUNE_C(0x0030C3), RUNE_C(0x0030C3), VO_TU}, + {RUNE_C(0x0030C4), RUNE_C(0x0030E2), VO_U}, + {RUNE_C(0x0030E3), RUNE_C(0x0030E3), VO_TU}, + {RUNE_C(0x0030E4), RUNE_C(0x0030E4), VO_U}, + {RUNE_C(0x0030E5), RUNE_C(0x0030E5), VO_TU}, + {RUNE_C(0x0030E6), RUNE_C(0x0030E6), VO_U}, + {RUNE_C(0x0030E7), RUNE_C(0x0030E7), VO_TU}, + {RUNE_C(0x0030E8), RUNE_C(0x0030ED), VO_U}, + {RUNE_C(0x0030EE), RUNE_C(0x0030EE), VO_TU}, + {RUNE_C(0x0030EF), RUNE_C(0x0030F4), VO_U}, + {RUNE_C(0x0030F5), RUNE_C(0x0030F6), VO_TU}, + {RUNE_C(0x0030F7), RUNE_C(0x0030FB), VO_U}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FC), VO_TR}, + {RUNE_C(0x0030FD), RUNE_C(0x003126), VO_U}, + {RUNE_C(0x003127), RUNE_C(0x003127), VO_TU}, + {RUNE_C(0x003128), RUNE_C(0x0031EF), VO_U}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF), VO_TU}, + {RUNE_C(0x003200), RUNE_C(0x0032FE), VO_U}, + {RUNE_C(0x0032FF), RUNE_C(0x003357), VO_TU}, + {RUNE_C(0x003358), RUNE_C(0x00337A), VO_U}, + {RUNE_C(0x00337B), RUNE_C(0x00337F), VO_TU}, + {RUNE_C(0x003380), RUNE_C(0x00A4CF), VO_U}, + {RUNE_C(0x00A960), RUNE_C(0x00A97F), VO_U}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7FF), VO_U}, + {RUNE_C(0x00E000), RUNE_C(0x00FAFF), VO_U}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE1F), VO_U}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE48), VO_U}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE52), VO_TU}, + {RUNE_C(0x00FE53), RUNE_C(0x00FE57), VO_U}, + {RUNE_C(0x00FE59), RUNE_C(0x00FE5E), VO_TR}, + {RUNE_C(0x00FE5F), RUNE_C(0x00FE62), VO_U}, + {RUNE_C(0x00FE67), RUNE_C(0x00FE6F), VO_U}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF01), VO_TU}, + {RUNE_C(0x00FF02), RUNE_C(0x00FF07), VO_U}, + {RUNE_C(0x00FF08), RUNE_C(0x00FF09), VO_TR}, + {RUNE_C(0x00FF0A), RUNE_C(0x00FF0B), VO_U}, + {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C), VO_TU}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E), VO_TU}, + {RUNE_C(0x00FF0F), RUNE_C(0x00FF19), VO_U}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B), VO_TR}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F), VO_TU}, + {RUNE_C(0x00FF20), RUNE_C(0x00FF3A), VO_U}, + {RUNE_C(0x00FF3B), RUNE_C(0x00FF3B), VO_TR}, + {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C), VO_U}, + {RUNE_C(0x00FF3D), RUNE_C(0x00FF3D), VO_TR}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E), VO_U}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F), VO_TR}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF5A), VO_U}, + {RUNE_C(0x00FF5B), RUNE_C(0x00FF60), VO_TR}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE2), VO_U}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3), VO_TR}, + {RUNE_C(0x00FFE4), RUNE_C(0x00FFE7), VO_U}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8), VO_U}, + {RUNE_C(0x00FFFC), RUNE_C(0x00FFFD), VO_U}, + {RUNE_C(0x010980), RUNE_C(0x01099F), VO_U}, + {RUNE_C(0x011580), RUNE_C(0x0115FF), VO_U}, + {RUNE_C(0x011A00), RUNE_C(0x011ABF), VO_U}, + {RUNE_C(0x013000), RUNE_C(0x01345F), VO_U}, + {RUNE_C(0x014400), RUNE_C(0x01467F), VO_U}, + {RUNE_C(0x016FE0), RUNE_C(0x018D7F), VO_U}, + {RUNE_C(0x01AFF0), RUNE_C(0x01B2FF), VO_U}, + {RUNE_C(0x01CF00), RUNE_C(0x01CFCF), VO_U}, + {RUNE_C(0x01D000), RUNE_C(0x01D1FF), VO_U}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D37F), VO_U}, + {RUNE_C(0x01D800), RUNE_C(0x01DAAF), VO_U}, + {RUNE_C(0x01F000), RUNE_C(0x01F1FF), VO_U}, + {RUNE_C(0x01F200), RUNE_C(0x01F201), VO_TU}, + {RUNE_C(0x01F202), RUNE_C(0x01F7FF), VO_U}, + {RUNE_C(0x01F900), RUNE_C(0x01FAFF), VO_U}, + {RUNE_C(0x020000), RUNE_C(0x02FFFD), VO_U}, + {RUNE_C(0x030000), RUNE_C(0x03FFFD), VO_U}, + {RUNE_C(0x0F0000), RUNE_C(0x0FFFFD), VO_U}, + {RUNE_C(0x100000), RUNE_C(0x10FFFD), VO_U}, +}; + +#endif /* !RUNE_INTERNAL_RTYPE_VO_H */ diff --git a/vendor/librune/include/internal/types.h b/vendor/librune/include/internal/types.h new file mode 100644 index 0000000..bc1bb9b --- /dev/null +++ b/vendor/librune/include/internal/types.h @@ -0,0 +1,19 @@ +/* IWYU pragma: private */ + +#include <stddef.h> /* IWYU pragma: export */ +#include <stdint.h> + +typedef unsigned char char8_t; +typedef uint_least32_t rune; + +#if _RUNE_NEEDS_U8VIEW && !_RUNE_HAS_U8VIEW +struct u8view { + const char8_t *p; + size_t len; +}; + +# define PRIsU8 ".*s" +# define U8_PRI_ARGS(sv) ((int)(sv).len), ((sv).p) + +# define _RUNE_HAS_U8VIEW 1 +#endif diff --git a/vendor/librune/include/mbstring.h b/vendor/librune/include/mbstring.h new file mode 100644 index 0000000..c1336a8 --- /dev/null +++ b/vendor/librune/include/mbstring.h @@ -0,0 +1,41 @@ +#ifndef RUNE_MBSTRING_H +#define RUNE_MBSTRING_H + +#include "internal/qmacros.h" +#define _RUNE_NEEDS_U8VIEW 1 +#include "internal/types.h" /* IWYU pragma: export */ + +#define U8_LEN_MAX (4) + +int u8tor(rune *, const char8_t *); +int u8tor_uc(rune *, const char8_t *); + +int rtou8(char8_t *, rune, size_t); +size_t u8set(char8_t *, rune, size_t); + +char8_t *u8chk(const char8_t *, size_t); +[[unsequenced]] bool u8chkr(rune); + +[[unsequenced]] int u8wdth(rune); + +int u8rlen(const char8_t *); +size_t u8len(const char8_t *, size_t); + +int u8next(rune *, const char8_t **, size_t *); +int u8prev(rune *, const char8_t **, const char8_t *); + +char8_t *u8chr(const char8_t *, rune, size_t); +char8_t *u8rchr(const char8_t *, rune, size_t); + +size_t u8spn(const char8_t *, size_t, const rune *, size_t); +size_t u8bspn(const char8_t *, size_t, const rune *, size_t); +size_t u8cspn(const char8_t *, size_t, const rune *, size_t); +size_t u8cbspn(const char8_t *, size_t, const rune *, size_t); + +#if !_RUNE_NO_MACRO_WRAPPER +# define u8chk(s, n) _RUNE_Q_PTR(u8chk, (s), (s), (n)) +# define u8chr(s, ch, n) _RUNE_Q_PTR(u8chr, (s), (s), (ch), (n)) +# define u8rchr(s, ch, n) _RUNE_Q_PTR(u8rchr, (s), (s), (ch), (n)) +#endif + +#endif /* !RUNE_MBSTRING_H */ diff --git a/vendor/librune/include/rtype.h b/vendor/librune/include/rtype.h new file mode 100644 index 0000000..337a327 --- /dev/null +++ b/vendor/librune/include/rtype.h @@ -0,0 +1,289 @@ +#ifndef RUNE_RTYPE_H +#define RUNE_RTYPE_H + +#include <stdint.h> + +#include "internal/types.h" + +typedef uint_fast32_t rprop_gc_bf; +#define GC_CN ((rprop_gc_bf)1 << 0) /* Not Assigned */ +#define GC_CC ((rprop_gc_bf)1 << 1) /* Control */ +#define GC_CF ((rprop_gc_bf)1 << 2) /* Format */ +#define GC_CO ((rprop_gc_bf)1 << 3) /* Private Use */ +#define GC_CS ((rprop_gc_bf)1 << 4) /* Surrogate */ +#define GC_LL ((rprop_gc_bf)1 << 5) /* Lowercase Letter */ +#define GC_LM ((rprop_gc_bf)1 << 6) /* Modifier Letter */ +#define GC_LO ((rprop_gc_bf)1 << 7) /* Other Letter */ +#define GC_LT ((rprop_gc_bf)1 << 8) /* Titlecase Letter */ +#define GC_LU ((rprop_gc_bf)1 << 9) /* Uppercase Letter */ +#define GC_MC ((rprop_gc_bf)1 << 10) /* Spacing Mark */ +#define GC_ME ((rprop_gc_bf)1 << 11) /* Enclosing Mark */ +#define GC_MN ((rprop_gc_bf)1 << 12) /* Nonspacing Mark */ +#define GC_ND ((rprop_gc_bf)1 << 13) /* Decimal Number */ +#define GC_NL ((rprop_gc_bf)1 << 14) /* Letter Number */ +#define GC_NO ((rprop_gc_bf)1 << 15) /* Other Number */ +#define GC_PC ((rprop_gc_bf)1 << 16) /* Connector Punctuation */ +#define GC_PD ((rprop_gc_bf)1 << 17) /* Dash Punctuation */ +#define GC_PE ((rprop_gc_bf)1 << 18) /* Close Punctuation */ +#define GC_PF ((rprop_gc_bf)1 << 19) /* Final Punctuation */ +#define GC_PI ((rprop_gc_bf)1 << 20) /* Initial Punctuation */ +#define GC_PO ((rprop_gc_bf)1 << 21) /* Other Punctuation */ +#define GC_PS ((rprop_gc_bf)1 << 22) /* Open Punctuation */ +#define GC_SC ((rprop_gc_bf)1 << 23) /* Currency Symbol */ +#define GC_SK ((rprop_gc_bf)1 << 24) /* Modifier Symbol */ +#define GC_SM ((rprop_gc_bf)1 << 25) /* Math Symbol */ +#define GC_SO ((rprop_gc_bf)1 << 26) /* Other Symbol */ +#define GC_ZL ((rprop_gc_bf)1 << 27) /* Line Separator */ +#define GC_ZP ((rprop_gc_bf)1 << 28) /* Paragraph Separator */ +#define GC_ZS ((rprop_gc_bf)1 << 29) /* Space Separator */ +#define GC_C (GC_CC | GC_CF | GC_CN | GC_CO | GC_CS) /* Other */ +#define GC_LC (GC_LU | GC_LL | GC_LT) /* Cased Letter */ +#define GC_L (GC_LL | GC_LM | GC_LO | GC_LT | GC_LU) /* Letter */ +#define GC_M (GC_MC | GC_ME | GC_MN) /* Mark */ +#define GC_N (GC_ND | GC_NL | GC_NO) /* Number */ +#define GC_S (GC_SC | GC_SK | GC_SM | GC_SO) /* Symbol */ +#define GC_Z (GC_ZL | GC_ZP | GC_ZS) /* Separator */ +#define GC_P \ + (GC_PC | GC_PD | GC_PE | GC_PF | GC_PI | GC_PO | GC_PS) /* Punctuation */ + +typedef unsigned int rprop_jt_bf; +#define JT_U ((rprop_jt_bf)1 << 0) /* Non Joining */ +#define JT_C ((rprop_jt_bf)1 << 1) /* Join Causing */ +#define JT_D ((rprop_jt_bf)1 << 2) /* Dual Joining */ +#define JT_R ((rprop_jt_bf)1 << 4) /* Right Joining */ +#define JT_L ((rprop_jt_bf)1 << 3) /* Left Joining */ +#define JT_T ((rprop_jt_bf)1 << 5) /* Transparent */ + +typedef unsigned int rprop_nt_bf; +#define NT_NONE ((rprop_nt_bf)1 << 0) +#define NT_DECIMAL ((rprop_nt_bf)1 << 1) +#define NT_DIGIT ((rprop_nt_bf)1 << 2) +#define NT_NUMERIC ((rprop_nt_bf)1 << 3) + +typedef uint_fast32_t rprop_dt_bf; +#define DT_NONE ((rprop_dt_bf)1 << 0) +#define DT_CANONICAL ((rprop_dt_bf)1 << 1) +#define DT_CIRCLE ((rprop_dt_bf)1 << 2) +#define DT_COMPAT ((rprop_dt_bf)1 << 3) +#define DT_FINAL ((rprop_dt_bf)1 << 4) +#define DT_FONT ((rprop_dt_bf)1 << 5) +#define DT_FRACTION ((rprop_dt_bf)1 << 6) +#define DT_INITIAL ((rprop_dt_bf)1 << 7) +#define DT_ISOLATED ((rprop_dt_bf)1 << 8) +#define DT_MEDIAL ((rprop_dt_bf)1 << 9) +#define DT_NARROW ((rprop_dt_bf)1 << 10) +#define DT_NOBREAK ((rprop_dt_bf)1 << 11) +#define DT_SMALL ((rprop_dt_bf)1 << 12) +#define DT_SQUARE ((rprop_dt_bf)1 << 13) +#define DT_SUB ((rprop_dt_bf)1 << 14) +#define DT_SUPER ((rprop_dt_bf)1 << 15) +#define DT_VERTICAL ((rprop_dt_bf)1 << 16) +#define DT_WIDE ((rprop_dt_bf)1 << 17) + +/* GCC at the time of writing doesn’t properly support _BitInt */ +#ifdef __SIZEOF_INT128__ +__extension__ typedef unsigned __int128 rprop_jg_bf; +#elif BITINT_MAXWIDTH >= 128 +typedef unsigned _BitInt(128) rprop_jg_bf; +#elif BITINT_MAXWIDTH >= 103 +/* Highly unlikely this is ever needed, but who knows. Powers of 2 generate + more efficient code so prefer 128. */ +typedef unsigned _BitInt(103) rprop_jg_bf; +#else +# error "_BitInt types of width >=103 not supported" +#endif + +#define JG_NONE ((rprop_jg_bf)1 << 0) +#define JG_AFRICAN_FEH ((rprop_jg_bf)1 << 1) +#define JG_AFRICAN_NOON ((rprop_jg_bf)1 << 2) +#define JG_AFRICAN_QAF ((rprop_jg_bf)1 << 3) +#define JG_AIN ((rprop_jg_bf)1 << 4) +#define JG_ALAPH ((rprop_jg_bf)1 << 5) +#define JG_ALEF ((rprop_jg_bf)1 << 6) +#define JG_BEH ((rprop_jg_bf)1 << 7) +#define JG_BETH ((rprop_jg_bf)1 << 8) +#define JG_BURUSHASKI_YEH_BARREE ((rprop_jg_bf)1 << 9) +#define JG_DAL ((rprop_jg_bf)1 << 10) +#define JG_DALATH_RISH ((rprop_jg_bf)1 << 11) +#define JG_E ((rprop_jg_bf)1 << 12) +#define JG_FARSI_YEH ((rprop_jg_bf)1 << 13) +#define JG_FE ((rprop_jg_bf)1 << 14) +#define JG_FEH ((rprop_jg_bf)1 << 15) +#define JG_FINAL_SEMKATH ((rprop_jg_bf)1 << 16) +#define JG_GAF ((rprop_jg_bf)1 << 17) +#define JG_GAMAL ((rprop_jg_bf)1 << 18) +#define JG_HAH ((rprop_jg_bf)1 << 19) +#define JG_HANIFI_ROHINGYA_KINNA_YA ((rprop_jg_bf)1 << 20) +#define JG_HANIFI_ROHINGYA_PA ((rprop_jg_bf)1 << 21) +#define JG_HE ((rprop_jg_bf)1 << 22) +#define JG_HEH ((rprop_jg_bf)1 << 23) +#define JG_HEH_GOAL ((rprop_jg_bf)1 << 24) +#define JG_HETH ((rprop_jg_bf)1 << 25) +#define JG_KAF ((rprop_jg_bf)1 << 26) +#define JG_KAPH ((rprop_jg_bf)1 << 27) +#define JG_KHAPH ((rprop_jg_bf)1 << 28) +#define JG_KNOTTED_HEH ((rprop_jg_bf)1 << 29) +#define JG_LAM ((rprop_jg_bf)1 << 30) +#define JG_LAMADH ((rprop_jg_bf)1 << 31) +#define JG_MALAYALAM_BHA ((rprop_jg_bf)1 << 32) +#define JG_MALAYALAM_JA ((rprop_jg_bf)1 << 33) +#define JG_MALAYALAM_LLA ((rprop_jg_bf)1 << 34) +#define JG_MALAYALAM_LLLA ((rprop_jg_bf)1 << 35) +#define JG_MALAYALAM_NGA ((rprop_jg_bf)1 << 36) +#define JG_MALAYALAM_NNA ((rprop_jg_bf)1 << 37) +#define JG_MALAYALAM_NNNA ((rprop_jg_bf)1 << 38) +#define JG_MALAYALAM_NYA ((rprop_jg_bf)1 << 39) +#define JG_MALAYALAM_RA ((rprop_jg_bf)1 << 40) +#define JG_MALAYALAM_SSA ((rprop_jg_bf)1 << 41) +#define JG_MALAYALAM_TTA ((rprop_jg_bf)1 << 42) +#define JG_MANICHAEAN_ALEPH ((rprop_jg_bf)1 << 43) +#define JG_MANICHAEAN_AYIN ((rprop_jg_bf)1 << 44) +#define JG_MANICHAEAN_BETH ((rprop_jg_bf)1 << 45) +#define JG_MANICHAEAN_DALETH ((rprop_jg_bf)1 << 46) +#define JG_MANICHAEAN_DHAMEDH ((rprop_jg_bf)1 << 47) +#define JG_MANICHAEAN_FIVE ((rprop_jg_bf)1 << 48) +#define JG_MANICHAEAN_GIMEL ((rprop_jg_bf)1 << 49) +#define JG_MANICHAEAN_HETH ((rprop_jg_bf)1 << 50) +#define JG_MANICHAEAN_HUNDRED ((rprop_jg_bf)1 << 51) +#define JG_MANICHAEAN_KAPH ((rprop_jg_bf)1 << 52) +#define JG_MANICHAEAN_LAMEDH ((rprop_jg_bf)1 << 53) +#define JG_MANICHAEAN_MEM ((rprop_jg_bf)1 << 54) +#define JG_MANICHAEAN_NUN ((rprop_jg_bf)1 << 55) +#define JG_MANICHAEAN_ONE ((rprop_jg_bf)1 << 56) +#define JG_MANICHAEAN_PE ((rprop_jg_bf)1 << 57) +#define JG_MANICHAEAN_QOPH ((rprop_jg_bf)1 << 58) +#define JG_MANICHAEAN_RESH ((rprop_jg_bf)1 << 59) +#define JG_MANICHAEAN_SADHE ((rprop_jg_bf)1 << 60) +#define JG_MANICHAEAN_SAMEKH ((rprop_jg_bf)1 << 61) +#define JG_MANICHAEAN_TAW ((rprop_jg_bf)1 << 62) +#define JG_MANICHAEAN_TEN ((rprop_jg_bf)1 << 63) +#define JG_MANICHAEAN_TETH ((rprop_jg_bf)1 << 64) +#define JG_MANICHAEAN_THAMEDH ((rprop_jg_bf)1 << 65) +#define JG_MANICHAEAN_TWENTY ((rprop_jg_bf)1 << 66) +#define JG_MANICHAEAN_WAW ((rprop_jg_bf)1 << 67) +#define JG_MANICHAEAN_YODH ((rprop_jg_bf)1 << 68) +#define JG_MANICHAEAN_ZAYIN ((rprop_jg_bf)1 << 69) +#define JG_MEEM ((rprop_jg_bf)1 << 70) +#define JG_MIM ((rprop_jg_bf)1 << 71) +#define JG_NOON ((rprop_jg_bf)1 << 72) +#define JG_NUN ((rprop_jg_bf)1 << 73) +#define JG_NYA ((rprop_jg_bf)1 << 74) +#define JG_PE ((rprop_jg_bf)1 << 75) +#define JG_QAF ((rprop_jg_bf)1 << 76) +#define JG_QAPH ((rprop_jg_bf)1 << 77) +#define JG_REH ((rprop_jg_bf)1 << 78) +#define JG_REVERSED_PE ((rprop_jg_bf)1 << 79) +#define JG_ROHINGYA_YEH ((rprop_jg_bf)1 << 80) +#define JG_SAD ((rprop_jg_bf)1 << 81) +#define JG_SADHE ((rprop_jg_bf)1 << 82) +#define JG_SEEN ((rprop_jg_bf)1 << 83) +#define JG_SEMKATH ((rprop_jg_bf)1 << 84) +#define JG_SHIN ((rprop_jg_bf)1 << 85) +#define JG_STRAIGHT_WAW ((rprop_jg_bf)1 << 86) +#define JG_SWASH_KAF ((rprop_jg_bf)1 << 87) +#define JG_SYRIAC_WAW ((rprop_jg_bf)1 << 88) +#define JG_TAH ((rprop_jg_bf)1 << 89) +#define JG_TAW ((rprop_jg_bf)1 << 90) +#define JG_TEH_MARBUTA ((rprop_jg_bf)1 << 91) +#define JG_TEH_MARBUTA_GOAL ((rprop_jg_bf)1 << 92) +#define JG_TETH ((rprop_jg_bf)1 << 93) +#define JG_THIN_YEH ((rprop_jg_bf)1 << 94) +#define JG_VERTICAL_TAIL ((rprop_jg_bf)1 << 95) +#define JG_WAW ((rprop_jg_bf)1 << 96) +#define JG_YEH ((rprop_jg_bf)1 << 97) +#define JG_YEH_BARREE ((rprop_jg_bf)1 << 98) +#define JG_YEH_WITH_TAIL ((rprop_jg_bf)1 << 99) +#define JG_YUDH ((rprop_jg_bf)1 << 100) +#define JG_YUDH_HE ((rprop_jg_bf)1 << 101) +#define JG_ZAIN ((rprop_jg_bf)1 << 102) +#define JG_ZHAIN ((rprop_jg_bf)1 << 103) + +typedef unsigned int rprop_vo_bf; +#define VO_U ((rprop_vo_bf)1 << 0) /* Upright */ +#define VO_R ((rprop_vo_bf)1 << 1) /* Rotated */ +#define VO_TU ((rprop_vo_bf)1 << 2) /* Transformed ∨ Upright */ +#define VO_TR ((rprop_vo_bf)1 << 3) /* Transformed ∨ Rotated */ + +[[unsequenced]] bool riscntrl(rune); +[[unsequenced]] bool risdigit(rune); +[[unsequenced]] bool risgraph(rune); +[[unsequenced]] bool rislower(rune); +[[unsequenced]] bool rismark(rune); +[[unsequenced]] bool risnumber(rune); +[[unsequenced]] bool rispunct(rune); +[[unsequenced]] bool risspace(rune); +[[unsequenced]] bool rissymbol(rune); +[[unsequenced]] bool ristitle(rune); +[[unsequenced]] bool risupper(rune); + +[[unsequenced]] rprop_dt_bf rprop_get_dt(rune); +[[unsequenced]] rprop_gc_bf rprop_get_gc(rune); +[[unsequenced]] rprop_jg_bf rprop_get_jg(rune); +[[unsequenced]] rprop_jt_bf rprop_get_jt(rune); +[[unsequenced]] rprop_nt_bf rprop_get_nt(rune); +[[unsequenced]] rprop_vo_bf rprop_get_vo(rune); + +[[unsequenced]] double rprop_get_nv(rune); +[[unsequenced]] rune rprop_get_equideo(rune); + +/* Non-autogenerated rprop_is_*() functions */ +[[unsequenced]] bool rprop_is_ahex(rune); +[[unsequenced]] bool rprop_is_idst(rune); +[[unsequenced]] bool rprop_is_idsu(rune); +[[unsequenced]] bool rprop_is_join_c(rune); +[[unsequenced]] bool rprop_is_nchar(rune); +[[unsequenced]] bool rprop_is_pat_ws(rune); +[[unsequenced]] bool rprop_is_ri(rune); + +/* PROP PREDICATES START */ +[[unsequenced]] bool rprop_is_alpha(rune); +[[unsequenced]] bool rprop_is_bidi_c(rune); +[[unsequenced]] bool rprop_is_bidi_m(rune); +[[unsequenced]] bool rprop_is_cased(rune); +[[unsequenced]] bool rprop_is_ci(rune); +[[unsequenced]] bool rprop_is_cwcf(rune); +[[unsequenced]] bool rprop_is_cwcm(rune); +[[unsequenced]] bool rprop_is_cwkcf(rune); +[[unsequenced]] bool rprop_is_cwl(rune); +[[unsequenced]] bool rprop_is_cwt(rune); +[[unsequenced]] bool rprop_is_cwu(rune); +[[unsequenced]] bool rprop_is_dash(rune); +[[unsequenced]] bool rprop_is_dep(rune); +[[unsequenced]] bool rprop_is_di(rune); +[[unsequenced]] bool rprop_is_dia(rune); +[[unsequenced]] bool rprop_is_ebase(rune); +[[unsequenced]] bool rprop_is_ecomp(rune); +[[unsequenced]] bool rprop_is_emod(rune); +[[unsequenced]] bool rprop_is_emoji(rune); +[[unsequenced]] bool rprop_is_epres(rune); +[[unsequenced]] bool rprop_is_ext(rune); +[[unsequenced]] bool rprop_is_extpic(rune); +[[unsequenced]] bool rprop_is_gr_base(rune); +[[unsequenced]] bool rprop_is_gr_ext(rune); +[[unsequenced]] bool rprop_is_hex(rune); +[[unsequenced]] bool rprop_is_id_compat_math_continue(rune); +[[unsequenced]] bool rprop_is_id_compat_math_start(rune); +[[unsequenced]] bool rprop_is_idbo(rune); +[[unsequenced]] bool rprop_is_idc(rune); +[[unsequenced]] bool rprop_is_ideo(rune); +[[unsequenced]] bool rprop_is_ids(rune); +[[unsequenced]] bool rprop_is_incb(rune); +[[unsequenced]] bool rprop_is_loe(rune); +[[unsequenced]] bool rprop_is_lower(rune); +[[unsequenced]] bool rprop_is_math(rune); +[[unsequenced]] bool rprop_is_pat_syn(rune); +[[unsequenced]] bool rprop_is_pcm(rune); +[[unsequenced]] bool rprop_is_qmark(rune); +[[unsequenced]] bool rprop_is_radical(rune); +[[unsequenced]] bool rprop_is_sd(rune); +[[unsequenced]] bool rprop_is_sterm(rune); +[[unsequenced]] bool rprop_is_term(rune); +[[unsequenced]] bool rprop_is_uideo(rune); +[[unsequenced]] bool rprop_is_upper(rune); +[[unsequenced]] bool rprop_is_vs(rune); +[[unsequenced]] bool rprop_is_wspace(rune); +[[unsequenced]] bool rprop_is_xidc(rune); +[[unsequenced]] bool rprop_is_xids(rune); +/* PROP PREDICATES END */ + +#endif diff --git a/vendor/librune/include/rune.h b/vendor/librune/include/rune.h new file mode 100644 index 0000000..23c3b7c --- /dev/null +++ b/vendor/librune/include/rune.h @@ -0,0 +1,34 @@ +#ifndef RUNE_RUNE_H +#define RUNE_RUNE_H + +#include <inttypes.h> + +#include "internal/types.h" /* IWYU pragma: export */ + +#define _RUNE_PRIDEF(c) PRI##c##LEAST32 +#define _RUNE_SCNDEF(c) SCN##c##LEAST32 + +#ifdef PRIBLEAST32 +# define PRIBRUNE _RUNE_PRIDEF(B) +#endif +#define PRIbRUNE _RUNE_PRIDEF(b) +#define PRIdRUNE _RUNE_PRIDEF(d) +#define PRIiRUNE _RUNE_PRIDEF(i) +#define PRIoRUNE _RUNE_PRIDEF(o) +#define PRIuRUNE _RUNE_PRIDEF(u) +#define PRIxRUNE _RUNE_PRIDEF(x) +#define PRIXRUNE _RUNE_PRIDEF(X) + +#define SCNbRUNE _RUNE_SCNDEF(b) +#define SCNdRUNE _RUNE_SCNDEF(d) +#define SCNiRUNE _RUNE_SCNDEF(i) +#define SCNuRUNE _RUNE_SCNDEF(u) +#define SCNoRUNE _RUNE_SCNDEF(o) +#define SCNxRUNE _RUNE_SCNDEF(x) + +#define RUNE_C(x) UINT32_C(x) + +#define RUNE_ERROR ((rune)0xFFFD) +#define RUNE_MAX ((rune)RUNE_C(0x10FFFF)) + +#endif /* !RUNE_RUNE_H */ diff --git a/vendor/librune/lib/builder/u8strfit.c b/vendor/librune/lib/builder/u8strfit.c new file mode 100644 index 0000000..d0f0ecb --- /dev/null +++ b/vendor/librune/lib/builder/u8strfit.c @@ -0,0 +1,11 @@ +#include <stdlib.h> + +#include "builder.h" + +#include "internal/common.h" + +struct u8str * +u8strfit(struct u8str *b) +{ + return (b->p = realloc(b->p, b->len)) ? b : nullptr; +} diff --git a/vendor/librune/lib/builder/u8strfree.c b/vendor/librune/lib/builder/u8strfree.c new file mode 100644 index 0000000..506c71b --- /dev/null +++ b/vendor/librune/lib/builder/u8strfree.c @@ -0,0 +1,9 @@ +#include <stdlib.h> + +#include "builder.h" + +void +u8strfree(struct u8str b) +{ + free(b.p); +} diff --git a/vendor/librune/lib/builder/u8strgrow.c b/vendor/librune/lib/builder/u8strgrow.c new file mode 100644 index 0000000..022b216 --- /dev/null +++ b/vendor/librune/lib/builder/u8strgrow.c @@ -0,0 +1,41 @@ +#include <stdlib.h> + +#include "builder.h" + +#include "internal/common.h" + +static size_t nextpow2(size_t); + +struct u8str * +u8strgrow(struct u8str *b, size_t n) +{ + if (n > b->cap) { + b->cap = nextpow2(n); + if (!(b->p = realloc(b->p, b->cap))) + return nullptr; + } + return b; +} + +size_t +nextpow2(size_t x) +{ +#if defined(__has_builtin) && __has_builtin(__builtin_clzl) + x = x <= 1 ? 1 : 1 << (64 - __builtin_clzl(x - 1)); +#else + if (x) { + x--; + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + if (sizeof(size_t) >= 4) + x |= x >> 16; + if (sizeof(size_t) >= 8) + x |= x >> 32; + } + x++; +#endif + + return x; +} diff --git a/vendor/librune/lib/builder/u8strinit.c b/vendor/librune/lib/builder/u8strinit.c new file mode 100644 index 0000000..29947e8 --- /dev/null +++ b/vendor/librune/lib/builder/u8strinit.c @@ -0,0 +1,18 @@ +#include <stdlib.h> + +#include "builder.h" + +#include "internal/common.h" + +struct u8str * +u8strinit(struct u8str *b, size_t n) +{ + if (n) { + if (!(b->p = malloc(n))) + return nullptr; + } else + b->p = nullptr; + b->len = 0; + b->cap = n; + return b; +} diff --git a/vendor/librune/lib/builder/u8strpushr.c b/vendor/librune/lib/builder/u8strpushr.c new file mode 100644 index 0000000..3fe31f2 --- /dev/null +++ b/vendor/librune/lib/builder/u8strpushr.c @@ -0,0 +1,13 @@ +#include "builder.h" +#include "mbstring.h" + +#include "internal/common.h" + +struct u8str * +u8strpushr(struct u8str *b, rune ch) +{ + if (!u8strgrow(b, b->len + u8wdth(ch))) + return nullptr; + b->len += rtou8(b->p + b->len, ch, b->cap - b->len); + return b; +} diff --git a/vendor/librune/lib/builder/u8strpushstr.c b/vendor/librune/lib/builder/u8strpushstr.c new file mode 100644 index 0000000..8329c81 --- /dev/null +++ b/vendor/librune/lib/builder/u8strpushstr.c @@ -0,0 +1,17 @@ +#include <string.h> + +#include "builder.h" +#include "mbstring.h" + +#include "internal/common.h" + +struct u8str * +u8strpushstr(struct u8str *b, const char *s) +{ + size_t n = strlen(s); + if (!u8strgrow(b, b->len + n)) + return nullptr; + memcpy(b->p + b->len, s, n); + b->len += n; + return b; +} diff --git a/vendor/librune/lib/builder/u8strpushu8.c b/vendor/librune/lib/builder/u8strpushu8.c new file mode 100644 index 0000000..2ef2563 --- /dev/null +++ b/vendor/librune/lib/builder/u8strpushu8.c @@ -0,0 +1,16 @@ +#include <string.h> + +#include "builder.h" +#include "mbstring.h" + +#include "internal/common.h" + +struct u8str * +u8strpushu8(struct u8str *b, struct u8view v) +{ + if (!u8strgrow(b, b->len + v.len)) + return nullptr; + memcpy(b->p + b->len, v.p, v.len); + b->len += v.len; + return b; +} diff --git a/vendor/librune/lib/gbrk/u8glen.c b/vendor/librune/lib/gbrk/u8glen.c new file mode 100644 index 0000000..13cac7e --- /dev/null +++ b/vendor/librune/lib/gbrk/u8glen.c @@ -0,0 +1,13 @@ +#include "gbrk.h" + +size_t +u8glen(const char8_t *s, size_t n) +{ + size_t m = 0; + struct u8view unused; + + while (u8gnext(&unused, &s, &n)) + m++; + + return m; +} diff --git a/vendor/librune/lib/gbrk/u8gnext.c b/vendor/librune/lib/gbrk/u8gnext.c new file mode 100644 index 0000000..e2bce54 --- /dev/null +++ b/vendor/librune/lib/gbrk/u8gnext.c @@ -0,0 +1,147 @@ +#include <stddef.h> + +#include "gbrk.h" +#include "mbstring.h" + +#include "internal/common.h" +#include "internal/gbrk_lookup.h" + +struct gbrk_state { + enum { + GB9C_NONE, + GB9C_CNSNT, + GB9C_LNK, + } gb9c; + bool gb11 : 1; + bool gb12 : 1; +}; + +static bool u8isgbrk(rune, rune, struct gbrk_state *); + +#define DEFAULT GBP_OTHER +#define HAS_VALUE 1 +#define TABLE gbrk_prop_tbl +#define TYPE gbrk_prop +#include "internal/rtype/lookup-func.h" + +size_t +u8gnext(struct u8view *g, const char8_t **s, size_t *n) +{ + int m; + rune ch1; + const char8_t *p; + struct gbrk_state gs = {0}; + + if (*n == 0) + return 0; + + g->p = p = *s; + p += u8tor_uc(&ch1, p); + + for (;;) { + rune ch2; + + if ((size_t)(p - *s) >= *n) + ch2 = 0; + else + m = u8tor_uc(&ch2, p); + if (u8isgbrk(ch1, ch2, &gs)) { + *n -= g->len = p - *s; + *s = p; + return g->len; + } + + ch1 = ch2; + p += m; + } +} + +bool +u8isgbrk(rune a, rune b, struct gbrk_state *gs) +{ + gbrk_prop ap, bp; + + /* GB1 & GB2 */ + if (!a || !b) + goto do_break; + + /* GB3 & ASCII fast-track */ + if ((a | b) < 0x300) { + if (a == '\r' && b == '\n') + return false; + goto do_break; + } + + /* GB4 */ + if (a == '\r' || a == '\n' || ((ap = lookup(a)) & GBP_CTRL)) + goto do_break; + + /* GB5 */ + if (b == '\r' || b == '\n' || ((bp = lookup(b)) & GBP_CTRL)) + goto do_break; + + /* Setting flags for GB9c */ + if (ap & GBP_INDC_CNSNT) + gs->gb9c = GB9C_CNSNT; + else if ((ap & GBP_INDC_LNK) && gs->gb9c == GB9C_CNSNT) + gs->gb9c = GB9C_LNK; + + /* GB6 */ + if ((ap & GBP_HNGL_L) + && (bp & (GBP_HNGL_L | GBP_HNGL_V | GBP_HNGL_LV | GBP_HNGL_LVT))) + { + return false; + } + + /* GB7 */ + if ((ap & (GBP_HNGL_LV | GBP_HNGL_V)) && (bp & (GBP_HNGL_V | GBP_HNGL_T))) + return false; + + /* GB8 */ + if ((ap & (GBP_HNGL_LVT | GBP_HNGL_T)) && (bp & GBP_HNGL_T)) + return false; + + /* GB9 */ + if (bp & (GBP_EXT | GBP_ZWJ)) { + if (ap & GBP_PIC) + gs->gb11 = true; + return false; + } + + /* GB9a */ + if (bp & GBP_SM) + return false; + + /* GB9b */ + if (ap & GBP_PREP) + return false; + + /* GB9c */ + if ((ap & (GBP_INDC_EXT | GBP_INDC_LNK)) && (bp & GBP_INDC_CNSNT) + && gs->gb9c == GB9C_LNK) + { + return false; + } + + /* GB11 */ + if (gs->gb11) { + if ((ap & GBP_EXT) && (bp & (GBP_EXT | GBP_ZWJ))) + return false; + if ((ap & GBP_ZWJ) && (bp & GBP_PIC)) + return false; + } + + /* GB12 & GB13 */ + if (ap & GBP_RI) { + if (gs->gb12 || !(bp & GBP_RI)) + goto do_break; + gs->gb12 = true; + return false; + } + + /* GB999 */ +do_break: + gs->gb9c = GB9C_NONE; + gs->gb11 = gs->gb12 = false; + return true; +} diff --git a/vendor/librune/lib/mbstring/rtou8.c b/vendor/librune/lib/mbstring/rtou8.c new file mode 100644 index 0000000..1028e7e --- /dev/null +++ b/vendor/librune/lib/mbstring/rtou8.c @@ -0,0 +1,38 @@ +#include <stddef.h> + +#include "mbstring.h" + +#include "internal/common.h" + +int +rtou8(char8_t *s, rune ch, size_t n) +{ + if (ch <= _1B_MAX) { + if (n >= 1) + s[0] = ch; + return 1; + } else if (ch <= _2B_MAX) { + if (n >= 2) { + s[0] = (ch >> 6) | 0xC0; + s[1] = (ch & 0x3F) | 0x80; + } + return 2; + } else if (ch <= _3B_MAX) { + if (n >= 3) { + s[0] = (ch >> 12) | 0xE0; + s[1] = ((ch >> 6) & 0x3F) | 0x80; + s[2] = (ch & 0x3F) | 0x80; + } + return 3; + } else if (ch <= _4B_MAX) { + if (n >= 4) { + s[0] = (ch >> 18) | 0xF0; + s[1] = ((ch >> 12) & 0x3F) | 0x80; + s[2] = ((ch >> 6) & 0x3F) | 0x80; + s[3] = (ch & 0x3F) | 0x80; + } + return 4; + } + + unreachable(); +} diff --git a/vendor/librune/lib/mbstring/u8bspn.c b/vendor/librune/lib/mbstring/u8bspn.c new file mode 100644 index 0000000..40964a7 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8bspn.c @@ -0,0 +1,22 @@ +#include "mbstring.h" + +size_t +u8bspn(const char8_t *s, size_t n, const rune *p, size_t m) +{ + rune ch; + size_t k = 0; + + while (u8next(&ch, &s, &n)) { + for (size_t i = 0; i < m; i++) { + if (p[i] == ch) { + k += u8wdth(ch); + goto found; + } + } + + break; +found:; + } + + return k; +} diff --git a/vendor/librune/lib/mbstring/u8cbspn.c b/vendor/librune/lib/mbstring/u8cbspn.c new file mode 100644 index 0000000..9566de4 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8cbspn.c @@ -0,0 +1,20 @@ +#include "mbstring.h" + +size_t +u8cbspn(const char8_t *s, size_t n, const rune *p, size_t m) +{ + rune ch; + size_t k = 0; + + while (u8next(&ch, &s, &n)) { + for (size_t i = 0; i < m; i++) { + if (p[i] == ch) + goto found; + } + + k += u8wdth(ch); + } + +found: + return k; +} diff --git a/vendor/librune/lib/mbstring/u8chk.c b/vendor/librune/lib/mbstring/u8chk.c new file mode 100644 index 0000000..e2d5b1e --- /dev/null +++ b/vendor/librune/lib/mbstring/u8chk.c @@ -0,0 +1,21 @@ +#include "rune.h" +#define _RUNE_NO_MACRO_WRAPPER 1 +#include "mbstring.h" + +#include "internal/common.h" + +char8_t * +u8chk(const char8_t *s, size_t n) +{ + while (n) { + rune ch; + int m = u8tor(&ch, s); + + if (ch == RUNE_ERROR) + return (char8_t *)s; + n -= m; + s += m; + } + + return nullptr; +} diff --git a/vendor/librune/lib/mbstring/u8chkr.c b/vendor/librune/lib/mbstring/u8chkr.c new file mode 100644 index 0000000..2457dda --- /dev/null +++ b/vendor/librune/lib/mbstring/u8chkr.c @@ -0,0 +1,9 @@ +#include "mbstring.h" +#include "rune.h" + +bool +u8chkr(rune ch) +{ + return !((ch >= 0xD800 && ch <= 0xDFFF) || ch == 0xFFFE || ch == 0xFFFF + || ch > RUNE_MAX); +} diff --git a/vendor/librune/lib/mbstring/u8chr.c b/vendor/librune/lib/mbstring/u8chr.c new file mode 100644 index 0000000..008b7d7 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8chr.c @@ -0,0 +1,97 @@ +#include <stddef.h> +#include <stdint.h> +#include <string.h> + +#define _RUNE_NO_MACRO_WRAPPER 1 +#include "mbstring.h" + +/* NOTE: The memmem*() functions were taken directly from the memmem() + implementation on OpenBSD. As a result, these functions are licensed under + OpenBSDs 2-Clause BSD License instead of this libraries 0-Clause BSD License. + + The license for these functions is as follows: + + Copyright © 2005–2020 Rich Felker, et al. + + 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. */ + +static char8_t * +memmem2(const char8_t *h, size_t k, const char8_t *n) +{ + uint16_t hw, nw; + hw = h[0] << 8 | h[1]; + nw = n[0] << 8 | n[1]; + + for (h += 2, k -= 2; k; k--, hw = hw << 8 | *h++) { + if (hw == nw) + return (char8_t *)h - 2; + } + return hw == nw ? (char8_t *)h - 2 : nullptr; +} + +static char8_t * +memmem3(const char8_t *h, size_t k, const char8_t *n) +{ + uint32_t hw, nw; + hw = h[0] << 24 | h[1] << 16 | h[2] << 8; + nw = n[0] << 24 | n[1] << 16 | n[2] << 8; + + for (h += 3, k -= 3; k; k--, hw = (hw | *h++) << 8) { + if (hw == nw) + return (char8_t *)h - 3; + } + return hw == nw ? (char8_t *)h - 3 : nullptr; +} + +static char8_t * +memmem4(const char8_t *h, size_t k, const char8_t *n) +{ + uint32_t hw, nw; + hw = h[0] << 24 | h[1] << 16 | h[2] << 8 | h[3]; + nw = n[0] << 24 | n[1] << 16 | n[2] << 8 | n[3]; + + for (h += 4, k -= 4; k; k--, hw = hw << 8 | *h++) { + if (hw == nw) + return (char8_t *)h - 4; + } + return hw == nw ? (char8_t *)h - 4 : nullptr; +} + +char8_t * +u8chr(const char8_t *s, rune ch, size_t n) +{ + char8_t buf[U8_LEN_MAX]; + int m = rtou8(buf, ch, sizeof(buf)); + + if (n < (size_t)m) + return nullptr; + switch (m) { + case 1: + return memchr(s, ch, n); + case 2: + return memmem2(s, n, buf); + case 3: + return memmem3(s, n, buf); + case 4: + return memmem4(s, n, buf); + } + + unreachable(); +} diff --git a/vendor/librune/lib/mbstring/u8cspn.c b/vendor/librune/lib/mbstring/u8cspn.c new file mode 100644 index 0000000..259095a --- /dev/null +++ b/vendor/librune/lib/mbstring/u8cspn.c @@ -0,0 +1,20 @@ +#include "mbstring.h" + +size_t +u8cspn(const char8_t *s, size_t n, const rune *p, size_t m) +{ + rune ch; + size_t k = 0; + + while (u8next(&ch, &s, &n)) { + for (size_t i = 0; i < m; i++) { + if (p[i] == ch) + goto found; + } + + k++; + } + +found: + return k; +} diff --git a/vendor/librune/lib/mbstring/u8len.c b/vendor/librune/lib/mbstring/u8len.c new file mode 100644 index 0000000..14539e8 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8len.c @@ -0,0 +1,13 @@ +#include "mbstring.h" + +size_t +u8len(const char8_t *s, size_t n) +{ + rune unused; + size_t m = 0; + + while (u8next(&unused, &s, &n)) + m++; + + return m; +} diff --git a/vendor/librune/lib/mbstring/u8next.c b/vendor/librune/lib/mbstring/u8next.c new file mode 100644 index 0000000..4c391f8 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8next.c @@ -0,0 +1,15 @@ +#include "mbstring.h" + +int +u8next(rune *ch, const char8_t **s, size_t *n) +{ + int m = 0; + + if (*n) { + m = u8tor_uc(ch, *s); + *n -= m; + *s += m; + } + + return m; +} diff --git a/vendor/librune/lib/mbstring/u8prev.c b/vendor/librune/lib/mbstring/u8prev.c new file mode 100644 index 0000000..a7b0189 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8prev.c @@ -0,0 +1,39 @@ +#include "mbstring.h" +#include "rune.h" + +#include "internal/common.h" + +int +u8prev(rune *ch, const char8_t **p, const char8_t *start) +{ + int off; + bool match = true; + const char8_t *s = *p; + ptrdiff_t d = s - start; + + if (d <= 0) { + return 0; + } else if (U1(s[-1])) { + *ch = s[-1]; + off = 1; + } else if (d > 1 && UC(s[-1]) && U2(s[-2])) { + *ch = ((s[-2] & 0x1F) << 6) | (s[-1] & 0x3F); + off = 2; + } else if (d > 2 && UC(s[-1]) && UC(s[-2]) && U3(s[-3])) { + *ch = ((s[-3] & 0x0F) << 12) | ((s[-2] & 0x3F) << 6) | (s[-1] & 0x3F); + off = 3; + } else if (d > 3 && UC(s[-1]) && UC(s[-2]) && UC(s[-3]) && U4(s[-4])) { + *ch = ((s[-4] & 0x07) << 18) | ((s[-3] & 0x3F) << 12) + | ((s[-2] & 0x3F) << 6) | (s[-1] & 0x3F); + off = 4; + } else + match = false; + + if (!(match && u8chkr(*ch))) { + *ch = RUNE_ERROR; + off = 1; + } + + *p -= off; + return off; +} diff --git a/vendor/librune/lib/mbstring/u8rchr.c b/vendor/librune/lib/mbstring/u8rchr.c new file mode 100644 index 0000000..b92c323 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8rchr.c @@ -0,0 +1,87 @@ +#include <stddef.h> +#include <stdint.h> + +#define _RUNE_NO_MACRO_WRAPPER 1 +#include "mbstring.h" + +static char8_t * +memrchr1(const char8_t *s, size_t k, const char8_t *n) +{ + for (const char8_t *p = s + k - 1; k-- > 0; p--) { + if (*p == *n) + return (char8_t *)p; + } + return nullptr; +} + +static char8_t * +memrchr2(const char8_t *h, size_t k, const char8_t *n) +{ + uint16_t hw, nw; + const char8_t *H = h + k - 1; + hw = H[-1] << 8 | H[-0]; + nw = n[+0] << 8 | n[+1]; + + for (H -= 2, k -= 2; k; k--, hw = hw >> 8 | (*H-- << 8)) { + if (hw == nw) + return (char8_t *)H + 1; + } + + return hw == nw ? (char8_t *)H + 1 : nullptr; +} + +static char8_t * +memrchr3(const char8_t *h, size_t k, const char8_t *n) +{ + uint32_t hw, nw; + const char8_t *H = h + k - 1; + hw = H[-2] << 24 | H[-1] << 16 | H[-0] << 8; + nw = n[+0] << 24 | n[+1] << 16 | n[+2] << 8; + + for (H -= 3, k -= 3; k; + k--, hw = (hw >> 8 | (*H-- << 24)) & UINT32_C(0xFFFFFF00)) + { + if (hw == nw) + return (char8_t *)H + 1; + } + + return hw == nw ? (char8_t *)H + 1 : nullptr; +} + +static char8_t * +memrchr4(const char8_t *h, size_t k, const char8_t *n) +{ + uint32_t hw, nw; + const char8_t *H = h + k - 1; + hw = H[-3] << 24 | H[-2] << 16 | H[-1] << 8 | H[-0]; + nw = n[+0] << 24 | n[+1] << 16 | n[+2] << 8 | n[+3]; + + for (H -= 4, k -= 4; k; k--, hw = hw >> 8 | (*H-- << 24)) { + if (hw == nw) + return (char8_t *)H + 1; + } + + return hw == nw ? (char8_t *)H + 1 : nullptr; +} + +char8_t * +u8rchr(const char8_t *s, rune ch, size_t n) +{ + char8_t buf[U8_LEN_MAX]; + int m = rtou8(buf, ch, sizeof(buf)); + + if (n < (size_t)m) + return nullptr; + switch (m) { + case 1: + return (char8_t *)memrchr1(s, n, buf); + case 2: + return (char8_t *)memrchr2(s, n, buf); + case 3: + return (char8_t *)memrchr3(s, n, buf); + case 4: + return (char8_t *)memrchr4(s, n, buf); + } + + unreachable(); +} diff --git a/vendor/librune/lib/mbstring/u8rlen.c b/vendor/librune/lib/mbstring/u8rlen.c new file mode 100644 index 0000000..ac579c7 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8rlen.c @@ -0,0 +1,20 @@ +#include <stddef.h> + +#include "mbstring.h" + +#include "internal/common.h" + +int +u8rlen(const char8_t *s) +{ + if (U1(*s)) + return 1; + else if (U2(*s)) + return 2; + else if (U3(*s)) + return 3; + else if (U4(*s)) + return 4; + + unreachable(); +} diff --git a/vendor/librune/lib/mbstring/u8set.c b/vendor/librune/lib/mbstring/u8set.c new file mode 100644 index 0000000..84cf943 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8set.c @@ -0,0 +1,24 @@ +#include <string.h> + +#include "mbstring.h" + +#include "internal/common.h" + +size_t +u8set(char8_t *s, rune ch, size_t n) +{ + int m; + char8_t buf[U8_LEN_MAX]; + + if (n == 0) + return 0; + if (ch <= _1B_MAX) { + memset(s, ch, n); + return n; + } + m = rtou8(buf, ch, sizeof(buf)); + for (size_t i = 0; i < n; i += m) + memcpy(s + i, buf, m); + + return n - n % m; +} diff --git a/vendor/librune/lib/mbstring/u8spn.c b/vendor/librune/lib/mbstring/u8spn.c new file mode 100644 index 0000000..5f49b0e --- /dev/null +++ b/vendor/librune/lib/mbstring/u8spn.c @@ -0,0 +1,22 @@ +#include "mbstring.h" + +size_t +u8spn(const char8_t *s, size_t n, const rune *p, size_t m) +{ + rune ch; + size_t k = 0; + + while (u8next(&ch, &s, &n)) { + for (size_t i = 0; i < m; i++) { + if (p[i] == ch) { + k++; + goto found; + } + } + + break; +found:; + } + + return k; +} diff --git a/vendor/librune/lib/mbstring/u8tor.c b/vendor/librune/lib/mbstring/u8tor.c new file mode 100644 index 0000000..6f657d9 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8tor.c @@ -0,0 +1,31 @@ +#include "mbstring.h" +#include "rune.h" + +#include "internal/common.h" + +int +u8tor(rune *ch, const char8_t *s) +{ + int n = 0; + + if (U1(s[0])) { + *ch = s[0]; + n = 1; + } else if (U2(s[0]) && UC(s[1])) { + *ch = ((s[0] & 0x1F) << 6) | (s[1] & 0x3F); + n = 2; + } else if (U3(s[0]) && UC(s[1]) && UC(s[2])) { + *ch = ((s[0] & 0x0F) << 12) | ((s[1] & 0x3F) << 6) | (s[2] & 0x3F); + n = 3; + } else if (U4(s[0]) && UC(s[1]) && UC(s[2]) && UC(s[3])) { + *ch = ((s[0] & 0x07) << 18) | ((s[1] & 0x3F) << 12) + | ((s[2] & 0x3F) << 6) | (s[3] & 0x3F); + n = 4; + } + + if (n && u8chkr(*ch)) + return n; + + *ch = RUNE_ERROR; + return 1; +} diff --git a/vendor/librune/lib/mbstring/u8tor_uc.c b/vendor/librune/lib/mbstring/u8tor_uc.c new file mode 100644 index 0000000..da9b206 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8tor_uc.c @@ -0,0 +1,26 @@ +#include <stddef.h> + +#include "mbstring.h" + +#include "internal/common.h" + +int +u8tor_uc(rune *ch, const char8_t *s) +{ + if (U1(s[0])) { + *ch = s[0]; + return 1; + } else if (U2(s[0])) { + *ch = ((s[0] & 0x1F) << 6) | (s[1] & 0x3F); + return 2; + } else if (U3(s[0])) { + *ch = ((s[0] & 0x0F) << 12) | ((s[1] & 0x3F) << 6) | (s[2] & 0x3F); + return 3; + } else if (U4(s[0])) { + *ch = ((s[0] & 0x07) << 18) | ((s[1] & 0x3F) << 12) + | ((s[2] & 0x3F) << 6) | (s[3] & 0x3F); + return 4; + } + + unreachable(); +} diff --git a/vendor/librune/lib/mbstring/u8wdth.c b/vendor/librune/lib/mbstring/u8wdth.c new file mode 100644 index 0000000..65fa702 --- /dev/null +++ b/vendor/librune/lib/mbstring/u8wdth.c @@ -0,0 +1,13 @@ +#include "mbstring.h" + +#include "internal/common.h" + +int +u8wdth(rune ch) +{ + return ch <= _1B_MAX ? 1 + : ch <= _2B_MAX ? 2 + : ch <= _3B_MAX ? 3 + : ch <= _4B_MAX ? 4 + : 0; +} diff --git a/vendor/librune/lib/rtype/riscntrl.c b/vendor/librune/lib/rtype/riscntrl.c new file mode 100644 index 0000000..74cacdd --- /dev/null +++ b/vendor/librune/lib/rtype/riscntrl.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +riscntrl(rune ch) +{ + return rprop_get_gc(ch) & GC_CC; +} diff --git a/vendor/librune/lib/rtype/risdigit.c b/vendor/librune/lib/rtype/risdigit.c new file mode 100644 index 0000000..dc5d42c --- /dev/null +++ b/vendor/librune/lib/rtype/risdigit.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risdigit(rune ch) +{ + return rprop_get_gc(ch) & GC_ND; +} diff --git a/vendor/librune/lib/rtype/risgraph.c b/vendor/librune/lib/rtype/risgraph.c new file mode 100644 index 0000000..cf764de --- /dev/null +++ b/vendor/librune/lib/rtype/risgraph.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risgraph(rune ch) +{ + return rprop_get_gc(ch) & (GC_L | GC_M | GC_N | GC_P | GC_ZS); +} diff --git a/vendor/librune/lib/rtype/risletter.c b/vendor/librune/lib/rtype/risletter.c new file mode 100644 index 0000000..43ff749 --- /dev/null +++ b/vendor/librune/lib/rtype/risletter.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risletter(rune ch) +{ + return rprop_get_gc(ch) & GC_L; +} diff --git a/vendor/librune/lib/rtype/rislower.c b/vendor/librune/lib/rtype/rislower.c new file mode 100644 index 0000000..2e6fc39 --- /dev/null +++ b/vendor/librune/lib/rtype/rislower.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rislower(rune ch) +{ + return rprop_get_gc(ch) & GC_LL; +} diff --git a/vendor/librune/lib/rtype/rismark.c b/vendor/librune/lib/rtype/rismark.c new file mode 100644 index 0000000..972323f --- /dev/null +++ b/vendor/librune/lib/rtype/rismark.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rismark(rune ch) +{ + return rprop_get_gc(ch) & GC_M; +} diff --git a/vendor/librune/lib/rtype/risnumber.c b/vendor/librune/lib/rtype/risnumber.c new file mode 100644 index 0000000..83bebd9 --- /dev/null +++ b/vendor/librune/lib/rtype/risnumber.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risnumber(rune ch) +{ + return rprop_get_gc(ch) & GC_N; +} diff --git a/vendor/librune/lib/rtype/rispunct.c b/vendor/librune/lib/rtype/rispunct.c new file mode 100644 index 0000000..d01de21 --- /dev/null +++ b/vendor/librune/lib/rtype/rispunct.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rispunct(rune ch) +{ + return rprop_get_gc(ch) & GC_P; +} diff --git a/vendor/librune/lib/rtype/risspace.c b/vendor/librune/lib/rtype/risspace.c new file mode 100644 index 0000000..9d98363 --- /dev/null +++ b/vendor/librune/lib/rtype/risspace.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/common.h" + +static constexpr bool latin1_space_tbl[LATIN1_MAX + 1] = { + ['\t'] = true, ['\n'] = true, ['\v'] = true, ['\f'] = true, + ['\r'] = true, [' '] = true, [0x85] = true, [0xA0] = true, +}; + +bool +risspace(rune ch) +{ + if (ch <= LATIN1_MAX) + return latin1_space_tbl[ch]; + return rprop_get_gc(ch) & GC_Z; +} diff --git a/vendor/librune/lib/rtype/rissymbol.c b/vendor/librune/lib/rtype/rissymbol.c new file mode 100644 index 0000000..e9fbc6d --- /dev/null +++ b/vendor/librune/lib/rtype/rissymbol.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +rissymbol(rune ch) +{ + return rprop_get_gc(ch) & GC_S; +} diff --git a/vendor/librune/lib/rtype/ristitle.c b/vendor/librune/lib/rtype/ristitle.c new file mode 100644 index 0000000..548f686 --- /dev/null +++ b/vendor/librune/lib/rtype/ristitle.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +ristitle(rune ch) +{ + return rprop_get_gc(ch) & GC_LT; +} diff --git a/vendor/librune/lib/rtype/risupper.c b/vendor/librune/lib/rtype/risupper.c new file mode 100644 index 0000000..447050f --- /dev/null +++ b/vendor/librune/lib/rtype/risupper.c @@ -0,0 +1,7 @@ +#include "rtype.h" + +bool +risupper(rune ch) +{ + return rprop_get_gc(ch) & GC_LU; +} diff --git a/vendor/librune/lib/rtype/rprop_get_dt.c b/vendor/librune/lib/rtype/rprop_get_dt.c new file mode 100644 index 0000000..47c0237 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_dt.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/rtype/dt.h" + +#define DEFAULT DT_NONE +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_dt_lat1_tbl +#define TABLE rtype_dt_tbl +#define TYPE rprop_dt_bf +#include "internal/rtype/lookup-func.h" + +rprop_dt_bf +rprop_get_dt(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_equideo.c b/vendor/librune/lib/rtype/rprop_get_equideo.c new file mode 100644 index 0000000..98701c7 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_equideo.c @@ -0,0 +1,17 @@ +#include "rtype.h" +#include "rune.h" + +#include "internal/rtype/equideo.h" + +#define DEFAULT RUNE_ERROR +#define HAS_VALUE 1 +#define TABLE rtype_equideo_tbl +#define TYPE rune +#define RANGE 0 +#include "internal/rtype/lookup-func.h" + +rune +rprop_get_equideo(rune ch) +{ + return ch < RUNE_C(0x2E81) ? RUNE_ERROR : lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_gc.c b/vendor/librune/lib/rtype/rprop_get_gc.c new file mode 100644 index 0000000..0d07c2d --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_gc.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/rtype/gc.h" + +#define DEFAULT GC_CN +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_gc_lat1_tbl +#define TABLE rtype_gc_tbl +#define TYPE rprop_gc_bf +#include "internal/rtype/lookup-func.h" + +rprop_gc_bf +rprop_get_gc(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_jg.c b/vendor/librune/lib/rtype/rprop_get_jg.c new file mode 100644 index 0000000..e1f3880 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_jg.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/common.h" +#include "internal/rtype/jg.h" + +#define DEFAULT JG_NONE +#define HAS_VALUE 1 +#define TABLE rtype_jg_tbl +#define TYPE rprop_jg_bf +#include "internal/rtype/lookup-func.h" + +rprop_jg_bf +rprop_get_jg(rune ch) +{ + return ch <= LATIN1_MAX ? false : lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_jt.c b/vendor/librune/lib/rtype/rprop_get_jt.c new file mode 100644 index 0000000..9ba9622 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_jt.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/rtype/jt.h" + +#define DEFAULT JT_U +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_jt_lat1_tbl +#define TABLE rtype_jt_tbl +#define TYPE rprop_jt_bf +#include "internal/rtype/lookup-func.h" + +rprop_jt_bf +rprop_get_jt(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_nt.c b/vendor/librune/lib/rtype/rprop_get_nt.c new file mode 100644 index 0000000..3e50dfa --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_nt.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/rtype/nt.h" + +#define DEFAULT NT_NONE +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_nt_lat1_tbl +#define TABLE rtype_nt_tbl +#define TYPE rprop_nt_bf +#include "internal/rtype/lookup-func.h" + +rprop_nt_bf +rprop_get_nt(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_nv.c b/vendor/librune/lib/rtype/rprop_get_nv.c new file mode 100644 index 0000000..9ee93d9 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_nv.c @@ -0,0 +1,17 @@ +#include "rtype.h" +#include "rune.h" + +#include "internal/rtype/nv.h" + +#define DEFAULT (0.0 / 0.0) /* NAN */ +#define HAS_VALUE 1 +#define TABLE rtype_nv_tbl +#define TYPE double +#define RANGE 0 +#include "internal/rtype/lookup-func.h" + +double +rprop_get_nv(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_get_vo.c b/vendor/librune/lib/rtype/rprop_get_vo.c new file mode 100644 index 0000000..7008e11 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_get_vo.c @@ -0,0 +1,16 @@ +#include "rtype.h" + +#include "internal/rtype/vo.h" + +#define DEFAULT VO_R +#define HAS_VALUE 1 +#define LATIN1_TABLE rtype_vo_lat1_tbl +#define TABLE rtype_vo_tbl +#define TYPE rprop_vo_bf +#include "internal/rtype/lookup-func.h" + +rprop_vo_bf +rprop_get_vo(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ahex.c b/vendor/librune/lib/rtype/rprop_is_ahex.c new file mode 100644 index 0000000..c2670a9 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ahex.c @@ -0,0 +1,17 @@ +#include "rtype.h" + +#include "internal/common.h" + +static const bool lookup[] = { + [0x30] = true, [0x31] = true, [0x32] = true, [0x33] = true, [0x34] = true, + [0x35] = true, [0x36] = true, [0x37] = true, [0x38] = true, [0x39] = true, + [0x41] = true, [0x42] = true, [0x43] = true, [0x44] = true, [0x45] = true, + [0x46] = true, [0x61] = true, [0x62] = true, [0x63] = true, [0x64] = true, + [0x65] = true, [0x66] = true, +}; + +bool +rprop_is_ahex(rune ch) +{ + return ch <= lengthof(lookup) ? lookup[ch] : false; +} diff --git a/vendor/librune/lib/rtype/rprop_is_alpha.c b/vendor/librune/lib/rtype/rprop_is_alpha.c new file mode 100644 index 0000000..9b126c3 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_alpha.c @@ -0,0 +1,767 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005B0), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000657)}, + {RUNE_C(0x000659), RUNE_C(0x00065F)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006E1), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006ED), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00073F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000817)}, + {RUNE_C(0x00081A), RUNE_C(0x00082C)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x0008D4), RUNE_C(0x0008DF)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008E9)}, + {RUNE_C(0x0008F0), RUNE_C(0x00093B)}, + {RUNE_C(0x00093D), RUNE_C(0x00094C)}, + {RUNE_C(0x00094E), RUNE_C(0x000950)}, + {RUNE_C(0x000955), RUNE_C(0x000963)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4C)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A70), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFC)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C)}, + {RUNE_C(0x000B56), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4C)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCC)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E4D), RUNE_C(0x000E4D)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB9)}, + {RUNE_C(0x000EBB), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000ECD), RUNE_C(0x000ECD)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F83)}, + {RUNE_C(0x000F88), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x001000), RUNE_C(0x001036)}, + {RUNE_C(0x001038), RUNE_C(0x001038)}, + {RUNE_C(0x00103B), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x00108F)}, + {RUNE_C(0x00109A), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001713)}, + {RUNE_C(0x00171F), RUNE_C(0x001733)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017B6), RUNE_C(0x0017C8)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x001938)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A61), RUNE_C(0x001A74)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001ABF), RUNE_C(0x001AC0)}, + {RUNE_C(0x001ACC), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B33)}, + {RUNE_C(0x001B35), RUNE_C(0x001B43)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B80), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAC), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001BE7), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C00), RUNE_C(0x001C36)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001DE7), RUNE_C(0x001DF4)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67B)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A827)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C3)}, + {RUNE_C(0x00A8C5), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A92A)}, + {RUNE_C(0x00A930), RUNE_C(0x00A952)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9BF)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AABE)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF5)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011045)}, + {RUNE_C(0x011071), RUNE_C(0x011075)}, + {RUNE_C(0x011080), RUNE_C(0x0110B8)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011100), RUNE_C(0x011132)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111BF)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111CF)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011234)}, + {RUNE_C(0x011237), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112E8)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134C)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011400), RUNE_C(0x011441)}, + {RUNE_C(0x011443), RUNE_C(0x011445)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C1)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x01163E)}, + {RUNE_C(0x011640), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x011838)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193F), RUNE_C(0x011942)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DF)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A32)}, + {RUNE_C(0x011A35), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A50), RUNE_C(0x011A97)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D41)}, + {RUNE_C(0x011D43), RUNE_C(0x011D43)}, + {RUNE_C(0x011D46), RUNE_C(0x011D47)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D96)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F40)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E947), RUNE_C(0x01E947)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_alpha(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_bidi_c.c b/vendor/librune/lib/rtype/rprop_is_bidi_c.c new file mode 100644 index 0000000..93203c3 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_bidi_c.c @@ -0,0 +1,29 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x00200E), RUNE_C(0x00200F)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002066), RUNE_C(0x002069)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_bidi_c(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_bidi_m.c b/vendor/librune/lib/rtype/rprop_is_bidi_m.c new file mode 100644 index 0000000..8475e03 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_bidi_m.c @@ -0,0 +1,148 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000080008000000000028000000280000005000030000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000028), RUNE_C(0x000029)}, + {RUNE_C(0x00003C), RUNE_C(0x00003C)}, + {RUNE_C(0x00003E), RUNE_C(0x00003E)}, + {RUNE_C(0x00005B), RUNE_C(0x00005B)}, + {RUNE_C(0x00005D), RUNE_C(0x00005D)}, + {RUNE_C(0x00007B), RUNE_C(0x00007B)}, + {RUNE_C(0x00007D), RUNE_C(0x00007D)}, + {RUNE_C(0x0000AB), RUNE_C(0x0000AB)}, + {RUNE_C(0x0000BB), RUNE_C(0x0000BB)}, + {RUNE_C(0x000F3A), RUNE_C(0x000F3D)}, + {RUNE_C(0x00169B), RUNE_C(0x00169C)}, + {RUNE_C(0x002039), RUNE_C(0x00203A)}, + {RUNE_C(0x002045), RUNE_C(0x002046)}, + {RUNE_C(0x00207D), RUNE_C(0x00207E)}, + {RUNE_C(0x00208D), RUNE_C(0x00208E)}, + {RUNE_C(0x002140), RUNE_C(0x002140)}, + {RUNE_C(0x002201), RUNE_C(0x002204)}, + {RUNE_C(0x002208), RUNE_C(0x00220D)}, + {RUNE_C(0x002211), RUNE_C(0x002211)}, + {RUNE_C(0x002215), RUNE_C(0x002216)}, + {RUNE_C(0x00221A), RUNE_C(0x00221D)}, + {RUNE_C(0x00221F), RUNE_C(0x002222)}, + {RUNE_C(0x002224), RUNE_C(0x002224)}, + {RUNE_C(0x002226), RUNE_C(0x002226)}, + {RUNE_C(0x00222B), RUNE_C(0x002233)}, + {RUNE_C(0x002239), RUNE_C(0x002239)}, + {RUNE_C(0x00223B), RUNE_C(0x00224C)}, + {RUNE_C(0x002252), RUNE_C(0x002255)}, + {RUNE_C(0x00225F), RUNE_C(0x002260)}, + {RUNE_C(0x002262), RUNE_C(0x002262)}, + {RUNE_C(0x002264), RUNE_C(0x00226B)}, + {RUNE_C(0x00226E), RUNE_C(0x00228C)}, + {RUNE_C(0x00228F), RUNE_C(0x002292)}, + {RUNE_C(0x002298), RUNE_C(0x002298)}, + {RUNE_C(0x0022A2), RUNE_C(0x0022A3)}, + {RUNE_C(0x0022A6), RUNE_C(0x0022B8)}, + {RUNE_C(0x0022BE), RUNE_C(0x0022BF)}, + {RUNE_C(0x0022C9), RUNE_C(0x0022CD)}, + {RUNE_C(0x0022D0), RUNE_C(0x0022D1)}, + {RUNE_C(0x0022D6), RUNE_C(0x0022ED)}, + {RUNE_C(0x0022F0), RUNE_C(0x0022FF)}, + {RUNE_C(0x002308), RUNE_C(0x00230B)}, + {RUNE_C(0x002320), RUNE_C(0x002321)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x002768), RUNE_C(0x002775)}, + {RUNE_C(0x0027C0), RUNE_C(0x0027C0)}, + {RUNE_C(0x0027C3), RUNE_C(0x0027C6)}, + {RUNE_C(0x0027C8), RUNE_C(0x0027C9)}, + {RUNE_C(0x0027CB), RUNE_C(0x0027CD)}, + {RUNE_C(0x0027D3), RUNE_C(0x0027D6)}, + {RUNE_C(0x0027DC), RUNE_C(0x0027DE)}, + {RUNE_C(0x0027E2), RUNE_C(0x0027EF)}, + {RUNE_C(0x002983), RUNE_C(0x002998)}, + {RUNE_C(0x00299B), RUNE_C(0x0029A0)}, + {RUNE_C(0x0029A2), RUNE_C(0x0029AF)}, + {RUNE_C(0x0029B8), RUNE_C(0x0029B8)}, + {RUNE_C(0x0029C0), RUNE_C(0x0029C5)}, + {RUNE_C(0x0029C9), RUNE_C(0x0029C9)}, + {RUNE_C(0x0029CE), RUNE_C(0x0029D2)}, + {RUNE_C(0x0029D4), RUNE_C(0x0029D5)}, + {RUNE_C(0x0029D8), RUNE_C(0x0029DC)}, + {RUNE_C(0x0029E1), RUNE_C(0x0029E1)}, + {RUNE_C(0x0029E3), RUNE_C(0x0029E5)}, + {RUNE_C(0x0029E8), RUNE_C(0x0029E9)}, + {RUNE_C(0x0029F4), RUNE_C(0x0029F9)}, + {RUNE_C(0x0029FC), RUNE_C(0x0029FD)}, + {RUNE_C(0x002A0A), RUNE_C(0x002A1C)}, + {RUNE_C(0x002A1E), RUNE_C(0x002A21)}, + {RUNE_C(0x002A24), RUNE_C(0x002A24)}, + {RUNE_C(0x002A26), RUNE_C(0x002A26)}, + {RUNE_C(0x002A29), RUNE_C(0x002A29)}, + {RUNE_C(0x002A2B), RUNE_C(0x002A2E)}, + {RUNE_C(0x002A34), RUNE_C(0x002A35)}, + {RUNE_C(0x002A3C), RUNE_C(0x002A3E)}, + {RUNE_C(0x002A57), RUNE_C(0x002A58)}, + {RUNE_C(0x002A64), RUNE_C(0x002A65)}, + {RUNE_C(0x002A6A), RUNE_C(0x002A6D)}, + {RUNE_C(0x002A6F), RUNE_C(0x002A70)}, + {RUNE_C(0x002A73), RUNE_C(0x002A74)}, + {RUNE_C(0x002A79), RUNE_C(0x002AA3)}, + {RUNE_C(0x002AA6), RUNE_C(0x002AAD)}, + {RUNE_C(0x002AAF), RUNE_C(0x002AD6)}, + {RUNE_C(0x002ADC), RUNE_C(0x002ADC)}, + {RUNE_C(0x002ADE), RUNE_C(0x002ADE)}, + {RUNE_C(0x002AE2), RUNE_C(0x002AE6)}, + {RUNE_C(0x002AEC), RUNE_C(0x002AEE)}, + {RUNE_C(0x002AF3), RUNE_C(0x002AF3)}, + {RUNE_C(0x002AF7), RUNE_C(0x002AFB)}, + {RUNE_C(0x002AFD), RUNE_C(0x002AFD)}, + {RUNE_C(0x002BFE), RUNE_C(0x002BFE)}, + {RUNE_C(0x002E02), RUNE_C(0x002E05)}, + {RUNE_C(0x002E09), RUNE_C(0x002E0A)}, + {RUNE_C(0x002E0C), RUNE_C(0x002E0D)}, + {RUNE_C(0x002E1C), RUNE_C(0x002E1D)}, + {RUNE_C(0x002E20), RUNE_C(0x002E29)}, + {RUNE_C(0x002E55), RUNE_C(0x002E5C)}, + {RUNE_C(0x003008), RUNE_C(0x003011)}, + {RUNE_C(0x003014), RUNE_C(0x00301B)}, + {RUNE_C(0x00FE59), RUNE_C(0x00FE5E)}, + {RUNE_C(0x00FE64), RUNE_C(0x00FE65)}, + {RUNE_C(0x00FF08), RUNE_C(0x00FF09)}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1C)}, + {RUNE_C(0x00FF1E), RUNE_C(0x00FF1E)}, + {RUNE_C(0x00FF3B), RUNE_C(0x00FF3B)}, + {RUNE_C(0x00FF3D), RUNE_C(0x00FF3D)}, + {RUNE_C(0x00FF5B), RUNE_C(0x00FF5B)}, + {RUNE_C(0x00FF5D), RUNE_C(0x00FF5D)}, + {RUNE_C(0x00FF5F), RUNE_C(0x00FF60)}, + {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_bidi_m(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cased.c b/vendor/librune/lib/rtype/rprop_is_cased.c new file mode 100644 index 0000000..51df17c --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cased.c @@ -0,0 +1,191 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0001BA)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x000293)}, + {RUNE_C(0x000295), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002C0), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000373)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002134)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002184)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A680), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A722), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78E)}, + {RUNE_C(0x00A790), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010400), RUNE_C(0x01044F)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010780), RUNE_C(0x010780)}, + {RUNE_C(0x010783), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF09)}, + {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cased(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ci.c b/vendor/librune/lib/rtype/rprop_is_ci.c new file mode 100644 index 0000000..0409344 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ci.c @@ -0,0 +1,471 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x00000000000000000190A1000000000000000001400000000400408000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000027), RUNE_C(0x000027)}, + {RUNE_C(0x00002E), RUNE_C(0x00002E)}, + {RUNE_C(0x00003A), RUNE_C(0x00003A)}, + {RUNE_C(0x00005E), RUNE_C(0x00005E)}, + {RUNE_C(0x000060), RUNE_C(0x000060)}, + {RUNE_C(0x0000A8), RUNE_C(0x0000A8)}, + {RUNE_C(0x0000AD), RUNE_C(0x0000AD)}, + {RUNE_C(0x0000AF), RUNE_C(0x0000AF)}, + {RUNE_C(0x0000B4), RUNE_C(0x0000B4)}, + {RUNE_C(0x0000B7), RUNE_C(0x0000B8)}, + {RUNE_C(0x0002B0), RUNE_C(0x00036F)}, + {RUNE_C(0x000374), RUNE_C(0x000375)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x000384), RUNE_C(0x000385)}, + {RUNE_C(0x000387), RUNE_C(0x000387)}, + {RUNE_C(0x000483), RUNE_C(0x000489)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x00055F), RUNE_C(0x00055F)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005F4), RUNE_C(0x0005F4)}, + {RUNE_C(0x000600), RUNE_C(0x000605)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x000640), RUNE_C(0x000640)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DD)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x00070F), RUNE_C(0x00070F)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000888), RUNE_C(0x000888)}, + {RUNE_C(0x000890), RUNE_C(0x000891)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008C9), RUNE_C(0x000902)}, + {RUNE_C(0x00093A), RUNE_C(0x00093A)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x000941), RUNE_C(0x000948)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000957)}, + {RUNE_C(0x000962), RUNE_C(0x000963)}, + {RUNE_C(0x000971), RUNE_C(0x000971)}, + {RUNE_C(0x000981), RUNE_C(0x000981)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A02)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A41), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A70), RUNE_C(0x000A71)}, + {RUNE_C(0x000A75), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A82)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B01)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B3F), RUNE_C(0x000B3F)}, + {RUNE_C(0x000B41), RUNE_C(0x000B44)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B56)}, + {RUNE_C(0x000B62), RUNE_C(0x000B63)}, + {RUNE_C(0x000B82), RUNE_C(0x000B82)}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000C00), RUNE_C(0x000C00)}, + {RUNE_C(0x000C04), RUNE_C(0x000C04)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C62), RUNE_C(0x000C63)}, + {RUNE_C(0x000C81), RUNE_C(0x000C81)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6)}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D01)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D41), RUNE_C(0x000D44)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000D62), RUNE_C(0x000D63)}, + {RUNE_C(0x000D81), RUNE_C(0x000D81)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000E31), RUNE_C(0x000E31)}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E46), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1)}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E)}, + {RUNE_C(0x000F80), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x00102D), RUNE_C(0x001030)}, + {RUNE_C(0x001032), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00103D), RUNE_C(0x00103E)}, + {RUNE_C(0x001058), RUNE_C(0x001059)}, + {RUNE_C(0x00105E), RUNE_C(0x001060)}, + {RUNE_C(0x001071), RUNE_C(0x001074)}, + {RUNE_C(0x001082), RUNE_C(0x001082)}, + {RUNE_C(0x001085), RUNE_C(0x001086)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00109D), RUNE_C(0x00109D)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001712), RUNE_C(0x001714)}, + {RUNE_C(0x001732), RUNE_C(0x001733)}, + {RUNE_C(0x001752), RUNE_C(0x001753)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD)}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x001843), RUNE_C(0x001843)}, + {RUNE_C(0x001885), RUNE_C(0x001886)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001920), RUNE_C(0x001922)}, + {RUNE_C(0x001927), RUNE_C(0x001928)}, + {RUNE_C(0x001932), RUNE_C(0x001932)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A56), RUNE_C(0x001A56)}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A62), RUNE_C(0x001A62)}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C)}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B03)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B36), RUNE_C(0x001B3A)}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C)}, + {RUNE_C(0x001B42), RUNE_C(0x001B42)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001B81)}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5)}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9)}, + {RUNE_C(0x001BED), RUNE_C(0x001BED)}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001C78), RUNE_C(0x001C7D)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D6A)}, + {RUNE_C(0x001D78), RUNE_C(0x001D78)}, + {RUNE_C(0x001D9B), RUNE_C(0x001DFF)}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD)}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC1)}, + {RUNE_C(0x001FCD), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FED), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FFD), RUNE_C(0x001FFE)}, + {RUNE_C(0x00200B), RUNE_C(0x00200F)}, + {RUNE_C(0x002018), RUNE_C(0x002019)}, + {RUNE_C(0x002024), RUNE_C(0x002024)}, + {RUNE_C(0x002027), RUNE_C(0x002027)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002060), RUNE_C(0x002064)}, + {RUNE_C(0x002066), RUNE_C(0x00206F)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020F0)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7D)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x003005), RUNE_C(0x003005)}, + {RUNE_C(0x00302A), RUNE_C(0x00302D)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x00303B), RUNE_C(0x00303B)}, + {RUNE_C(0x003099), RUNE_C(0x00309E)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FE)}, + {RUNE_C(0x00A015), RUNE_C(0x00A015)}, + {RUNE_C(0x00A4F8), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A60C), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A672)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A67F)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A700), RUNE_C(0x00A721)}, + {RUNE_C(0x00A770), RUNE_C(0x00A770)}, + {RUNE_C(0x00A788), RUNE_C(0x00A78A)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00A802), RUNE_C(0x00A802)}, + {RUNE_C(0x00A806), RUNE_C(0x00A806)}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B)}, + {RUNE_C(0x00A825), RUNE_C(0x00A826)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A947), RUNE_C(0x00A951)}, + {RUNE_C(0x00A980), RUNE_C(0x00A982)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E6)}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32)}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43)}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)}, + {RUNE_C(0x00AA70), RUNE_C(0x00AA70)}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AADD), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)}, + {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FBB2), RUNE_C(0x00FBC2)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE13), RUNE_C(0x00FE13)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE52), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE55), RUNE_C(0x00FE55)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FF07), RUNE_C(0x00FF07)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1A)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF40)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)}, + {RUNE_C(0x00FFF9), RUNE_C(0x00FFFB)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010A01), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011001), RUNE_C(0x011001)}, + {RUNE_C(0x011038), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x011073), RUNE_C(0x011074)}, + {RUNE_C(0x01107F), RUNE_C(0x011081)}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110BD), RUNE_C(0x0110BD)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110CD), RUNE_C(0x0110CD)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011127), RUNE_C(0x01112B)}, + {RUNE_C(0x01112D), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x011180), RUNE_C(0x011181)}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF)}, + {RUNE_C(0x01122F), RUNE_C(0x011231)}, + {RUNE_C(0x011234), RUNE_C(0x011234)}, + {RUNE_C(0x011236), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x01123E)}, + {RUNE_C(0x011241), RUNE_C(0x011241)}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF)}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA)}, + {RUNE_C(0x011300), RUNE_C(0x011301)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x011340), RUNE_C(0x011340)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011438), RUNE_C(0x01143F)}, + {RUNE_C(0x011442), RUNE_C(0x011444)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8)}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA)}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD)}, + {RUNE_C(0x011633), RUNE_C(0x01163A)}, + {RUNE_C(0x01163D), RUNE_C(0x01163D)}, + {RUNE_C(0x01163F), RUNE_C(0x011640)}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB)}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD)}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01171D), RUNE_C(0x01171F)}, + {RUNE_C(0x011722), RUNE_C(0x011725)}, + {RUNE_C(0x011727), RUNE_C(0x01172B)}, + {RUNE_C(0x01182F), RUNE_C(0x011837)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A)}, + {RUNE_C(0x011A33), RUNE_C(0x011A38)}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A51), RUNE_C(0x011A56)}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B)}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96)}, + {RUNE_C(0x011A98), RUNE_C(0x011A99)}, + {RUNE_C(0x011C30), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0)}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3)}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D31), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45)}, + {RUNE_C(0x011D47), RUNE_C(0x011D47)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D95), RUNE_C(0x011D95)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4)}, + {RUNE_C(0x011F00), RUNE_C(0x011F01)}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F40), RUNE_C(0x011F40)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x013430), RUNE_C(0x013440)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D173), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EB), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94B)}, + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ci(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwcf.c b/vendor/librune/lib/rtype/rprop_is_cwcf.c new file mode 100644 index 0000000..e8456cc --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwcf.c @@ -0,0 +1,656 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x00000000FF7FFFFF00200000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000DF)}, + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x000149), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x00017F), RUNE_C(0x00017F)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C5)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C8)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CB)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F2)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003C2), RUNE_C(0x0003C2)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D6)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000587), RUNE_C(0x000587)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9A), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F80), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB2), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB7), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC7), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF7), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwcf(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwcm.c b/vendor/librune/lib/rtype/rprop_is_cwcm.c new file mode 100644 index 0000000..014b6c9 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwcm.c @@ -0,0 +1,165 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF002000000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x000137)}, + {RUNE_C(0x000139), RUNE_C(0x00018C)}, + {RUNE_C(0x00018E), RUNE_C(0x00019A)}, + {RUNE_C(0x00019C), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000233)}, + {RUNE_C(0x00023A), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000370), RUNE_C(0x000373)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003FB)}, + {RUNE_C(0x0003FD), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FD), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E00), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002184)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C00), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C73)}, + {RUNE_C(0x002C75), RUNE_C(0x002C76)}, + {RUNE_C(0x002C7E), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A680), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A722), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A732), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A779), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A794)}, + {RUNE_C(0x00A796), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010400), RUNE_C(0x01044F)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwcm(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwkcf.c b/vendor/librune/lib/rtype/rprop_is_cwkcf.c new file mode 100644 index 0000000..81f45b4 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwkcf.c @@ -0,0 +1,873 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x00000000FF7FFFFF773CA501000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x0000A0), RUNE_C(0x0000A0)}, + {RUNE_C(0x0000A8), RUNE_C(0x0000A8)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000AD), RUNE_C(0x0000AD)}, + {RUNE_C(0x0000AF), RUNE_C(0x0000AF)}, + {RUNE_C(0x0000B2), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000B8), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000BC), RUNE_C(0x0000BE)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000DF)}, + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x000149), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x00017F), RUNE_C(0x00017F)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x0002B0), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002D8), RUNE_C(0x0002DD)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000340), RUNE_C(0x000341)}, + {RUNE_C(0x000343), RUNE_C(0x000345)}, + {RUNE_C(0x00034F), RUNE_C(0x00034F)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000374), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x00037E), RUNE_C(0x00037F)}, + {RUNE_C(0x000384), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003C2), RUNE_C(0x0003C2)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003D6)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F2)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000587), RUNE_C(0x000587)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x000675), RUNE_C(0x000678)}, + {RUNE_C(0x000958), RUNE_C(0x00095F)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF)}, + {RUNE_C(0x000A33), RUNE_C(0x000A33)}, + {RUNE_C(0x000A36), RUNE_C(0x000A36)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5B)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000E33), RUNE_C(0x000E33)}, + {RUNE_C(0x000EB3), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDD)}, + {RUNE_C(0x000F0C), RUNE_C(0x000F0C)}, + {RUNE_C(0x000F43), RUNE_C(0x000F43)}, + {RUNE_C(0x000F4D), RUNE_C(0x000F4D)}, + {RUNE_C(0x000F52), RUNE_C(0x000F52)}, + {RUNE_C(0x000F57), RUNE_C(0x000F57)}, + {RUNE_C(0x000F5C), RUNE_C(0x000F5C)}, + {RUNE_C(0x000F69), RUNE_C(0x000F69)}, + {RUNE_C(0x000F73), RUNE_C(0x000F73)}, + {RUNE_C(0x000F75), RUNE_C(0x000F79)}, + {RUNE_C(0x000F81), RUNE_C(0x000F81)}, + {RUNE_C(0x000F93), RUNE_C(0x000F93)}, + {RUNE_C(0x000F9D), RUNE_C(0x000F9D)}, + {RUNE_C(0x000FA2), RUNE_C(0x000FA2)}, + {RUNE_C(0x000FA7), RUNE_C(0x000FA7)}, + {RUNE_C(0x000FAC), RUNE_C(0x000FAC)}, + {RUNE_C(0x000FB9), RUNE_C(0x000FB9)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FC)}, + {RUNE_C(0x00115F), RUNE_C(0x001160)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D2E)}, + {RUNE_C(0x001D30), RUNE_C(0x001D3A)}, + {RUNE_C(0x001D3C), RUNE_C(0x001D4D)}, + {RUNE_C(0x001D4F), RUNE_C(0x001D6A)}, + {RUNE_C(0x001D78), RUNE_C(0x001D78)}, + {RUNE_C(0x001D9B), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9A), RUNE_C(0x001E9B)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F71), RUNE_C(0x001F71)}, + {RUNE_C(0x001F73), RUNE_C(0x001F73)}, + {RUNE_C(0x001F75), RUNE_C(0x001F75)}, + {RUNE_C(0x001F77), RUNE_C(0x001F77)}, + {RUNE_C(0x001F79), RUNE_C(0x001F79)}, + {RUNE_C(0x001F7B), RUNE_C(0x001F7B)}, + {RUNE_C(0x001F7D), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB2), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB7), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC7), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FD3), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FE3), RUNE_C(0x001FE3)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF7), RUNE_C(0x001FFE)}, + {RUNE_C(0x002000), RUNE_C(0x00200F)}, + {RUNE_C(0x002011), RUNE_C(0x002011)}, + {RUNE_C(0x002017), RUNE_C(0x002017)}, + {RUNE_C(0x002024), RUNE_C(0x002026)}, + {RUNE_C(0x00202A), RUNE_C(0x00202F)}, + {RUNE_C(0x002033), RUNE_C(0x002034)}, + {RUNE_C(0x002036), RUNE_C(0x002037)}, + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x00203E), RUNE_C(0x00203E)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002057), RUNE_C(0x002057)}, + {RUNE_C(0x00205F), RUNE_C(0x002071)}, + {RUNE_C(0x002074), RUNE_C(0x00208E)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020A8), RUNE_C(0x0020A8)}, + {RUNE_C(0x002100), RUNE_C(0x002103)}, + {RUNE_C(0x002105), RUNE_C(0x002107)}, + {RUNE_C(0x002109), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002116)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002120), RUNE_C(0x002122)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002139)}, + {RUNE_C(0x00213B), RUNE_C(0x002140)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x002150), RUNE_C(0x00217F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x002189), RUNE_C(0x002189)}, + {RUNE_C(0x00222C), RUNE_C(0x00222D)}, + {RUNE_C(0x00222F), RUNE_C(0x002230)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x002460), RUNE_C(0x0024EA)}, + {RUNE_C(0x002A0C), RUNE_C(0x002A0C)}, + {RUNE_C(0x002A74), RUNE_C(0x002A76)}, + {RUNE_C(0x002ADC), RUNE_C(0x002ADC)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002E9F), RUNE_C(0x002E9F)}, + {RUNE_C(0x002EF3), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, + {RUNE_C(0x003000), RUNE_C(0x003000)}, + {RUNE_C(0x003036), RUNE_C(0x003036)}, + {RUNE_C(0x003038), RUNE_C(0x00303A)}, + {RUNE_C(0x00309B), RUNE_C(0x00309C)}, + {RUNE_C(0x00309F), RUNE_C(0x00309F)}, + {RUNE_C(0x0030FF), RUNE_C(0x0030FF)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x003192), RUNE_C(0x00319F)}, + {RUNE_C(0x003200), RUNE_C(0x00321E)}, + {RUNE_C(0x003220), RUNE_C(0x003247)}, + {RUNE_C(0x003250), RUNE_C(0x00327E)}, + {RUNE_C(0x003280), RUNE_C(0x0033FF)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A770), RUNE_C(0x00A770)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA0D)}, + {RUNE_C(0x00FA10), RUNE_C(0x00FA10)}, + {RUNE_C(0x00FA12), RUNE_C(0x00FA12)}, + {RUNE_C(0x00FA15), RUNE_C(0x00FA1E)}, + {RUNE_C(0x00FA20), RUNE_C(0x00FA20)}, + {RUNE_C(0x00FA22), RUNE_C(0x00FA22)}, + {RUNE_C(0x00FA25), RUNE_C(0x00FA26)}, + {RUNE_C(0x00FA2A), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFC)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE19)}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE44)}, + {RUNE_C(0x00FE47), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE72)}, + {RUNE_C(0x00FE74), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010781), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01D15E), RUNE_C(0x01D164)}, + {RUNE_C(0x01D173), RUNE_C(0x01D17A)}, + {RUNE_C(0x01D1BB), RUNE_C(0x01D1C0)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01F100), RUNE_C(0x01F10A)}, + {RUNE_C(0x01F110), RUNE_C(0x01F12E)}, + {RUNE_C(0x01F130), RUNE_C(0x01F14F)}, + {RUNE_C(0x01F16A), RUNE_C(0x01F16C)}, + {RUNE_C(0x01F190), RUNE_C(0x01F190)}, + {RUNE_C(0x01F200), RUNE_C(0x01F202)}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B)}, + {RUNE_C(0x01F240), RUNE_C(0x01F248)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwkcf(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwl.c b/vendor/librune/lib/rtype/rprop_is_cwl.c new file mode 100644 index 0000000..69ca252 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwl.c @@ -0,0 +1,643 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x000000007F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000DE)}, + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x00014A), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C5)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C8)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CB)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F2)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003CF)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F4)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001F88), RUNE_C(0x001F8F)}, + {RUNE_C(0x001F98), RUNE_C(0x001F9F)}, + {RUNE_C(0x001FA8), RUNE_C(0x001FAF)}, + {RUNE_C(0x001FB8), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FC8), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF8), RUNE_C(0x001FFC)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x00212A), RUNE_C(0x00212B)}, + {RUNE_C(0x002132), RUNE_C(0x002132)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwl(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwt.c b/vendor/librune/lib/rtype/rprop_is_cwt.c new file mode 100644 index 0000000..f206d0d --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwt.c @@ -0,0 +1,660 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000DF), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0000FF)}, + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000137)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018C)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019A)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C4)}, + {RUNE_C(0x0001C6), RUNE_C(0x0001C7)}, + {RUNE_C(0x0001C9), RUNE_C(0x0001CA)}, + {RUNE_C(0x0001CC), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F1)}, + {RUNE_C(0x0001F3), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000233)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FB)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9B)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001F87)}, + {RUNE_C(0x001F90), RUNE_C(0x001F97)}, + {RUNE_C(0x001FA0), RUNE_C(0x001FA7)}, + {RUNE_C(0x001FB0), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C73), RUNE_C(0x002C73)}, + {RUNE_C(0x002C76), RUNE_C(0x002C76)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A794)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwt(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_cwu.c b/vendor/librune/lib/rtype/rprop_is_cwu.c new file mode 100644 index 0000000..bb300ea --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_cwu.c @@ -0,0 +1,661 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFF80000000002000000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000DF), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0000FF)}, + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000137)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018C)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019A)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001B9)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BD)}, + {RUNE_C(0x0001BF), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C5), RUNE_C(0x0001C6)}, + {RUNE_C(0x0001C8), RUNE_C(0x0001C9)}, + {RUNE_C(0x0001CB), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F0)}, + {RUNE_C(0x0001F2), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000233)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000254)}, + {RUNE_C(0x000256), RUNE_C(0x000257)}, + {RUNE_C(0x000259), RUNE_C(0x000259)}, + {RUNE_C(0x00025B), RUNE_C(0x00025C)}, + {RUNE_C(0x000260), RUNE_C(0x000261)}, + {RUNE_C(0x000263), RUNE_C(0x000263)}, + {RUNE_C(0x000265), RUNE_C(0x000266)}, + {RUNE_C(0x000268), RUNE_C(0x00026C)}, + {RUNE_C(0x00026F), RUNE_C(0x00026F)}, + {RUNE_C(0x000271), RUNE_C(0x000272)}, + {RUNE_C(0x000275), RUNE_C(0x000275)}, + {RUNE_C(0x00027D), RUNE_C(0x00027D)}, + {RUNE_C(0x000280), RUNE_C(0x000280)}, + {RUNE_C(0x000282), RUNE_C(0x000283)}, + {RUNE_C(0x000287), RUNE_C(0x00028C)}, + {RUNE_C(0x000292), RUNE_C(0x000292)}, + {RUNE_C(0x00029D), RUNE_C(0x00029E)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FB)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000561), RUNE_C(0x000587)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FD), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D79), RUNE_C(0x001D79)}, + {RUNE_C(0x001D7D), RUNE_C(0x001D7D)}, + {RUNE_C(0x001D8E), RUNE_C(0x001D8E)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9B)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBC), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FCC), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x001FFC), RUNE_C(0x001FFC)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C73), RUNE_C(0x002C73)}, + {RUNE_C(0x002C76), RUNE_C(0x002C76)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE3)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69B)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A72F)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A76F)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A794)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00AB53), RUNE_C(0x00AB53)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_cwu(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_dash.c b/vendor/librune/lib/rtype/rprop_is_dash.c new file mode 100644 index 0000000..8d54c71 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_dash.c @@ -0,0 +1,57 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000000000000000000000000000000000000200000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00002D), RUNE_C(0x00002D)}, + {RUNE_C(0x00058A), RUNE_C(0x00058A)}, + {RUNE_C(0x0005BE), RUNE_C(0x0005BE)}, + {RUNE_C(0x001400), RUNE_C(0x001400)}, + {RUNE_C(0x001806), RUNE_C(0x001806)}, + {RUNE_C(0x002010), RUNE_C(0x002015)}, + {RUNE_C(0x002053), RUNE_C(0x002053)}, + {RUNE_C(0x00207B), RUNE_C(0x00207B)}, + {RUNE_C(0x00208B), RUNE_C(0x00208B)}, + {RUNE_C(0x002212), RUNE_C(0x002212)}, + {RUNE_C(0x002E17), RUNE_C(0x002E17)}, + {RUNE_C(0x002E1A), RUNE_C(0x002E1A)}, + {RUNE_C(0x002E3A), RUNE_C(0x002E3B)}, + {RUNE_C(0x002E40), RUNE_C(0x002E40)}, + {RUNE_C(0x002E5D), RUNE_C(0x002E5D)}, + {RUNE_C(0x00301C), RUNE_C(0x00301C)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x0030A0), RUNE_C(0x0030A0)}, + {RUNE_C(0x00FE31), RUNE_C(0x00FE32)}, + {RUNE_C(0x00FE58), RUNE_C(0x00FE58)}, + {RUNE_C(0x00FE63), RUNE_C(0x00FE63)}, + {RUNE_C(0x00FF0D), RUNE_C(0x00FF0D)}, + {RUNE_C(0x010EAD), RUNE_C(0x010EAD)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_dash(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_dep.c b/vendor/librune/lib/rtype/rprop_is_dep.c new file mode 100644 index 0000000..085d074 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_dep.c @@ -0,0 +1,33 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000149), RUNE_C(0x000149)}, + {RUNE_C(0x000673), RUNE_C(0x000673)}, + {RUNE_C(0x000F77), RUNE_C(0x000F77)}, + {RUNE_C(0x000F79), RUNE_C(0x000F79)}, + {RUNE_C(0x0017A3), RUNE_C(0x0017A4)}, + {RUNE_C(0x00206A), RUNE_C(0x00206F)}, + {RUNE_C(0x002329), RUNE_C(0x00232A)}, + {RUNE_C(0x0E0001), RUNE_C(0x0E0001)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_dep(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_di.c b/vendor/librune/lib/rtype/rprop_is_di.c new file mode 100644 index 0000000..2924e9b --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_di.c @@ -0,0 +1,51 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000020000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x0000AD), RUNE_C(0x0000AD)}, + {RUNE_C(0x00034F), RUNE_C(0x00034F)}, + {RUNE_C(0x00061C), RUNE_C(0x00061C)}, + {RUNE_C(0x00115F), RUNE_C(0x001160)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x00180B), RUNE_C(0x00180F)}, + {RUNE_C(0x00200B), RUNE_C(0x00200F)}, + {RUNE_C(0x00202A), RUNE_C(0x00202E)}, + {RUNE_C(0x002060), RUNE_C(0x00206F)}, + {RUNE_C(0x003164), RUNE_C(0x003164)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FEFF), RUNE_C(0x00FEFF)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFA0)}, + {RUNE_C(0x00FFF0), RUNE_C(0x00FFF8)}, + {RUNE_C(0x01BCA0), RUNE_C(0x01BCA3)}, + {RUNE_C(0x01D173), RUNE_C(0x01D17A)}, + {RUNE_C(0x0E0000), RUNE_C(0x0E0FFF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_di(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_dia.c b/vendor/librune/lib/rtype/rprop_is_dia.c new file mode 100644 index 0000000..28bf280 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_dia.c @@ -0,0 +1,229 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000019081000000000000000001400000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00005E), RUNE_C(0x00005E)}, + {RUNE_C(0x000060), RUNE_C(0x000060)}, + {RUNE_C(0x0000A8), RUNE_C(0x0000A8)}, + {RUNE_C(0x0000AF), RUNE_C(0x0000AF)}, + {RUNE_C(0x0000B4), RUNE_C(0x0000B4)}, + {RUNE_C(0x0000B7), RUNE_C(0x0000B8)}, + {RUNE_C(0x0002B0), RUNE_C(0x00034E)}, + {RUNE_C(0x000350), RUNE_C(0x000357)}, + {RUNE_C(0x00035D), RUNE_C(0x000362)}, + {RUNE_C(0x000374), RUNE_C(0x000375)}, + {RUNE_C(0x00037A), RUNE_C(0x00037A)}, + {RUNE_C(0x000384), RUNE_C(0x000385)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000591), RUNE_C(0x0005A1)}, + {RUNE_C(0x0005A3), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C4)}, + {RUNE_C(0x00064B), RUNE_C(0x000652)}, + {RUNE_C(0x000657), RUNE_C(0x000658)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E0)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006EC)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F5)}, + {RUNE_C(0x000818), RUNE_C(0x000819)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008C9), RUNE_C(0x0008D2)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008FE)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000954)}, + {RUNE_C(0x000971), RUNE_C(0x000971)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A4D), RUNE_C(0x000A4D)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AFD), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B55)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CCD), RUNE_C(0x000CCD)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000E47), RUNE_C(0x000E4C)}, + {RUNE_C(0x000E4E), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EBA), RUNE_C(0x000EBA)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECC)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F3F)}, + {RUNE_C(0x000F82), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001037), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x001063), RUNE_C(0x001064)}, + {RUNE_C(0x001069), RUNE_C(0x00106D)}, + {RUNE_C(0x001087), RUNE_C(0x00108D)}, + {RUNE_C(0x00108F), RUNE_C(0x00108F)}, + {RUNE_C(0x00109A), RUNE_C(0x00109B)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001714), RUNE_C(0x001715)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A75), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABE)}, + {RUNE_C(0x001AC1), RUNE_C(0x001ACB)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B44), RUNE_C(0x001B44)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAB)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001C78), RUNE_C(0x001C7D)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF7), RUNE_C(0x001CF9)}, + {RUNE_C(0x001D2C), RUNE_C(0x001D6A)}, + {RUNE_C(0x001DC4), RUNE_C(0x001DCF)}, + {RUNE_C(0x001DF5), RUNE_C(0x001DFF)}, + {RUNE_C(0x001FBD), RUNE_C(0x001FBD)}, + {RUNE_C(0x001FBF), RUNE_C(0x001FC1)}, + {RUNE_C(0x001FCD), RUNE_C(0x001FCF)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FDF)}, + {RUNE_C(0x001FED), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FFD), RUNE_C(0x001FFE)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002E2F), RUNE_C(0x002E2F)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309C)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FC)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A67C), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A67F)}, + {RUNE_C(0x00A69C), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A700), RUNE_C(0x00A721)}, + {RUNE_C(0x00A788), RUNE_C(0x00A78A)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7F9)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C4)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92E)}, + {RUNE_C(0x00A953), RUNE_C(0x00A953)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9C0), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)}, + {RUNE_C(0x00AA7B), RUNE_C(0x00AA7D)}, + {RUNE_C(0x00AABF), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB5B), RUNE_C(0x00AB5F)}, + {RUNE_C(0x00AB69), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF40), RUNE_C(0x00FF40)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x00FFE3), RUNE_C(0x00FFE3)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D22), RUNE_C(0x010D27)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011046), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x011133), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x0111C0), RUNE_C(0x0111C0)}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CC)}, + {RUNE_C(0x011235), RUNE_C(0x011236)}, + {RUNE_C(0x0112E9), RUNE_C(0x0112EA)}, + {RUNE_C(0x01133C), RUNE_C(0x01133C)}, + {RUNE_C(0x01134D), RUNE_C(0x01134D)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011442), RUNE_C(0x011442)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x01163F), RUNE_C(0x01163F)}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B7)}, + {RUNE_C(0x01172B), RUNE_C(0x01172B)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x01193D), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A34), RUNE_C(0x011A34)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A99), RUNE_C(0x011A99)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011D42), RUNE_C(0x011D42)}, + {RUNE_C(0x011D44), RUNE_C(0x011D45)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E946)}, + {RUNE_C(0x01E948), RUNE_C(0x01E94A)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_dia(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ebase.c b/vendor/librune/lib/rtype/rprop_is_ebase.c new file mode 100644 index 0000000..aaf5014 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ebase.c @@ -0,0 +1,65 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00261D), RUNE_C(0x00261D)}, + {RUNE_C(0x0026F9), RUNE_C(0x0026F9)}, + {RUNE_C(0x00270A), RUNE_C(0x00270D)}, + {RUNE_C(0x01F385), RUNE_C(0x01F385)}, + {RUNE_C(0x01F3C2), RUNE_C(0x01F3C4)}, + {RUNE_C(0x01F3C7), RUNE_C(0x01F3C7)}, + {RUNE_C(0x01F3CA), RUNE_C(0x01F3CC)}, + {RUNE_C(0x01F442), RUNE_C(0x01F443)}, + {RUNE_C(0x01F446), RUNE_C(0x01F450)}, + {RUNE_C(0x01F466), RUNE_C(0x01F478)}, + {RUNE_C(0x01F47C), RUNE_C(0x01F47C)}, + {RUNE_C(0x01F481), RUNE_C(0x01F483)}, + {RUNE_C(0x01F485), RUNE_C(0x01F487)}, + {RUNE_C(0x01F48F), RUNE_C(0x01F48F)}, + {RUNE_C(0x01F491), RUNE_C(0x01F491)}, + {RUNE_C(0x01F4AA), RUNE_C(0x01F4AA)}, + {RUNE_C(0x01F574), RUNE_C(0x01F575)}, + {RUNE_C(0x01F57A), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F590), RUNE_C(0x01F590)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F645), RUNE_C(0x01F647)}, + {RUNE_C(0x01F64B), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F6A3), RUNE_C(0x01F6A3)}, + {RUNE_C(0x01F6B4), RUNE_C(0x01F6B6)}, + {RUNE_C(0x01F6C0), RUNE_C(0x01F6C0)}, + {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F90C)}, + {RUNE_C(0x01F90F), RUNE_C(0x01F90F)}, + {RUNE_C(0x01F918), RUNE_C(0x01F91F)}, + {RUNE_C(0x01F926), RUNE_C(0x01F926)}, + {RUNE_C(0x01F930), RUNE_C(0x01F939)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F93E)}, + {RUNE_C(0x01F977), RUNE_C(0x01F977)}, + {RUNE_C(0x01F9B5), RUNE_C(0x01F9B6)}, + {RUNE_C(0x01F9B8), RUNE_C(0x01F9B9)}, + {RUNE_C(0x01F9BB), RUNE_C(0x01F9BB)}, + {RUNE_C(0x01F9CD), RUNE_C(0x01F9CF)}, + {RUNE_C(0x01F9D1), RUNE_C(0x01F9DD)}, + {RUNE_C(0x01FAC3), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ebase(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ecomp.c b/vendor/librune/lib/rtype/rprop_is_ecomp.c new file mode 100644 index 0000000..330ef78 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ecomp.c @@ -0,0 +1,44 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x00000000000000000000000000000000000000000000000003FF040800000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000023), RUNE_C(0x000023)}, + {RUNE_C(0x00002A), RUNE_C(0x00002A)}, + {RUNE_C(0x000030), RUNE_C(0x000039)}, + {RUNE_C(0x00200D), RUNE_C(0x00200D)}, + {RUNE_C(0x0020E3), RUNE_C(0x0020E3)}, + {RUNE_C(0x00FE0F), RUNE_C(0x00FE0F)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, + {RUNE_C(0x01F9B0), RUNE_C(0x01F9B3)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ecomp(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_emod.c b/vendor/librune/lib/rtype/rprop_is_emod.c new file mode 100644 index 0000000..52ab5c8 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_emod.c @@ -0,0 +1,26 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x01F3FB), RUNE_C(0x01F3FF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_emod(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_emoji.c b/vendor/librune/lib/rtype/rprop_is_emoji.c new file mode 100644 index 0000000..c28d57b --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_emoji.c @@ -0,0 +1,185 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x00000000000000000000420000000000000000000000000003FF040800000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000023), RUNE_C(0x000023)}, + {RUNE_C(0x00002A), RUNE_C(0x00002A)}, + {RUNE_C(0x000030), RUNE_C(0x000039)}, + {RUNE_C(0x0000A9), RUNE_C(0x0000A9)}, + {RUNE_C(0x0000AE), RUNE_C(0x0000AE)}, + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x002049), RUNE_C(0x002049)}, + {RUNE_C(0x002122), RUNE_C(0x002122)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x002194), RUNE_C(0x002199)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AA)}, + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x002328), RUNE_C(0x002328)}, + {RUNE_C(0x0023CF), RUNE_C(0x0023CF)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023F3)}, + {RUNE_C(0x0023F8), RUNE_C(0x0023FA)}, + {RUNE_C(0x0024C2), RUNE_C(0x0024C2)}, + {RUNE_C(0x0025AA), RUNE_C(0x0025AB)}, + {RUNE_C(0x0025B6), RUNE_C(0x0025B6)}, + {RUNE_C(0x0025C0), RUNE_C(0x0025C0)}, + {RUNE_C(0x0025FB), RUNE_C(0x0025FE)}, + {RUNE_C(0x002600), RUNE_C(0x002604)}, + {RUNE_C(0x00260E), RUNE_C(0x00260E)}, + {RUNE_C(0x002611), RUNE_C(0x002611)}, + {RUNE_C(0x002614), RUNE_C(0x002615)}, + {RUNE_C(0x002618), RUNE_C(0x002618)}, + {RUNE_C(0x00261D), RUNE_C(0x00261D)}, + {RUNE_C(0x002620), RUNE_C(0x002620)}, + {RUNE_C(0x002622), RUNE_C(0x002623)}, + {RUNE_C(0x002626), RUNE_C(0x002626)}, + {RUNE_C(0x00262A), RUNE_C(0x00262A)}, + {RUNE_C(0x00262E), RUNE_C(0x00262F)}, + {RUNE_C(0x002638), RUNE_C(0x00263A)}, + {RUNE_C(0x002640), RUNE_C(0x002640)}, + {RUNE_C(0x002642), RUNE_C(0x002642)}, + {RUNE_C(0x002648), RUNE_C(0x002653)}, + {RUNE_C(0x00265F), RUNE_C(0x002660)}, + {RUNE_C(0x002663), RUNE_C(0x002663)}, + {RUNE_C(0x002665), RUNE_C(0x002666)}, + {RUNE_C(0x002668), RUNE_C(0x002668)}, + {RUNE_C(0x00267B), RUNE_C(0x00267B)}, + {RUNE_C(0x00267E), RUNE_C(0x00267F)}, + {RUNE_C(0x002692), RUNE_C(0x002697)}, + {RUNE_C(0x002699), RUNE_C(0x002699)}, + {RUNE_C(0x00269B), RUNE_C(0x00269C)}, + {RUNE_C(0x0026A0), RUNE_C(0x0026A1)}, + {RUNE_C(0x0026A7), RUNE_C(0x0026A7)}, + {RUNE_C(0x0026AA), RUNE_C(0x0026AB)}, + {RUNE_C(0x0026B0), RUNE_C(0x0026B1)}, + {RUNE_C(0x0026BD), RUNE_C(0x0026BE)}, + {RUNE_C(0x0026C4), RUNE_C(0x0026C5)}, + {RUNE_C(0x0026C8), RUNE_C(0x0026C8)}, + {RUNE_C(0x0026CE), RUNE_C(0x0026CF)}, + {RUNE_C(0x0026D1), RUNE_C(0x0026D1)}, + {RUNE_C(0x0026D3), RUNE_C(0x0026D4)}, + {RUNE_C(0x0026E9), RUNE_C(0x0026EA)}, + {RUNE_C(0x0026F0), RUNE_C(0x0026F5)}, + {RUNE_C(0x0026F7), RUNE_C(0x0026FA)}, + {RUNE_C(0x0026FD), RUNE_C(0x0026FD)}, + {RUNE_C(0x002702), RUNE_C(0x002702)}, + {RUNE_C(0x002705), RUNE_C(0x002705)}, + {RUNE_C(0x002708), RUNE_C(0x00270D)}, + {RUNE_C(0x00270F), RUNE_C(0x00270F)}, + {RUNE_C(0x002712), RUNE_C(0x002712)}, + {RUNE_C(0x002714), RUNE_C(0x002714)}, + {RUNE_C(0x002716), RUNE_C(0x002716)}, + {RUNE_C(0x00271D), RUNE_C(0x00271D)}, + {RUNE_C(0x002721), RUNE_C(0x002721)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x002733), RUNE_C(0x002734)}, + {RUNE_C(0x002744), RUNE_C(0x002744)}, + {RUNE_C(0x002747), RUNE_C(0x002747)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002763), RUNE_C(0x002764)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027A1), RUNE_C(0x0027A1)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002934), RUNE_C(0x002935)}, + {RUNE_C(0x002B05), RUNE_C(0x002B07)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00303D), RUNE_C(0x00303D)}, + {RUNE_C(0x003297), RUNE_C(0x003297)}, + {RUNE_C(0x003299), RUNE_C(0x003299)}, + {RUNE_C(0x01F004), RUNE_C(0x01F004)}, + {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F170), RUNE_C(0x01F171)}, + {RUNE_C(0x01F17E), RUNE_C(0x01F17F)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F201), RUNE_C(0x01F202)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F300), RUNE_C(0x01F321)}, + {RUNE_C(0x01F324), RUNE_C(0x01F393)}, + {RUNE_C(0x01F396), RUNE_C(0x01F397)}, + {RUNE_C(0x01F399), RUNE_C(0x01F39B)}, + {RUNE_C(0x01F39E), RUNE_C(0x01F3F0)}, + {RUNE_C(0x01F3F3), RUNE_C(0x01F3F5)}, + {RUNE_C(0x01F3F7), RUNE_C(0x01F4FD)}, + {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F549), RUNE_C(0x01F54E)}, + {RUNE_C(0x01F550), RUNE_C(0x01F567)}, + {RUNE_C(0x01F56F), RUNE_C(0x01F570)}, + {RUNE_C(0x01F573), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F587), RUNE_C(0x01F587)}, + {RUNE_C(0x01F58A), RUNE_C(0x01F58D)}, + {RUNE_C(0x01F590), RUNE_C(0x01F590)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F5A4), RUNE_C(0x01F5A5)}, + {RUNE_C(0x01F5A8), RUNE_C(0x01F5A8)}, + {RUNE_C(0x01F5B1), RUNE_C(0x01F5B2)}, + {RUNE_C(0x01F5BC), RUNE_C(0x01F5BC)}, + {RUNE_C(0x01F5C2), RUNE_C(0x01F5C4)}, + {RUNE_C(0x01F5D1), RUNE_C(0x01F5D3)}, + {RUNE_C(0x01F5DC), RUNE_C(0x01F5DE)}, + {RUNE_C(0x01F5E1), RUNE_C(0x01F5E1)}, + {RUNE_C(0x01F5E3), RUNE_C(0x01F5E3)}, + {RUNE_C(0x01F5E8), RUNE_C(0x01F5E8)}, + {RUNE_C(0x01F5EF), RUNE_C(0x01F5EF)}, + {RUNE_C(0x01F5F3), RUNE_C(0x01F5F3)}, + {RUNE_C(0x01F5FA), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6C5)}, + {RUNE_C(0x01F6CB), RUNE_C(0x01F6D2)}, + {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6E5)}, + {RUNE_C(0x01F6E9), RUNE_C(0x01F6E9)}, + {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F0), RUNE_C(0x01F6F0)}, + {RUNE_C(0x01F6F3), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01F9FF)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_emoji(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_epres.c b/vendor/librune/lib/rtype/rprop_is_epres.c new file mode 100644 index 0000000..9de53d6 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_epres.c @@ -0,0 +1,106 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023EC)}, + {RUNE_C(0x0023F0), RUNE_C(0x0023F0)}, + {RUNE_C(0x0023F3), RUNE_C(0x0023F3)}, + {RUNE_C(0x0025FD), RUNE_C(0x0025FE)}, + {RUNE_C(0x002614), RUNE_C(0x002615)}, + {RUNE_C(0x002648), RUNE_C(0x002653)}, + {RUNE_C(0x00267F), RUNE_C(0x00267F)}, + {RUNE_C(0x002693), RUNE_C(0x002693)}, + {RUNE_C(0x0026A1), RUNE_C(0x0026A1)}, + {RUNE_C(0x0026AA), RUNE_C(0x0026AB)}, + {RUNE_C(0x0026BD), RUNE_C(0x0026BE)}, + {RUNE_C(0x0026C4), RUNE_C(0x0026C5)}, + {RUNE_C(0x0026CE), RUNE_C(0x0026CE)}, + {RUNE_C(0x0026D4), RUNE_C(0x0026D4)}, + {RUNE_C(0x0026EA), RUNE_C(0x0026EA)}, + {RUNE_C(0x0026F2), RUNE_C(0x0026F3)}, + {RUNE_C(0x0026F5), RUNE_C(0x0026F5)}, + {RUNE_C(0x0026FA), RUNE_C(0x0026FA)}, + {RUNE_C(0x0026FD), RUNE_C(0x0026FD)}, + {RUNE_C(0x002705), RUNE_C(0x002705)}, + {RUNE_C(0x00270A), RUNE_C(0x00270B)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x01F004), RUNE_C(0x01F004)}, + {RUNE_C(0x01F0CF), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F1FF)}, + {RUNE_C(0x01F201), RUNE_C(0x01F201)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F236)}, + {RUNE_C(0x01F238), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F300), RUNE_C(0x01F320)}, + {RUNE_C(0x01F32D), RUNE_C(0x01F335)}, + {RUNE_C(0x01F337), RUNE_C(0x01F37C)}, + {RUNE_C(0x01F37E), RUNE_C(0x01F393)}, + {RUNE_C(0x01F3A0), RUNE_C(0x01F3CA)}, + {RUNE_C(0x01F3CF), RUNE_C(0x01F3D3)}, + {RUNE_C(0x01F3E0), RUNE_C(0x01F3F0)}, + {RUNE_C(0x01F3F4), RUNE_C(0x01F3F4)}, + {RUNE_C(0x01F3F8), RUNE_C(0x01F43E)}, + {RUNE_C(0x01F440), RUNE_C(0x01F440)}, + {RUNE_C(0x01F442), RUNE_C(0x01F4FC)}, + {RUNE_C(0x01F4FF), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F54B), RUNE_C(0x01F54E)}, + {RUNE_C(0x01F550), RUNE_C(0x01F567)}, + {RUNE_C(0x01F57A), RUNE_C(0x01F57A)}, + {RUNE_C(0x01F595), RUNE_C(0x01F596)}, + {RUNE_C(0x01F5A4), RUNE_C(0x01F5A4)}, + {RUNE_C(0x01F5FB), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6C5)}, + {RUNE_C(0x01F6CC), RUNE_C(0x01F6CC)}, + {RUNE_C(0x01F6D0), RUNE_C(0x01F6D2)}, + {RUNE_C(0x01F6D5), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6DF)}, + {RUNE_C(0x01F6EB), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F4), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01F9FF)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_epres(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ext.c b/vendor/librune/lib/rtype/rprop_is_ext.c new file mode 100644 index 0000000..850cde4 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ext.c @@ -0,0 +1,67 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000008000000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x0000B7), RUNE_C(0x0000B7)}, + {RUNE_C(0x0002D0), RUNE_C(0x0002D1)}, + {RUNE_C(0x000640), RUNE_C(0x000640)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000B55), RUNE_C(0x000B55)}, + {RUNE_C(0x000E46), RUNE_C(0x000E46)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x00180A), RUNE_C(0x00180A)}, + {RUNE_C(0x001843), RUNE_C(0x001843)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001C36), RUNE_C(0x001C36)}, + {RUNE_C(0x001C7B), RUNE_C(0x001C7B)}, + {RUNE_C(0x003005), RUNE_C(0x003005)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x00309D), RUNE_C(0x00309E)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FE)}, + {RUNE_C(0x00A015), RUNE_C(0x00A015)}, + {RUNE_C(0x00A60C), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9E6)}, + {RUNE_C(0x00AA70), RUNE_C(0x00AA70)}, + {RUNE_C(0x00AADD), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAF3), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00FF70), RUNE_C(0x00FF70)}, + {RUNE_C(0x010781), RUNE_C(0x010782)}, + {RUNE_C(0x01135D), RUNE_C(0x01135D)}, + {RUNE_C(0x0115C6), RUNE_C(0x0115C8)}, + {RUNE_C(0x011A98), RUNE_C(0x011A98)}, + {RUNE_C(0x016B42), RUNE_C(0x016B43)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x01E13C), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E944), RUNE_C(0x01E946)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ext(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_extpic.c b/vendor/librune/lib/rtype/rprop_is_extpic.c new file mode 100644 index 0000000..69d2990 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_extpic.c @@ -0,0 +1,112 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000042000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x0000A9), RUNE_C(0x0000A9)}, + {RUNE_C(0x0000AE), RUNE_C(0x0000AE)}, + {RUNE_C(0x00203C), RUNE_C(0x00203C)}, + {RUNE_C(0x002049), RUNE_C(0x002049)}, + {RUNE_C(0x002122), RUNE_C(0x002122)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x002194), RUNE_C(0x002199)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AA)}, + {RUNE_C(0x00231A), RUNE_C(0x00231B)}, + {RUNE_C(0x002328), RUNE_C(0x002328)}, + {RUNE_C(0x002388), RUNE_C(0x002388)}, + {RUNE_C(0x0023CF), RUNE_C(0x0023CF)}, + {RUNE_C(0x0023E9), RUNE_C(0x0023F3)}, + {RUNE_C(0x0023F8), RUNE_C(0x0023FA)}, + {RUNE_C(0x0024C2), RUNE_C(0x0024C2)}, + {RUNE_C(0x0025AA), RUNE_C(0x0025AB)}, + {RUNE_C(0x0025B6), RUNE_C(0x0025B6)}, + {RUNE_C(0x0025C0), RUNE_C(0x0025C0)}, + {RUNE_C(0x0025FB), RUNE_C(0x0025FE)}, + {RUNE_C(0x002600), RUNE_C(0x002605)}, + {RUNE_C(0x002607), RUNE_C(0x002612)}, + {RUNE_C(0x002614), RUNE_C(0x002685)}, + {RUNE_C(0x002690), RUNE_C(0x002705)}, + {RUNE_C(0x002708), RUNE_C(0x002712)}, + {RUNE_C(0x002714), RUNE_C(0x002714)}, + {RUNE_C(0x002716), RUNE_C(0x002716)}, + {RUNE_C(0x00271D), RUNE_C(0x00271D)}, + {RUNE_C(0x002721), RUNE_C(0x002721)}, + {RUNE_C(0x002728), RUNE_C(0x002728)}, + {RUNE_C(0x002733), RUNE_C(0x002734)}, + {RUNE_C(0x002744), RUNE_C(0x002744)}, + {RUNE_C(0x002747), RUNE_C(0x002747)}, + {RUNE_C(0x00274C), RUNE_C(0x00274C)}, + {RUNE_C(0x00274E), RUNE_C(0x00274E)}, + {RUNE_C(0x002753), RUNE_C(0x002755)}, + {RUNE_C(0x002757), RUNE_C(0x002757)}, + {RUNE_C(0x002763), RUNE_C(0x002767)}, + {RUNE_C(0x002795), RUNE_C(0x002797)}, + {RUNE_C(0x0027A1), RUNE_C(0x0027A1)}, + {RUNE_C(0x0027B0), RUNE_C(0x0027B0)}, + {RUNE_C(0x0027BF), RUNE_C(0x0027BF)}, + {RUNE_C(0x002934), RUNE_C(0x002935)}, + {RUNE_C(0x002B05), RUNE_C(0x002B07)}, + {RUNE_C(0x002B1B), RUNE_C(0x002B1C)}, + {RUNE_C(0x002B50), RUNE_C(0x002B50)}, + {RUNE_C(0x002B55), RUNE_C(0x002B55)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00303D), RUNE_C(0x00303D)}, + {RUNE_C(0x003297), RUNE_C(0x003297)}, + {RUNE_C(0x003299), RUNE_C(0x003299)}, + {RUNE_C(0x01F000), RUNE_C(0x01F0FF)}, + {RUNE_C(0x01F10D), RUNE_C(0x01F10F)}, + {RUNE_C(0x01F12F), RUNE_C(0x01F12F)}, + {RUNE_C(0x01F16C), RUNE_C(0x01F171)}, + {RUNE_C(0x01F17E), RUNE_C(0x01F17F)}, + {RUNE_C(0x01F18E), RUNE_C(0x01F18E)}, + {RUNE_C(0x01F191), RUNE_C(0x01F19A)}, + {RUNE_C(0x01F1AD), RUNE_C(0x01F1E5)}, + {RUNE_C(0x01F201), RUNE_C(0x01F20F)}, + {RUNE_C(0x01F21A), RUNE_C(0x01F21A)}, + {RUNE_C(0x01F22F), RUNE_C(0x01F22F)}, + {RUNE_C(0x01F232), RUNE_C(0x01F23A)}, + {RUNE_C(0x01F23C), RUNE_C(0x01F23F)}, + {RUNE_C(0x01F249), RUNE_C(0x01F3FA)}, + {RUNE_C(0x01F400), RUNE_C(0x01F53D)}, + {RUNE_C(0x01F546), RUNE_C(0x01F64F)}, + {RUNE_C(0x01F680), RUNE_C(0x01F6FF)}, + {RUNE_C(0x01F774), RUNE_C(0x01F77F)}, + {RUNE_C(0x01F7D5), RUNE_C(0x01F7FF)}, + {RUNE_C(0x01F80C), RUNE_C(0x01F80F)}, + {RUNE_C(0x01F848), RUNE_C(0x01F84F)}, + {RUNE_C(0x01F85A), RUNE_C(0x01F85F)}, + {RUNE_C(0x01F888), RUNE_C(0x01F88F)}, + {RUNE_C(0x01F8AE), RUNE_C(0x01F8FF)}, + {RUNE_C(0x01F90C), RUNE_C(0x01F93A)}, + {RUNE_C(0x01F93C), RUNE_C(0x01F945)}, + {RUNE_C(0x01F947), RUNE_C(0x01FAFF)}, + {RUNE_C(0x01FC00), RUNE_C(0x01FFFD)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_extpic(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_gr_base.c b/vendor/librune/lib/rtype/rprop_is_gr_base.c new file mode 100644 index 0000000..07a4c80 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_gr_base.c @@ -0,0 +1,909 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFFFFFFFFFFFFFFFFFFFFDFFF000000007FFFFFFFFFFFFFFFFFFFFFFF00000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000020), RUNE_C(0x00007E)}, + {RUNE_C(0x0000A0), RUNE_C(0x0000AC)}, + {RUNE_C(0x0000AE), RUNE_C(0x0002FF)}, + {RUNE_C(0x000370), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037F)}, + {RUNE_C(0x000384), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x000482)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x00058A)}, + {RUNE_C(0x00058D), RUNE_C(0x00058F)}, + {RUNE_C(0x0005BE), RUNE_C(0x0005BE)}, + {RUNE_C(0x0005C0), RUNE_C(0x0005C0)}, + {RUNE_C(0x0005C3), RUNE_C(0x0005C3)}, + {RUNE_C(0x0005C6), RUNE_C(0x0005C6)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F4)}, + {RUNE_C(0x000606), RUNE_C(0x00060F)}, + {RUNE_C(0x00061B), RUNE_C(0x00061B)}, + {RUNE_C(0x00061D), RUNE_C(0x00064A)}, + {RUNE_C(0x000660), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006DE), RUNE_C(0x0006DE)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006E9), RUNE_C(0x0006E9)}, + {RUNE_C(0x0006EE), RUNE_C(0x00070D)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FE), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000830), RUNE_C(0x00083E)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x00085E), RUNE_C(0x00085E)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000903), RUNE_C(0x000939)}, + {RUNE_C(0x00093B), RUNE_C(0x00093B)}, + {RUNE_C(0x00093D), RUNE_C(0x000940)}, + {RUNE_C(0x000949), RUNE_C(0x00094C)}, + {RUNE_C(0x00094E), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000964), RUNE_C(0x000980)}, + {RUNE_C(0x000982), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009BF), RUNE_C(0x0009C0)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CC)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009FD)}, + {RUNE_C(0x000A03), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A40)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A6F)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A76), RUNE_C(0x000A76)}, + {RUNE_C(0x000A83), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000AC0)}, + {RUNE_C(0x000AC9), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACC)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AF1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B02), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B40), RUNE_C(0x000B40)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4C)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B66), RUNE_C(0x000B77)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBF), RUNE_C(0x000BBF)}, + {RUNE_C(0x000BC1), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCC)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BFA)}, + {RUNE_C(0x000C01), RUNE_C(0x000C03)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C41), RUNE_C(0x000C44)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C77), RUNE_C(0x000C80)}, + {RUNE_C(0x000C82), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBE)}, + {RUNE_C(0x000CC0), RUNE_C(0x000CC1)}, + {RUNE_C(0x000CC3), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC7), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCB)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D02), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D3F), RUNE_C(0x000D40)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4C)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4F)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D58), RUNE_C(0x000D61)}, + {RUNE_C(0x000D66), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D82), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DD0), RUNE_C(0x000DD1)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDE)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF4)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E33)}, + {RUNE_C(0x000E3F), RUNE_C(0x000E46)}, + {RUNE_C(0x000E4F), RUNE_C(0x000E5B)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F17)}, + {RUNE_C(0x000F1A), RUNE_C(0x000F34)}, + {RUNE_C(0x000F36), RUNE_C(0x000F36)}, + {RUNE_C(0x000F38), RUNE_C(0x000F38)}, + {RUNE_C(0x000F3A), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F7F), RUNE_C(0x000F7F)}, + {RUNE_C(0x000F85), RUNE_C(0x000F85)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x000FBE), RUNE_C(0x000FC5)}, + {RUNE_C(0x000FC7), RUNE_C(0x000FCC)}, + {RUNE_C(0x000FCE), RUNE_C(0x000FDA)}, + {RUNE_C(0x001000), RUNE_C(0x00102C)}, + {RUNE_C(0x001031), RUNE_C(0x001031)}, + {RUNE_C(0x001038), RUNE_C(0x001038)}, + {RUNE_C(0x00103B), RUNE_C(0x00103C)}, + {RUNE_C(0x00103F), RUNE_C(0x001057)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x001083), RUNE_C(0x001084)}, + {RUNE_C(0x001087), RUNE_C(0x00108C)}, + {RUNE_C(0x00108E), RUNE_C(0x00109C)}, + {RUNE_C(0x00109E), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001360), RUNE_C(0x00137C)}, + {RUNE_C(0x001380), RUNE_C(0x001399)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001400), RUNE_C(0x00169C)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x001715), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001734), RUNE_C(0x001736)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017B6), RUNE_C(0x0017B6)}, + {RUNE_C(0x0017BE), RUNE_C(0x0017C5)}, + {RUNE_C(0x0017C7), RUNE_C(0x0017C8)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017DC)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x0017F0), RUNE_C(0x0017F9)}, + {RUNE_C(0x001800), RUNE_C(0x00180A)}, + {RUNE_C(0x001810), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x001884)}, + {RUNE_C(0x001887), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001923), RUNE_C(0x001926)}, + {RUNE_C(0x001929), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x001931)}, + {RUNE_C(0x001933), RUNE_C(0x001938)}, + {RUNE_C(0x001940), RUNE_C(0x001940)}, + {RUNE_C(0x001944), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x0019DE), RUNE_C(0x001A16)}, + {RUNE_C(0x001A19), RUNE_C(0x001A1A)}, + {RUNE_C(0x001A1E), RUNE_C(0x001A55)}, + {RUNE_C(0x001A57), RUNE_C(0x001A57)}, + {RUNE_C(0x001A61), RUNE_C(0x001A61)}, + {RUNE_C(0x001A63), RUNE_C(0x001A64)}, + {RUNE_C(0x001A6D), RUNE_C(0x001A72)}, + {RUNE_C(0x001A80), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA0), RUNE_C(0x001AAD)}, + {RUNE_C(0x001B04), RUNE_C(0x001B33)}, + {RUNE_C(0x001B3B), RUNE_C(0x001B3B)}, + {RUNE_C(0x001B3D), RUNE_C(0x001B41)}, + {RUNE_C(0x001B43), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B6A)}, + {RUNE_C(0x001B74), RUNE_C(0x001B7E)}, + {RUNE_C(0x001B82), RUNE_C(0x001BA1)}, + {RUNE_C(0x001BA6), RUNE_C(0x001BA7)}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAA)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BE5)}, + {RUNE_C(0x001BE7), RUNE_C(0x001BE7)}, + {RUNE_C(0x001BEA), RUNE_C(0x001BEC)}, + {RUNE_C(0x001BEE), RUNE_C(0x001BEE)}, + {RUNE_C(0x001BF2), RUNE_C(0x001BF3)}, + {RUNE_C(0x001BFC), RUNE_C(0x001C2B)}, + {RUNE_C(0x001C34), RUNE_C(0x001C35)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CC7)}, + {RUNE_C(0x001CD3), RUNE_C(0x001CD3)}, + {RUNE_C(0x001CE1), RUNE_C(0x001CE1)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF7)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FDD), RUNE_C(0x001FEF)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFE)}, + {RUNE_C(0x002000), RUNE_C(0x00200A)}, + {RUNE_C(0x002010), RUNE_C(0x002027)}, + {RUNE_C(0x00202F), RUNE_C(0x00205F)}, + {RUNE_C(0x002070), RUNE_C(0x002071)}, + {RUNE_C(0x002074), RUNE_C(0x00208E)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020A0), RUNE_C(0x0020C0)}, + {RUNE_C(0x002100), RUNE_C(0x00218B)}, + {RUNE_C(0x002190), RUNE_C(0x002426)}, + {RUNE_C(0x002440), RUNE_C(0x00244A)}, + {RUNE_C(0x002460), RUNE_C(0x002B73)}, + {RUNE_C(0x002B76), RUNE_C(0x002B95)}, + {RUNE_C(0x002B97), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002CF9), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D70)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002E00), RUNE_C(0x002E5D)}, + {RUNE_C(0x002E80), RUNE_C(0x002E99)}, + {RUNE_C(0x002E9B), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, + {RUNE_C(0x002FF0), RUNE_C(0x003029)}, + {RUNE_C(0x003030), RUNE_C(0x00303F)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309B), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x003190), RUNE_C(0x0031E3)}, + {RUNE_C(0x0031EF), RUNE_C(0x00321E)}, + {RUNE_C(0x003220), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A490), RUNE_C(0x00A4C6)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A673), RUNE_C(0x00A673)}, + {RUNE_C(0x00A67E), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A6F2), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A700), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A824)}, + {RUNE_C(0x00A827), RUNE_C(0x00A82B)}, + {RUNE_C(0x00A830), RUNE_C(0x00A839)}, + {RUNE_C(0x00A840), RUNE_C(0x00A877)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C3)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A900), RUNE_C(0x00A925)}, + {RUNE_C(0x00A92E), RUNE_C(0x00A946)}, + {RUNE_C(0x00A952), RUNE_C(0x00A953)}, + {RUNE_C(0x00A95F), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A983), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9B4), RUNE_C(0x00A9B5)}, + {RUNE_C(0x00A9BA), RUNE_C(0x00A9BB)}, + {RUNE_C(0x00A9BE), RUNE_C(0x00A9CD)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9DE), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA2F), RUNE_C(0x00AA30)}, + {RUNE_C(0x00AA33), RUNE_C(0x00AA34)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA4D), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA5C), RUNE_C(0x00AA7B)}, + {RUNE_C(0x00AA7D), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AAEB)}, + {RUNE_C(0x00AAEE), RUNE_C(0x00AAF5)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB6B)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE4)}, + {RUNE_C(0x00ABE6), RUNE_C(0x00ABE7)}, + {RUNE_C(0x00ABE9), RUNE_C(0x00ABEC)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBC2)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDCF), RUNE_C(0x00FDCF)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFF)}, + {RUNE_C(0x00FE10), RUNE_C(0x00FE19)}, + {RUNE_C(0x00FE30), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE6B)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF9D)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x00FFE0), RUNE_C(0x00FFE6)}, + {RUNE_C(0x00FFE8), RUNE_C(0x00FFEE)}, + {RUNE_C(0x00FFFC), RUNE_C(0x00FFFD)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010100), RUNE_C(0x010102)}, + {RUNE_C(0x010107), RUNE_C(0x010133)}, + {RUNE_C(0x010137), RUNE_C(0x01018E)}, + {RUNE_C(0x010190), RUNE_C(0x01019C)}, + {RUNE_C(0x0101A0), RUNE_C(0x0101A0)}, + {RUNE_C(0x0101D0), RUNE_C(0x0101FC)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E1), RUNE_C(0x0102FB)}, + {RUNE_C(0x010300), RUNE_C(0x010323)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x01039F), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x01056F), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010857), RUNE_C(0x01089E)}, + {RUNE_C(0x0108A7), RUNE_C(0x0108AF)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x0108FB), RUNE_C(0x01091B)}, + {RUNE_C(0x01091F), RUNE_C(0x010939)}, + {RUNE_C(0x01093F), RUNE_C(0x01093F)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BC), RUNE_C(0x0109CF)}, + {RUNE_C(0x0109D2), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A40), RUNE_C(0x010A48)}, + {RUNE_C(0x010A50), RUNE_C(0x010A58)}, + {RUNE_C(0x010A60), RUNE_C(0x010A9F)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AE4)}, + {RUNE_C(0x010AEB), RUNE_C(0x010AF6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B39), RUNE_C(0x010B55)}, + {RUNE_C(0x010B58), RUNE_C(0x010B72)}, + {RUNE_C(0x010B78), RUNE_C(0x010B91)}, + {RUNE_C(0x010B99), RUNE_C(0x010B9C)}, + {RUNE_C(0x010BA9), RUNE_C(0x010BAF)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010CFA), RUNE_C(0x010D23)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E60), RUNE_C(0x010E7E)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAD), RUNE_C(0x010EAD)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F51), RUNE_C(0x010F59)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FCB)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011000)}, + {RUNE_C(0x011002), RUNE_C(0x011037)}, + {RUNE_C(0x011047), RUNE_C(0x01104D)}, + {RUNE_C(0x011052), RUNE_C(0x01106F)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011082), RUNE_C(0x0110B2)}, + {RUNE_C(0x0110B7), RUNE_C(0x0110B8)}, + {RUNE_C(0x0110BB), RUNE_C(0x0110BC)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x01112C), RUNE_C(0x01112C)}, + {RUNE_C(0x011136), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011174), RUNE_C(0x011176)}, + {RUNE_C(0x011182), RUNE_C(0x0111B5)}, + {RUNE_C(0x0111BF), RUNE_C(0x0111C8)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CE)}, + {RUNE_C(0x0111D0), RUNE_C(0x0111DF)}, + {RUNE_C(0x0111E1), RUNE_C(0x0111F4)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122E)}, + {RUNE_C(0x011232), RUNE_C(0x011233)}, + {RUNE_C(0x011235), RUNE_C(0x011235)}, + {RUNE_C(0x011238), RUNE_C(0x01123D)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A9)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x0112E0), RUNE_C(0x0112E2)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011302), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x01133F), RUNE_C(0x01133F)}, + {RUNE_C(0x011341), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011400), RUNE_C(0x011437)}, + {RUNE_C(0x011440), RUNE_C(0x011441)}, + {RUNE_C(0x011445), RUNE_C(0x011445)}, + {RUNE_C(0x011447), RUNE_C(0x01145B)}, + {RUNE_C(0x01145D), RUNE_C(0x01145D)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114B1), RUNE_C(0x0114B2)}, + {RUNE_C(0x0114B9), RUNE_C(0x0114B9)}, + {RUNE_C(0x0114BB), RUNE_C(0x0114BC)}, + {RUNE_C(0x0114BE), RUNE_C(0x0114BE)}, + {RUNE_C(0x0114C1), RUNE_C(0x0114C1)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115B0), RUNE_C(0x0115B1)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115BB)}, + {RUNE_C(0x0115BE), RUNE_C(0x0115BE)}, + {RUNE_C(0x0115C1), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x011632)}, + {RUNE_C(0x01163B), RUNE_C(0x01163C)}, + {RUNE_C(0x01163E), RUNE_C(0x01163E)}, + {RUNE_C(0x011641), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011660), RUNE_C(0x01166C)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116AC), RUNE_C(0x0116AC)}, + {RUNE_C(0x0116AE), RUNE_C(0x0116AF)}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B6)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B9)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011720), RUNE_C(0x011721)}, + {RUNE_C(0x011726), RUNE_C(0x011726)}, + {RUNE_C(0x011730), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182E)}, + {RUNE_C(0x011838), RUNE_C(0x011838)}, + {RUNE_C(0x01183B), RUNE_C(0x01183B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118F2)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x011931), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193D), RUNE_C(0x01193D)}, + {RUNE_C(0x01193F), RUNE_C(0x011942)}, + {RUNE_C(0x011944), RUNE_C(0x011946)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D3)}, + {RUNE_C(0x0119DC), RUNE_C(0x0119DF)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A39), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A3F), RUNE_C(0x011A46)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A57), RUNE_C(0x011A58)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A97), RUNE_C(0x011A97)}, + {RUNE_C(0x011A9A), RUNE_C(0x011AA2)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011B00), RUNE_C(0x011B09)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2F)}, + {RUNE_C(0x011C3E), RUNE_C(0x011C3E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C45)}, + {RUNE_C(0x011C50), RUNE_C(0x011C6C)}, + {RUNE_C(0x011C70), RUNE_C(0x011C8F)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CA9)}, + {RUNE_C(0x011CB1), RUNE_C(0x011CB1)}, + {RUNE_C(0x011CB4), RUNE_C(0x011CB4)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D93), RUNE_C(0x011D94)}, + {RUNE_C(0x011D96), RUNE_C(0x011D96)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011EF5), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F02), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F35)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F3F)}, + {RUNE_C(0x011F41), RUNE_C(0x011F41)}, + {RUNE_C(0x011F43), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x011FC0), RUNE_C(0x011FF1)}, + {RUNE_C(0x011FFF), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012470), RUNE_C(0x012474)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF2)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A6E), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B37), RUNE_C(0x016B45)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B5B), RUNE_C(0x016B61)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E9A)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F87)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE3)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9C), RUNE_C(0x01BC9C)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01CF50), RUNE_C(0x01CFC3)}, + {RUNE_C(0x01D000), RUNE_C(0x01D0F5)}, + {RUNE_C(0x01D100), RUNE_C(0x01D126)}, + {RUNE_C(0x01D129), RUNE_C(0x01D164)}, + {RUNE_C(0x01D166), RUNE_C(0x01D166)}, + {RUNE_C(0x01D16A), RUNE_C(0x01D16D)}, + {RUNE_C(0x01D183), RUNE_C(0x01D184)}, + {RUNE_C(0x01D18C), RUNE_C(0x01D1A9)}, + {RUNE_C(0x01D1AE), RUNE_C(0x01D1EA)}, + {RUNE_C(0x01D200), RUNE_C(0x01D241)}, + {RUNE_C(0x01D245), RUNE_C(0x01D245)}, + {RUNE_C(0x01D2C0), RUNE_C(0x01D2D3)}, + {RUNE_C(0x01D2E0), RUNE_C(0x01D2F3)}, + {RUNE_C(0x01D300), RUNE_C(0x01D356)}, + {RUNE_C(0x01D360), RUNE_C(0x01D378)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D9FF)}, + {RUNE_C(0x01DA37), RUNE_C(0x01DA3A)}, + {RUNE_C(0x01DA6D), RUNE_C(0x01DA74)}, + {RUNE_C(0x01DA76), RUNE_C(0x01DA83)}, + {RUNE_C(0x01DA85), RUNE_C(0x01DA8B)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14F)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E2F0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E2FF), RUNE_C(0x01E2FF)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E4F0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8C7), RUNE_C(0x01E8CF)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01E95E), RUNE_C(0x01E95F)}, + {RUNE_C(0x01EC71), RUNE_C(0x01ECB4)}, + {RUNE_C(0x01ED01), RUNE_C(0x01ED3D)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)}, + {RUNE_C(0x01F000), RUNE_C(0x01F02B)}, + {RUNE_C(0x01F030), RUNE_C(0x01F093)}, + {RUNE_C(0x01F0A0), RUNE_C(0x01F0AE)}, + {RUNE_C(0x01F0B1), RUNE_C(0x01F0BF)}, + {RUNE_C(0x01F0C1), RUNE_C(0x01F0CF)}, + {RUNE_C(0x01F0D1), RUNE_C(0x01F0F5)}, + {RUNE_C(0x01F100), RUNE_C(0x01F1AD)}, + {RUNE_C(0x01F1E6), RUNE_C(0x01F202)}, + {RUNE_C(0x01F210), RUNE_C(0x01F23B)}, + {RUNE_C(0x01F240), RUNE_C(0x01F248)}, + {RUNE_C(0x01F250), RUNE_C(0x01F251)}, + {RUNE_C(0x01F260), RUNE_C(0x01F265)}, + {RUNE_C(0x01F300), RUNE_C(0x01F6D7)}, + {RUNE_C(0x01F6DC), RUNE_C(0x01F6EC)}, + {RUNE_C(0x01F6F0), RUNE_C(0x01F6FC)}, + {RUNE_C(0x01F700), RUNE_C(0x01F776)}, + {RUNE_C(0x01F77B), RUNE_C(0x01F7D9)}, + {RUNE_C(0x01F7E0), RUNE_C(0x01F7EB)}, + {RUNE_C(0x01F7F0), RUNE_C(0x01F7F0)}, + {RUNE_C(0x01F800), RUNE_C(0x01F80B)}, + {RUNE_C(0x01F810), RUNE_C(0x01F847)}, + {RUNE_C(0x01F850), RUNE_C(0x01F859)}, + {RUNE_C(0x01F860), RUNE_C(0x01F887)}, + {RUNE_C(0x01F890), RUNE_C(0x01F8AD)}, + {RUNE_C(0x01F8B0), RUNE_C(0x01F8B1)}, + {RUNE_C(0x01F900), RUNE_C(0x01FA53)}, + {RUNE_C(0x01FA60), RUNE_C(0x01FA6D)}, + {RUNE_C(0x01FA70), RUNE_C(0x01FA7C)}, + {RUNE_C(0x01FA80), RUNE_C(0x01FA88)}, + {RUNE_C(0x01FA90), RUNE_C(0x01FABD)}, + {RUNE_C(0x01FABF), RUNE_C(0x01FAC5)}, + {RUNE_C(0x01FACE), RUNE_C(0x01FADB)}, + {RUNE_C(0x01FAE0), RUNE_C(0x01FAE8)}, + {RUNE_C(0x01FAF0), RUNE_C(0x01FAF8)}, + {RUNE_C(0x01FB00), RUNE_C(0x01FB92)}, + {RUNE_C(0x01FB94), RUNE_C(0x01FBCA)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_gr_base(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_gr_ext.c b/vendor/librune/lib/rtype/rprop_is_gr_ext.c new file mode 100644 index 0000000..351cf4d --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_gr_ext.c @@ -0,0 +1,388 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000300), RUNE_C(0x00036F)}, + {RUNE_C(0x000483), RUNE_C(0x000489)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4)}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007A6), RUNE_C(0x0007B0)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x000819)}, + {RUNE_C(0x00081B), RUNE_C(0x000823)}, + {RUNE_C(0x000825), RUNE_C(0x000827)}, + {RUNE_C(0x000829), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000902)}, + {RUNE_C(0x00093A), RUNE_C(0x00093A)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x000941), RUNE_C(0x000948)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000957)}, + {RUNE_C(0x000962), RUNE_C(0x000963)}, + {RUNE_C(0x000981), RUNE_C(0x000981)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009BE), RUNE_C(0x0009BE)}, + {RUNE_C(0x0009C1), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009E2), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A02)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A41), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A70), RUNE_C(0x000A71)}, + {RUNE_C(0x000A75), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A82)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000AC1), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC8)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AE2), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AFA), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B01)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B3E), RUNE_C(0x000B3F)}, + {RUNE_C(0x000B41), RUNE_C(0x000B44)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B62), RUNE_C(0x000B63)}, + {RUNE_C(0x000B82), RUNE_C(0x000B82)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BBE)}, + {RUNE_C(0x000BC0), RUNE_C(0x000BC0)}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000C00), RUNE_C(0x000C00)}, + {RUNE_C(0x000C04), RUNE_C(0x000C04)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C3E), RUNE_C(0x000C40)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C62), RUNE_C(0x000C63)}, + {RUNE_C(0x000C81), RUNE_C(0x000C81)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000CBF), RUNE_C(0x000CBF)}, + {RUNE_C(0x000CC2), RUNE_C(0x000CC2)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC6)}, + {RUNE_C(0x000CCC), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CE2), RUNE_C(0x000CE3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D01)}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D3E), RUNE_C(0x000D3E)}, + {RUNE_C(0x000D41), RUNE_C(0x000D44)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000D57), RUNE_C(0x000D57)}, + {RUNE_C(0x000D62), RUNE_C(0x000D63)}, + {RUNE_C(0x000D81), RUNE_C(0x000D81)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DCF)}, + {RUNE_C(0x000DD2), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DDF), RUNE_C(0x000DDF)}, + {RUNE_C(0x000E31), RUNE_C(0x000E31)}, + {RUNE_C(0x000E34), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E47), RUNE_C(0x000E4E)}, + {RUNE_C(0x000EB1), RUNE_C(0x000EB1)}, + {RUNE_C(0x000EB4), RUNE_C(0x000EBC)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F7E)}, + {RUNE_C(0x000F80), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000F8D), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x00102D), RUNE_C(0x001030)}, + {RUNE_C(0x001032), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00103D), RUNE_C(0x00103E)}, + {RUNE_C(0x001058), RUNE_C(0x001059)}, + {RUNE_C(0x00105E), RUNE_C(0x001060)}, + {RUNE_C(0x001071), RUNE_C(0x001074)}, + {RUNE_C(0x001082), RUNE_C(0x001082)}, + {RUNE_C(0x001085), RUNE_C(0x001086)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00109D), RUNE_C(0x00109D)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001712), RUNE_C(0x001714)}, + {RUNE_C(0x001732), RUNE_C(0x001733)}, + {RUNE_C(0x001752), RUNE_C(0x001753)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x0017B4), RUNE_C(0x0017B5)}, + {RUNE_C(0x0017B7), RUNE_C(0x0017BD)}, + {RUNE_C(0x0017C6), RUNE_C(0x0017C6)}, + {RUNE_C(0x0017C9), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x00180F)}, + {RUNE_C(0x001885), RUNE_C(0x001886)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001920), RUNE_C(0x001922)}, + {RUNE_C(0x001927), RUNE_C(0x001928)}, + {RUNE_C(0x001932), RUNE_C(0x001932)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A1B), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A56), RUNE_C(0x001A56)}, + {RUNE_C(0x001A58), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A62), RUNE_C(0x001A62)}, + {RUNE_C(0x001A65), RUNE_C(0x001A6C)}, + {RUNE_C(0x001A73), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B03)}, + {RUNE_C(0x001B34), RUNE_C(0x001B3A)}, + {RUNE_C(0x001B3C), RUNE_C(0x001B3C)}, + {RUNE_C(0x001B42), RUNE_C(0x001B42)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001B81)}, + {RUNE_C(0x001BA2), RUNE_C(0x001BA5)}, + {RUNE_C(0x001BA8), RUNE_C(0x001BA9)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAD)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001BE8), RUNE_C(0x001BE9)}, + {RUNE_C(0x001BED), RUNE_C(0x001BED)}, + {RUNE_C(0x001BEF), RUNE_C(0x001BF1)}, + {RUNE_C(0x001C2C), RUNE_C(0x001C33)}, + {RUNE_C(0x001C36), RUNE_C(0x001C37)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF)}, + {RUNE_C(0x00200C), RUNE_C(0x00200C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020F0)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A672)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A802), RUNE_C(0x00A802)}, + {RUNE_C(0x00A806), RUNE_C(0x00A806)}, + {RUNE_C(0x00A80B), RUNE_C(0x00A80B)}, + {RUNE_C(0x00A825), RUNE_C(0x00A826)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A8FF), RUNE_C(0x00A8FF)}, + {RUNE_C(0x00A926), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A947), RUNE_C(0x00A951)}, + {RUNE_C(0x00A980), RUNE_C(0x00A982)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00A9B6), RUNE_C(0x00A9B9)}, + {RUNE_C(0x00A9BC), RUNE_C(0x00A9BD)}, + {RUNE_C(0x00A9E5), RUNE_C(0x00A9E5)}, + {RUNE_C(0x00AA29), RUNE_C(0x00AA2E)}, + {RUNE_C(0x00AA31), RUNE_C(0x00AA32)}, + {RUNE_C(0x00AA35), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA43), RUNE_C(0x00AA43)}, + {RUNE_C(0x00AA4C), RUNE_C(0x00AA4C)}, + {RUNE_C(0x00AA7C), RUNE_C(0x00AA7C)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AAEC), RUNE_C(0x00AAED)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00ABE5), RUNE_C(0x00ABE5)}, + {RUNE_C(0x00ABE8), RUNE_C(0x00ABE8)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FF9E), RUNE_C(0x00FF9F)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010A01), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011001), RUNE_C(0x011001)}, + {RUNE_C(0x011038), RUNE_C(0x011046)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x011073), RUNE_C(0x011074)}, + {RUNE_C(0x01107F), RUNE_C(0x011081)}, + {RUNE_C(0x0110B3), RUNE_C(0x0110B6)}, + {RUNE_C(0x0110B9), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011127), RUNE_C(0x01112B)}, + {RUNE_C(0x01112D), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x011180), RUNE_C(0x011181)}, + {RUNE_C(0x0111B6), RUNE_C(0x0111BE)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CF), RUNE_C(0x0111CF)}, + {RUNE_C(0x01122F), RUNE_C(0x011231)}, + {RUNE_C(0x011234), RUNE_C(0x011234)}, + {RUNE_C(0x011236), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x01123E)}, + {RUNE_C(0x011241), RUNE_C(0x011241)}, + {RUNE_C(0x0112DF), RUNE_C(0x0112DF)}, + {RUNE_C(0x0112E3), RUNE_C(0x0112EA)}, + {RUNE_C(0x011300), RUNE_C(0x011301)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x01133E), RUNE_C(0x01133E)}, + {RUNE_C(0x011340), RUNE_C(0x011340)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011438), RUNE_C(0x01143F)}, + {RUNE_C(0x011442), RUNE_C(0x011444)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114B0), RUNE_C(0x0114B0)}, + {RUNE_C(0x0114B3), RUNE_C(0x0114B8)}, + {RUNE_C(0x0114BA), RUNE_C(0x0114BA)}, + {RUNE_C(0x0114BD), RUNE_C(0x0114BD)}, + {RUNE_C(0x0114BF), RUNE_C(0x0114C0)}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115AF), RUNE_C(0x0115AF)}, + {RUNE_C(0x0115B2), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115BC), RUNE_C(0x0115BD)}, + {RUNE_C(0x0115BF), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115DC), RUNE_C(0x0115DD)}, + {RUNE_C(0x011633), RUNE_C(0x01163A)}, + {RUNE_C(0x01163D), RUNE_C(0x01163D)}, + {RUNE_C(0x01163F), RUNE_C(0x011640)}, + {RUNE_C(0x0116AB), RUNE_C(0x0116AB)}, + {RUNE_C(0x0116AD), RUNE_C(0x0116AD)}, + {RUNE_C(0x0116B0), RUNE_C(0x0116B5)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01171D), RUNE_C(0x01171F)}, + {RUNE_C(0x011722), RUNE_C(0x011725)}, + {RUNE_C(0x011727), RUNE_C(0x01172B)}, + {RUNE_C(0x01182F), RUNE_C(0x011837)}, + {RUNE_C(0x011839), RUNE_C(0x01183A)}, + {RUNE_C(0x011930), RUNE_C(0x011930)}, + {RUNE_C(0x01193B), RUNE_C(0x01193C)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x0119D4), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119DB)}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0)}, + {RUNE_C(0x011A01), RUNE_C(0x011A0A)}, + {RUNE_C(0x011A33), RUNE_C(0x011A38)}, + {RUNE_C(0x011A3B), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A51), RUNE_C(0x011A56)}, + {RUNE_C(0x011A59), RUNE_C(0x011A5B)}, + {RUNE_C(0x011A8A), RUNE_C(0x011A96)}, + {RUNE_C(0x011A98), RUNE_C(0x011A99)}, + {RUNE_C(0x011C30), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C3D)}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CAA), RUNE_C(0x011CB0)}, + {RUNE_C(0x011CB2), RUNE_C(0x011CB3)}, + {RUNE_C(0x011CB5), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D31), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D45)}, + {RUNE_C(0x011D47), RUNE_C(0x011D47)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D95), RUNE_C(0x011D95)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011EF3), RUNE_C(0x011EF4)}, + {RUNE_C(0x011F00), RUNE_C(0x011F01)}, + {RUNE_C(0x011F36), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F40), RUNE_C(0x011F40)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x013440), RUNE_C(0x013440)}, + {RUNE_C(0x013447), RUNE_C(0x013455)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F4F)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F92)}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D165)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16E), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94A)}, + {RUNE_C(0x0E0020), RUNE_C(0x0E007F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_gr_ext(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_hex.c b/vendor/librune/lib/rtype/rprop_is_hex.c new file mode 100644 index 0000000..8d26415 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_hex.c @@ -0,0 +1,40 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x000000000000000000000000000000000000007E0000007E03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000030), RUNE_C(0x000039)}, + {RUNE_C(0x000041), RUNE_C(0x000046)}, + {RUNE_C(0x000061), RUNE_C(0x000066)}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF26)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF46)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_hex(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_id_compat_math_continue.c b/vendor/librune/lib/rtype/rprop_is_id_compat_math_continue.c new file mode 100644 index 0000000..43e9786 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_id_compat_math_continue.c @@ -0,0 +1,52 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000020C00000000000000000000000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x0000B2), RUNE_C(0x0000B3)}, + {RUNE_C(0x0000B9), RUNE_C(0x0000B9)}, + {RUNE_C(0x002070), RUNE_C(0x002070)}, + {RUNE_C(0x002074), RUNE_C(0x00207E)}, + {RUNE_C(0x002080), RUNE_C(0x00208E)}, + {RUNE_C(0x002202), RUNE_C(0x002202)}, + {RUNE_C(0x002207), RUNE_C(0x002207)}, + {RUNE_C(0x00221E), RUNE_C(0x00221E)}, + {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D735), RUNE_C(0x01D735)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D76F), RUNE_C(0x01D76F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_id_compat_math_continue(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_id_compat_math_start.c b/vendor/librune/lib/rtype/rprop_is_id_compat_math_start.c new file mode 100644 index 0000000..458f99b --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_id_compat_math_start.c @@ -0,0 +1,38 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x002202), RUNE_C(0x002202)}, + {RUNE_C(0x002207), RUNE_C(0x002207)}, + {RUNE_C(0x00221E), RUNE_C(0x00221E)}, + {RUNE_C(0x01D6C1), RUNE_C(0x01D6C1)}, + {RUNE_C(0x01D6DB), RUNE_C(0x01D6DB)}, + {RUNE_C(0x01D6FB), RUNE_C(0x01D6FB)}, + {RUNE_C(0x01D715), RUNE_C(0x01D715)}, + {RUNE_C(0x01D735), RUNE_C(0x01D735)}, + {RUNE_C(0x01D74F), RUNE_C(0x01D74F)}, + {RUNE_C(0x01D76F), RUNE_C(0x01D76F)}, + {RUNE_C(0x01D789), RUNE_C(0x01D789)}, + {RUNE_C(0x01D7A9), RUNE_C(0x01D7A9)}, + {RUNE_C(0x01D7C3), RUNE_C(0x01D7C3)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_id_compat_math_start(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_idbo.c b/vendor/librune/lib/rtype/rprop_is_idbo.c new file mode 100644 index 0000000..3a4c3f4 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_idbo.c @@ -0,0 +1,28 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x002FF0), RUNE_C(0x002FF1)}, + {RUNE_C(0x002FF4), RUNE_C(0x002FFD)}, + {RUNE_C(0x0031EF), RUNE_C(0x0031EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_idbo(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_idc.c b/vendor/librune/lib/rtype/rprop_is_idc.c new file mode 100644 index 0000000..1a8eeba --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_idc.c @@ -0,0 +1,803 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000030), RUNE_C(0x000039)}, + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x00005F), RUNE_C(0x00005F)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000B7), RUNE_C(0x0000B7)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000300), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000669)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00074A)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000800), RUNE_C(0x00082D)}, + {RUNE_C(0x000840), RUNE_C(0x00085B)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x000898), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000963)}, + {RUNE_C(0x000966), RUNE_C(0x00096F)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E4E)}, + {RUNE_C(0x000E50), RUNE_C(0x000E59)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F20), RUNE_C(0x000F29)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001000), RUNE_C(0x001049)}, + {RUNE_C(0x001050), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001369), RUNE_C(0x001371)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001734)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DD)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x00193B)}, + {RUNE_C(0x001946), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B59)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001BF3)}, + {RUNE_C(0x001C00), RUNE_C(0x001C37)}, + {RUNE_C(0x001C40), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x00200C), RUNE_C(0x00200D)}, + {RUNE_C(0x00203F), RUNE_C(0x002040)}, + {RUNE_C(0x002054), RUNE_C(0x002054)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x00302F)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x003099), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A827)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A930), RUNE_C(0x00A953)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE33), RUNE_C(0x00FE34)}, + {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010EFD), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F50)}, + {RUNE_C(0x010F70), RUNE_C(0x010F85)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011046)}, + {RUNE_C(0x011066), RUNE_C(0x011075)}, + {RUNE_C(0x01107F), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011100), RUNE_C(0x011134)}, + {RUNE_C(0x011136), RUNE_C(0x01113F)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011173)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112EA)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133B), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011400), RUNE_C(0x01144A)}, + {RUNE_C(0x011450), RUNE_C(0x011459)}, + {RUNE_C(0x01145E), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011680), RUNE_C(0x0116B8)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172B)}, + {RUNE_C(0x011730), RUNE_C(0x011739)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01183A)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118E9)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x011943)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A50), RUNE_C(0x011A99)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C40)}, + {RUNE_C(0x011C50), RUNE_C(0x011C59)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D47)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F42)}, + {RUNE_C(0x011F50), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013440), RUNE_C(0x013455)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B00), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E900), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_idc(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ideo.c b/vendor/librune/lib/rtype/rprop_is_ideo.c new file mode 100644 index 0000000..bda0552 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ideo.c @@ -0,0 +1,46 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x003006), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003038), RUNE_C(0x00303A)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x009FFF)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x016FE4), RUNE_C(0x016FE4)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ideo(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ids.c b/vendor/librune/lib/rtype/rprop_is_ids.c new file mode 100644 index 0000000..5c30308 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ids.c @@ -0,0 +1,694 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000620), RUNE_C(0x00064A)}, + {RUNE_C(0x00066E), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000904), RUNE_C(0x000939)}, + {RUNE_C(0x00093D), RUNE_C(0x00093D)}, + {RUNE_C(0x000950), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000971), RUNE_C(0x000980)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C80), RUNE_C(0x000C80)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2)}, + {RUNE_C(0x000D04), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E33)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB3)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x001000), RUNE_C(0x00102A)}, + {RUNE_C(0x00103F), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x001055)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001061)}, + {RUNE_C(0x001065), RUNE_C(0x001066)}, + {RUNE_C(0x00106E), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x00108E), RUNE_C(0x00108E)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A16)}, + {RUNE_C(0x001A20), RUNE_C(0x001A54)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001B05), RUNE_C(0x001B33)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B83), RUNE_C(0x001BA0)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001C00), RUNE_C(0x001C23)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309B), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A882), RUNE_C(0x00A8B3)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A925)}, + {RUNE_C(0x00A930), RUNE_C(0x00A946)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A984), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDFB)}, + {RUNE_C(0x00FE70), RUNE_C(0x00FE74)}, + {RUNE_C(0x00FE76), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D23)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011003), RUNE_C(0x011037)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011083), RUNE_C(0x0110AF)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x011144), RUNE_C(0x011144)}, + {RUNE_C(0x011147), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011183), RUNE_C(0x0111B2)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122B)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011361)}, + {RUNE_C(0x011400), RUNE_C(0x011434)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x01162F)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x01193F), RUNE_C(0x01193F)}, + {RUNE_C(0x011941), RUNE_C(0x011941)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D0)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E3)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D89)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011F02), RUNE_C(0x011F02)}, + {RUNE_C(0x011F04), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F33)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F50)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_ids(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_idst.c b/vendor/librune/lib/rtype/rprop_is_idst.c new file mode 100644 index 0000000..1228d3f --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_idst.c @@ -0,0 +1,8 @@ +#include "rtype.h" +#include "rune.h" + +bool +rprop_is_idst(rune ch) +{ + return ch == RUNE_C(0x2FF2) || ch == RUNE_C(0x2FF3); +} diff --git a/vendor/librune/lib/rtype/rprop_is_idsu.c b/vendor/librune/lib/rtype/rprop_is_idsu.c new file mode 100644 index 0000000..db454d9 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_idsu.c @@ -0,0 +1,8 @@ +#include "rtype.h" +#include "rune.h" + +bool +rprop_is_idsu(rune ch) +{ + return ch == RUNE_C(0x2FFE) || ch == RUNE_C(0x2FFF); +} diff --git a/vendor/librune/lib/rtype/rprop_is_incb.c b/vendor/librune/lib/rtype/rprop_is_incb.c new file mode 100644 index 0000000..93e3b6e --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_incb.c @@ -0,0 +1,225 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000300), RUNE_C(0x00034E)}, + {RUNE_C(0x000350), RUNE_C(0x00036F)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x00064B), RUNE_C(0x00065F)}, + {RUNE_C(0x000670), RUNE_C(0x000670)}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E4)}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006ED)}, + {RUNE_C(0x000711), RUNE_C(0x000711)}, + {RUNE_C(0x000730), RUNE_C(0x00074A)}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F3)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000816), RUNE_C(0x000819)}, + {RUNE_C(0x00081B), RUNE_C(0x000823)}, + {RUNE_C(0x000825), RUNE_C(0x000827)}, + {RUNE_C(0x000829), RUNE_C(0x00082D)}, + {RUNE_C(0x000859), RUNE_C(0x00085B)}, + {RUNE_C(0x000898), RUNE_C(0x00089F)}, + {RUNE_C(0x0008CA), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x0008FF)}, + {RUNE_C(0x000915), RUNE_C(0x000939)}, + {RUNE_C(0x00093C), RUNE_C(0x00093C)}, + {RUNE_C(0x00094D), RUNE_C(0x00094D)}, + {RUNE_C(0x000951), RUNE_C(0x000954)}, + {RUNE_C(0x000958), RUNE_C(0x00095F)}, + {RUNE_C(0x000978), RUNE_C(0x00097F)}, + {RUNE_C(0x000995), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC)}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009DF)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A95), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC)}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B15), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C)}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B5F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000C15), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C)}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC)}, + {RUNE_C(0x000D15), RUNE_C(0x000D3C)}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D)}, + {RUNE_C(0x000E38), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E48), RUNE_C(0x000E4B)}, + {RUNE_C(0x000EB8), RUNE_C(0x000EBA)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECB)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F71), RUNE_C(0x000F72)}, + {RUNE_C(0x000F74), RUNE_C(0x000F74)}, + {RUNE_C(0x000F7A), RUNE_C(0x000F7D)}, + {RUNE_C(0x000F80), RUNE_C(0x000F80)}, + {RUNE_C(0x000F82), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F87)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001037), RUNE_C(0x001037)}, + {RUNE_C(0x001039), RUNE_C(0x00103A)}, + {RUNE_C(0x00108D), RUNE_C(0x00108D)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001714), RUNE_C(0x001714)}, + {RUNE_C(0x0017D2), RUNE_C(0x0017D2)}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD)}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9)}, + {RUNE_C(0x001939), RUNE_C(0x00193B)}, + {RUNE_C(0x001A17), RUNE_C(0x001A18)}, + {RUNE_C(0x001A60), RUNE_C(0x001A60)}, + {RUNE_C(0x001A75), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B34), RUNE_C(0x001B34)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001BAB), RUNE_C(0x001BAB)}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6)}, + {RUNE_C(0x001C37), RUNE_C(0x001C37)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CE0)}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8)}, + {RUNE_C(0x001CED), RUNE_C(0x001CED)}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4)}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9)}, + {RUNE_C(0x001DC0), RUNE_C(0x001DFF)}, + {RUNE_C(0x00200D), RUNE_C(0x00200D)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x00302A), RUNE_C(0x00302F)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F)}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1)}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3)}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0)}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB4)}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8)}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF)}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1)}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED)}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010376), RUNE_C(0x01037A)}, + {RUNE_C(0x010A0D), RUNE_C(0x010A0D)}, + {RUNE_C(0x010A0F), RUNE_C(0x010A0F)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE6)}, + {RUNE_C(0x010D24), RUNE_C(0x010D27)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF)}, + {RUNE_C(0x010F46), RUNE_C(0x010F50)}, + {RUNE_C(0x010F82), RUNE_C(0x010F85)}, + {RUNE_C(0x011070), RUNE_C(0x011070)}, + {RUNE_C(0x01107F), RUNE_C(0x01107F)}, + {RUNE_C(0x0110BA), RUNE_C(0x0110BA)}, + {RUNE_C(0x011100), RUNE_C(0x011102)}, + {RUNE_C(0x011133), RUNE_C(0x011134)}, + {RUNE_C(0x011173), RUNE_C(0x011173)}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CA)}, + {RUNE_C(0x011236), RUNE_C(0x011236)}, + {RUNE_C(0x0112E9), RUNE_C(0x0112EA)}, + {RUNE_C(0x01133B), RUNE_C(0x01133C)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011446), RUNE_C(0x011446)}, + {RUNE_C(0x01145E), RUNE_C(0x01145E)}, + {RUNE_C(0x0114C3), RUNE_C(0x0114C3)}, + {RUNE_C(0x0115C0), RUNE_C(0x0115C0)}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7)}, + {RUNE_C(0x01172B), RUNE_C(0x01172B)}, + {RUNE_C(0x01183A), RUNE_C(0x01183A)}, + {RUNE_C(0x01193E), RUNE_C(0x01193E)}, + {RUNE_C(0x011943), RUNE_C(0x011943)}, + {RUNE_C(0x011A34), RUNE_C(0x011A34)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A99), RUNE_C(0x011A99)}, + {RUNE_C(0x011D42), RUNE_C(0x011D42)}, + {RUNE_C(0x011D44), RUNE_C(0x011D45)}, + {RUNE_C(0x011D97), RUNE_C(0x011D97)}, + {RUNE_C(0x011F42), RUNE_C(0x011F42)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B30), RUNE_C(0x016B36)}, + {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01D165), RUNE_C(0x01D165)}, + {RUNE_C(0x01D167), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16E), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E130), RUNE_C(0x01E136)}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF)}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4EF)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E944), RUNE_C(0x01E94A)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_incb(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_join_c.c b/vendor/librune/lib/rtype/rprop_is_join_c.c new file mode 100644 index 0000000..1b811a8 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_join_c.c @@ -0,0 +1,8 @@ +#include "rtype.h" +#include "rune.h" + +bool +rprop_is_join_c(rune ch) +{ + return ch == RUNE_C(0x200C) || ch == RUNE_C(0x200D); +} diff --git a/vendor/librune/lib/rtype/rprop_is_loe.c b/vendor/librune/lib/rtype/rprop_is_loe.c new file mode 100644 index 0000000..41549a6 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_loe.c @@ -0,0 +1,32 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000E40), RUNE_C(0x000E44)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x0019B5), RUNE_C(0x0019B7)}, + {RUNE_C(0x0019BA), RUNE_C(0x0019BA)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AAB9)}, + {RUNE_C(0x00AABB), RUNE_C(0x00AABC)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_loe(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_lower.c b/vendor/librune/lib/rtype/rprop_is_lower.c new file mode 100644 index 0000000..cc21422 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_lower.c @@ -0,0 +1,705 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFF80000000042004000000000007FFFFFE000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000DF), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0000FF)}, + {RUNE_C(0x000101), RUNE_C(0x000101)}, + {RUNE_C(0x000103), RUNE_C(0x000103)}, + {RUNE_C(0x000105), RUNE_C(0x000105)}, + {RUNE_C(0x000107), RUNE_C(0x000107)}, + {RUNE_C(0x000109), RUNE_C(0x000109)}, + {RUNE_C(0x00010B), RUNE_C(0x00010B)}, + {RUNE_C(0x00010D), RUNE_C(0x00010D)}, + {RUNE_C(0x00010F), RUNE_C(0x00010F)}, + {RUNE_C(0x000111), RUNE_C(0x000111)}, + {RUNE_C(0x000113), RUNE_C(0x000113)}, + {RUNE_C(0x000115), RUNE_C(0x000115)}, + {RUNE_C(0x000117), RUNE_C(0x000117)}, + {RUNE_C(0x000119), RUNE_C(0x000119)}, + {RUNE_C(0x00011B), RUNE_C(0x00011B)}, + {RUNE_C(0x00011D), RUNE_C(0x00011D)}, + {RUNE_C(0x00011F), RUNE_C(0x00011F)}, + {RUNE_C(0x000121), RUNE_C(0x000121)}, + {RUNE_C(0x000123), RUNE_C(0x000123)}, + {RUNE_C(0x000125), RUNE_C(0x000125)}, + {RUNE_C(0x000127), RUNE_C(0x000127)}, + {RUNE_C(0x000129), RUNE_C(0x000129)}, + {RUNE_C(0x00012B), RUNE_C(0x00012B)}, + {RUNE_C(0x00012D), RUNE_C(0x00012D)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000131), RUNE_C(0x000131)}, + {RUNE_C(0x000133), RUNE_C(0x000133)}, + {RUNE_C(0x000135), RUNE_C(0x000135)}, + {RUNE_C(0x000137), RUNE_C(0x000138)}, + {RUNE_C(0x00013A), RUNE_C(0x00013A)}, + {RUNE_C(0x00013C), RUNE_C(0x00013C)}, + {RUNE_C(0x00013E), RUNE_C(0x00013E)}, + {RUNE_C(0x000140), RUNE_C(0x000140)}, + {RUNE_C(0x000142), RUNE_C(0x000142)}, + {RUNE_C(0x000144), RUNE_C(0x000144)}, + {RUNE_C(0x000146), RUNE_C(0x000146)}, + {RUNE_C(0x000148), RUNE_C(0x000149)}, + {RUNE_C(0x00014B), RUNE_C(0x00014B)}, + {RUNE_C(0x00014D), RUNE_C(0x00014D)}, + {RUNE_C(0x00014F), RUNE_C(0x00014F)}, + {RUNE_C(0x000151), RUNE_C(0x000151)}, + {RUNE_C(0x000153), RUNE_C(0x000153)}, + {RUNE_C(0x000155), RUNE_C(0x000155)}, + {RUNE_C(0x000157), RUNE_C(0x000157)}, + {RUNE_C(0x000159), RUNE_C(0x000159)}, + {RUNE_C(0x00015B), RUNE_C(0x00015B)}, + {RUNE_C(0x00015D), RUNE_C(0x00015D)}, + {RUNE_C(0x00015F), RUNE_C(0x00015F)}, + {RUNE_C(0x000161), RUNE_C(0x000161)}, + {RUNE_C(0x000163), RUNE_C(0x000163)}, + {RUNE_C(0x000165), RUNE_C(0x000165)}, + {RUNE_C(0x000167), RUNE_C(0x000167)}, + {RUNE_C(0x000169), RUNE_C(0x000169)}, + {RUNE_C(0x00016B), RUNE_C(0x00016B)}, + {RUNE_C(0x00016D), RUNE_C(0x00016D)}, + {RUNE_C(0x00016F), RUNE_C(0x00016F)}, + {RUNE_C(0x000171), RUNE_C(0x000171)}, + {RUNE_C(0x000173), RUNE_C(0x000173)}, + {RUNE_C(0x000175), RUNE_C(0x000175)}, + {RUNE_C(0x000177), RUNE_C(0x000177)}, + {RUNE_C(0x00017A), RUNE_C(0x00017A)}, + {RUNE_C(0x00017C), RUNE_C(0x00017C)}, + {RUNE_C(0x00017E), RUNE_C(0x000180)}, + {RUNE_C(0x000183), RUNE_C(0x000183)}, + {RUNE_C(0x000185), RUNE_C(0x000185)}, + {RUNE_C(0x000188), RUNE_C(0x000188)}, + {RUNE_C(0x00018C), RUNE_C(0x00018D)}, + {RUNE_C(0x000192), RUNE_C(0x000192)}, + {RUNE_C(0x000195), RUNE_C(0x000195)}, + {RUNE_C(0x000199), RUNE_C(0x00019B)}, + {RUNE_C(0x00019E), RUNE_C(0x00019E)}, + {RUNE_C(0x0001A1), RUNE_C(0x0001A1)}, + {RUNE_C(0x0001A3), RUNE_C(0x0001A3)}, + {RUNE_C(0x0001A5), RUNE_C(0x0001A5)}, + {RUNE_C(0x0001A8), RUNE_C(0x0001A8)}, + {RUNE_C(0x0001AA), RUNE_C(0x0001AB)}, + {RUNE_C(0x0001AD), RUNE_C(0x0001AD)}, + {RUNE_C(0x0001B0), RUNE_C(0x0001B0)}, + {RUNE_C(0x0001B4), RUNE_C(0x0001B4)}, + {RUNE_C(0x0001B6), RUNE_C(0x0001B6)}, + {RUNE_C(0x0001B9), RUNE_C(0x0001BA)}, + {RUNE_C(0x0001BD), RUNE_C(0x0001BF)}, + {RUNE_C(0x0001C6), RUNE_C(0x0001C6)}, + {RUNE_C(0x0001C9), RUNE_C(0x0001C9)}, + {RUNE_C(0x0001CC), RUNE_C(0x0001CC)}, + {RUNE_C(0x0001CE), RUNE_C(0x0001CE)}, + {RUNE_C(0x0001D0), RUNE_C(0x0001D0)}, + {RUNE_C(0x0001D2), RUNE_C(0x0001D2)}, + {RUNE_C(0x0001D4), RUNE_C(0x0001D4)}, + {RUNE_C(0x0001D6), RUNE_C(0x0001D6)}, + {RUNE_C(0x0001D8), RUNE_C(0x0001D8)}, + {RUNE_C(0x0001DA), RUNE_C(0x0001DA)}, + {RUNE_C(0x0001DC), RUNE_C(0x0001DD)}, + {RUNE_C(0x0001DF), RUNE_C(0x0001DF)}, + {RUNE_C(0x0001E1), RUNE_C(0x0001E1)}, + {RUNE_C(0x0001E3), RUNE_C(0x0001E3)}, + {RUNE_C(0x0001E5), RUNE_C(0x0001E5)}, + {RUNE_C(0x0001E7), RUNE_C(0x0001E7)}, + {RUNE_C(0x0001E9), RUNE_C(0x0001E9)}, + {RUNE_C(0x0001EB), RUNE_C(0x0001EB)}, + {RUNE_C(0x0001ED), RUNE_C(0x0001ED)}, + {RUNE_C(0x0001EF), RUNE_C(0x0001F0)}, + {RUNE_C(0x0001F3), RUNE_C(0x0001F3)}, + {RUNE_C(0x0001F5), RUNE_C(0x0001F5)}, + {RUNE_C(0x0001F9), RUNE_C(0x0001F9)}, + {RUNE_C(0x0001FB), RUNE_C(0x0001FB)}, + {RUNE_C(0x0001FD), RUNE_C(0x0001FD)}, + {RUNE_C(0x0001FF), RUNE_C(0x0001FF)}, + {RUNE_C(0x000201), RUNE_C(0x000201)}, + {RUNE_C(0x000203), RUNE_C(0x000203)}, + {RUNE_C(0x000205), RUNE_C(0x000205)}, + {RUNE_C(0x000207), RUNE_C(0x000207)}, + {RUNE_C(0x000209), RUNE_C(0x000209)}, + {RUNE_C(0x00020B), RUNE_C(0x00020B)}, + {RUNE_C(0x00020D), RUNE_C(0x00020D)}, + {RUNE_C(0x00020F), RUNE_C(0x00020F)}, + {RUNE_C(0x000211), RUNE_C(0x000211)}, + {RUNE_C(0x000213), RUNE_C(0x000213)}, + {RUNE_C(0x000215), RUNE_C(0x000215)}, + {RUNE_C(0x000217), RUNE_C(0x000217)}, + {RUNE_C(0x000219), RUNE_C(0x000219)}, + {RUNE_C(0x00021B), RUNE_C(0x00021B)}, + {RUNE_C(0x00021D), RUNE_C(0x00021D)}, + {RUNE_C(0x00021F), RUNE_C(0x00021F)}, + {RUNE_C(0x000221), RUNE_C(0x000221)}, + {RUNE_C(0x000223), RUNE_C(0x000223)}, + {RUNE_C(0x000225), RUNE_C(0x000225)}, + {RUNE_C(0x000227), RUNE_C(0x000227)}, + {RUNE_C(0x000229), RUNE_C(0x000229)}, + {RUNE_C(0x00022B), RUNE_C(0x00022B)}, + {RUNE_C(0x00022D), RUNE_C(0x00022D)}, + {RUNE_C(0x00022F), RUNE_C(0x00022F)}, + {RUNE_C(0x000231), RUNE_C(0x000231)}, + {RUNE_C(0x000233), RUNE_C(0x000239)}, + {RUNE_C(0x00023C), RUNE_C(0x00023C)}, + {RUNE_C(0x00023F), RUNE_C(0x000240)}, + {RUNE_C(0x000242), RUNE_C(0x000242)}, + {RUNE_C(0x000247), RUNE_C(0x000247)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x00024B), RUNE_C(0x00024B)}, + {RUNE_C(0x00024D), RUNE_C(0x00024D)}, + {RUNE_C(0x00024F), RUNE_C(0x000293)}, + {RUNE_C(0x000295), RUNE_C(0x0002B8)}, + {RUNE_C(0x0002C0), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x000345), RUNE_C(0x000345)}, + {RUNE_C(0x000371), RUNE_C(0x000371)}, + {RUNE_C(0x000373), RUNE_C(0x000373)}, + {RUNE_C(0x000377), RUNE_C(0x000377)}, + {RUNE_C(0x00037A), RUNE_C(0x00037D)}, + {RUNE_C(0x000390), RUNE_C(0x000390)}, + {RUNE_C(0x0003AC), RUNE_C(0x0003CE)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D1)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D7)}, + {RUNE_C(0x0003D9), RUNE_C(0x0003D9)}, + {RUNE_C(0x0003DB), RUNE_C(0x0003DB)}, + {RUNE_C(0x0003DD), RUNE_C(0x0003DD)}, + {RUNE_C(0x0003DF), RUNE_C(0x0003DF)}, + {RUNE_C(0x0003E1), RUNE_C(0x0003E1)}, + {RUNE_C(0x0003E3), RUNE_C(0x0003E3)}, + {RUNE_C(0x0003E5), RUNE_C(0x0003E5)}, + {RUNE_C(0x0003E7), RUNE_C(0x0003E7)}, + {RUNE_C(0x0003E9), RUNE_C(0x0003E9)}, + {RUNE_C(0x0003EB), RUNE_C(0x0003EB)}, + {RUNE_C(0x0003ED), RUNE_C(0x0003ED)}, + {RUNE_C(0x0003EF), RUNE_C(0x0003F3)}, + {RUNE_C(0x0003F5), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F8), RUNE_C(0x0003F8)}, + {RUNE_C(0x0003FB), RUNE_C(0x0003FC)}, + {RUNE_C(0x000430), RUNE_C(0x00045F)}, + {RUNE_C(0x000461), RUNE_C(0x000461)}, + {RUNE_C(0x000463), RUNE_C(0x000463)}, + {RUNE_C(0x000465), RUNE_C(0x000465)}, + {RUNE_C(0x000467), RUNE_C(0x000467)}, + {RUNE_C(0x000469), RUNE_C(0x000469)}, + {RUNE_C(0x00046B), RUNE_C(0x00046B)}, + {RUNE_C(0x00046D), RUNE_C(0x00046D)}, + {RUNE_C(0x00046F), RUNE_C(0x00046F)}, + {RUNE_C(0x000471), RUNE_C(0x000471)}, + {RUNE_C(0x000473), RUNE_C(0x000473)}, + {RUNE_C(0x000475), RUNE_C(0x000475)}, + {RUNE_C(0x000477), RUNE_C(0x000477)}, + {RUNE_C(0x000479), RUNE_C(0x000479)}, + {RUNE_C(0x00047B), RUNE_C(0x00047B)}, + {RUNE_C(0x00047D), RUNE_C(0x00047D)}, + {RUNE_C(0x00047F), RUNE_C(0x00047F)}, + {RUNE_C(0x000481), RUNE_C(0x000481)}, + {RUNE_C(0x00048B), RUNE_C(0x00048B)}, + {RUNE_C(0x00048D), RUNE_C(0x00048D)}, + {RUNE_C(0x00048F), RUNE_C(0x00048F)}, + {RUNE_C(0x000491), RUNE_C(0x000491)}, + {RUNE_C(0x000493), RUNE_C(0x000493)}, + {RUNE_C(0x000495), RUNE_C(0x000495)}, + {RUNE_C(0x000497), RUNE_C(0x000497)}, + {RUNE_C(0x000499), RUNE_C(0x000499)}, + {RUNE_C(0x00049B), RUNE_C(0x00049B)}, + {RUNE_C(0x00049D), RUNE_C(0x00049D)}, + {RUNE_C(0x00049F), RUNE_C(0x00049F)}, + {RUNE_C(0x0004A1), RUNE_C(0x0004A1)}, + {RUNE_C(0x0004A3), RUNE_C(0x0004A3)}, + {RUNE_C(0x0004A5), RUNE_C(0x0004A5)}, + {RUNE_C(0x0004A7), RUNE_C(0x0004A7)}, + {RUNE_C(0x0004A9), RUNE_C(0x0004A9)}, + {RUNE_C(0x0004AB), RUNE_C(0x0004AB)}, + {RUNE_C(0x0004AD), RUNE_C(0x0004AD)}, + {RUNE_C(0x0004AF), RUNE_C(0x0004AF)}, + {RUNE_C(0x0004B1), RUNE_C(0x0004B1)}, + {RUNE_C(0x0004B3), RUNE_C(0x0004B3)}, + {RUNE_C(0x0004B5), RUNE_C(0x0004B5)}, + {RUNE_C(0x0004B7), RUNE_C(0x0004B7)}, + {RUNE_C(0x0004B9), RUNE_C(0x0004B9)}, + {RUNE_C(0x0004BB), RUNE_C(0x0004BB)}, + {RUNE_C(0x0004BD), RUNE_C(0x0004BD)}, + {RUNE_C(0x0004BF), RUNE_C(0x0004BF)}, + {RUNE_C(0x0004C2), RUNE_C(0x0004C2)}, + {RUNE_C(0x0004C4), RUNE_C(0x0004C4)}, + {RUNE_C(0x0004C6), RUNE_C(0x0004C6)}, + {RUNE_C(0x0004C8), RUNE_C(0x0004C8)}, + {RUNE_C(0x0004CA), RUNE_C(0x0004CA)}, + {RUNE_C(0x0004CC), RUNE_C(0x0004CC)}, + {RUNE_C(0x0004CE), RUNE_C(0x0004CF)}, + {RUNE_C(0x0004D1), RUNE_C(0x0004D1)}, + {RUNE_C(0x0004D3), RUNE_C(0x0004D3)}, + {RUNE_C(0x0004D5), RUNE_C(0x0004D5)}, + {RUNE_C(0x0004D7), RUNE_C(0x0004D7)}, + {RUNE_C(0x0004D9), RUNE_C(0x0004D9)}, + {RUNE_C(0x0004DB), RUNE_C(0x0004DB)}, + {RUNE_C(0x0004DD), RUNE_C(0x0004DD)}, + {RUNE_C(0x0004DF), RUNE_C(0x0004DF)}, + {RUNE_C(0x0004E1), RUNE_C(0x0004E1)}, + {RUNE_C(0x0004E3), RUNE_C(0x0004E3)}, + {RUNE_C(0x0004E5), RUNE_C(0x0004E5)}, + {RUNE_C(0x0004E7), RUNE_C(0x0004E7)}, + {RUNE_C(0x0004E9), RUNE_C(0x0004E9)}, + {RUNE_C(0x0004EB), RUNE_C(0x0004EB)}, + {RUNE_C(0x0004ED), RUNE_C(0x0004ED)}, + {RUNE_C(0x0004EF), RUNE_C(0x0004EF)}, + {RUNE_C(0x0004F1), RUNE_C(0x0004F1)}, + {RUNE_C(0x0004F3), RUNE_C(0x0004F3)}, + {RUNE_C(0x0004F5), RUNE_C(0x0004F5)}, + {RUNE_C(0x0004F7), RUNE_C(0x0004F7)}, + {RUNE_C(0x0004F9), RUNE_C(0x0004F9)}, + {RUNE_C(0x0004FB), RUNE_C(0x0004FB)}, + {RUNE_C(0x0004FD), RUNE_C(0x0004FD)}, + {RUNE_C(0x0004FF), RUNE_C(0x0004FF)}, + {RUNE_C(0x000501), RUNE_C(0x000501)}, + {RUNE_C(0x000503), RUNE_C(0x000503)}, + {RUNE_C(0x000505), RUNE_C(0x000505)}, + {RUNE_C(0x000507), RUNE_C(0x000507)}, + {RUNE_C(0x000509), RUNE_C(0x000509)}, + {RUNE_C(0x00050B), RUNE_C(0x00050B)}, + {RUNE_C(0x00050D), RUNE_C(0x00050D)}, + {RUNE_C(0x00050F), RUNE_C(0x00050F)}, + {RUNE_C(0x000511), RUNE_C(0x000511)}, + {RUNE_C(0x000513), RUNE_C(0x000513)}, + {RUNE_C(0x000515), RUNE_C(0x000515)}, + {RUNE_C(0x000517), RUNE_C(0x000517)}, + {RUNE_C(0x000519), RUNE_C(0x000519)}, + {RUNE_C(0x00051B), RUNE_C(0x00051B)}, + {RUNE_C(0x00051D), RUNE_C(0x00051D)}, + {RUNE_C(0x00051F), RUNE_C(0x00051F)}, + {RUNE_C(0x000521), RUNE_C(0x000521)}, + {RUNE_C(0x000523), RUNE_C(0x000523)}, + {RUNE_C(0x000525), RUNE_C(0x000525)}, + {RUNE_C(0x000527), RUNE_C(0x000527)}, + {RUNE_C(0x000529), RUNE_C(0x000529)}, + {RUNE_C(0x00052B), RUNE_C(0x00052B)}, + {RUNE_C(0x00052D), RUNE_C(0x00052D)}, + {RUNE_C(0x00052F), RUNE_C(0x00052F)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x0010FF)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E01), RUNE_C(0x001E01)}, + {RUNE_C(0x001E03), RUNE_C(0x001E03)}, + {RUNE_C(0x001E05), RUNE_C(0x001E05)}, + {RUNE_C(0x001E07), RUNE_C(0x001E07)}, + {RUNE_C(0x001E09), RUNE_C(0x001E09)}, + {RUNE_C(0x001E0B), RUNE_C(0x001E0B)}, + {RUNE_C(0x001E0D), RUNE_C(0x001E0D)}, + {RUNE_C(0x001E0F), RUNE_C(0x001E0F)}, + {RUNE_C(0x001E11), RUNE_C(0x001E11)}, + {RUNE_C(0x001E13), RUNE_C(0x001E13)}, + {RUNE_C(0x001E15), RUNE_C(0x001E15)}, + {RUNE_C(0x001E17), RUNE_C(0x001E17)}, + {RUNE_C(0x001E19), RUNE_C(0x001E19)}, + {RUNE_C(0x001E1B), RUNE_C(0x001E1B)}, + {RUNE_C(0x001E1D), RUNE_C(0x001E1D)}, + {RUNE_C(0x001E1F), RUNE_C(0x001E1F)}, + {RUNE_C(0x001E21), RUNE_C(0x001E21)}, + {RUNE_C(0x001E23), RUNE_C(0x001E23)}, + {RUNE_C(0x001E25), RUNE_C(0x001E25)}, + {RUNE_C(0x001E27), RUNE_C(0x001E27)}, + {RUNE_C(0x001E29), RUNE_C(0x001E29)}, + {RUNE_C(0x001E2B), RUNE_C(0x001E2B)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001E2F), RUNE_C(0x001E2F)}, + {RUNE_C(0x001E31), RUNE_C(0x001E31)}, + {RUNE_C(0x001E33), RUNE_C(0x001E33)}, + {RUNE_C(0x001E35), RUNE_C(0x001E35)}, + {RUNE_C(0x001E37), RUNE_C(0x001E37)}, + {RUNE_C(0x001E39), RUNE_C(0x001E39)}, + {RUNE_C(0x001E3B), RUNE_C(0x001E3B)}, + {RUNE_C(0x001E3D), RUNE_C(0x001E3D)}, + {RUNE_C(0x001E3F), RUNE_C(0x001E3F)}, + {RUNE_C(0x001E41), RUNE_C(0x001E41)}, + {RUNE_C(0x001E43), RUNE_C(0x001E43)}, + {RUNE_C(0x001E45), RUNE_C(0x001E45)}, + {RUNE_C(0x001E47), RUNE_C(0x001E47)}, + {RUNE_C(0x001E49), RUNE_C(0x001E49)}, + {RUNE_C(0x001E4B), RUNE_C(0x001E4B)}, + {RUNE_C(0x001E4D), RUNE_C(0x001E4D)}, + {RUNE_C(0x001E4F), RUNE_C(0x001E4F)}, + {RUNE_C(0x001E51), RUNE_C(0x001E51)}, + {RUNE_C(0x001E53), RUNE_C(0x001E53)}, + {RUNE_C(0x001E55), RUNE_C(0x001E55)}, + {RUNE_C(0x001E57), RUNE_C(0x001E57)}, + {RUNE_C(0x001E59), RUNE_C(0x001E59)}, + {RUNE_C(0x001E5B), RUNE_C(0x001E5B)}, + {RUNE_C(0x001E5D), RUNE_C(0x001E5D)}, + {RUNE_C(0x001E5F), RUNE_C(0x001E5F)}, + {RUNE_C(0x001E61), RUNE_C(0x001E61)}, + {RUNE_C(0x001E63), RUNE_C(0x001E63)}, + {RUNE_C(0x001E65), RUNE_C(0x001E65)}, + {RUNE_C(0x001E67), RUNE_C(0x001E67)}, + {RUNE_C(0x001E69), RUNE_C(0x001E69)}, + {RUNE_C(0x001E6B), RUNE_C(0x001E6B)}, + {RUNE_C(0x001E6D), RUNE_C(0x001E6D)}, + {RUNE_C(0x001E6F), RUNE_C(0x001E6F)}, + {RUNE_C(0x001E71), RUNE_C(0x001E71)}, + {RUNE_C(0x001E73), RUNE_C(0x001E73)}, + {RUNE_C(0x001E75), RUNE_C(0x001E75)}, + {RUNE_C(0x001E77), RUNE_C(0x001E77)}, + {RUNE_C(0x001E79), RUNE_C(0x001E79)}, + {RUNE_C(0x001E7B), RUNE_C(0x001E7B)}, + {RUNE_C(0x001E7D), RUNE_C(0x001E7D)}, + {RUNE_C(0x001E7F), RUNE_C(0x001E7F)}, + {RUNE_C(0x001E81), RUNE_C(0x001E81)}, + {RUNE_C(0x001E83), RUNE_C(0x001E83)}, + {RUNE_C(0x001E85), RUNE_C(0x001E85)}, + {RUNE_C(0x001E87), RUNE_C(0x001E87)}, + {RUNE_C(0x001E89), RUNE_C(0x001E89)}, + {RUNE_C(0x001E8B), RUNE_C(0x001E8B)}, + {RUNE_C(0x001E8D), RUNE_C(0x001E8D)}, + {RUNE_C(0x001E8F), RUNE_C(0x001E8F)}, + {RUNE_C(0x001E91), RUNE_C(0x001E91)}, + {RUNE_C(0x001E93), RUNE_C(0x001E93)}, + {RUNE_C(0x001E95), RUNE_C(0x001E9D)}, + {RUNE_C(0x001E9F), RUNE_C(0x001E9F)}, + {RUNE_C(0x001EA1), RUNE_C(0x001EA1)}, + {RUNE_C(0x001EA3), RUNE_C(0x001EA3)}, + {RUNE_C(0x001EA5), RUNE_C(0x001EA5)}, + {RUNE_C(0x001EA7), RUNE_C(0x001EA7)}, + {RUNE_C(0x001EA9), RUNE_C(0x001EA9)}, + {RUNE_C(0x001EAB), RUNE_C(0x001EAB)}, + {RUNE_C(0x001EAD), RUNE_C(0x001EAD)}, + {RUNE_C(0x001EAF), RUNE_C(0x001EAF)}, + {RUNE_C(0x001EB1), RUNE_C(0x001EB1)}, + {RUNE_C(0x001EB3), RUNE_C(0x001EB3)}, + {RUNE_C(0x001EB5), RUNE_C(0x001EB5)}, + {RUNE_C(0x001EB7), RUNE_C(0x001EB7)}, + {RUNE_C(0x001EB9), RUNE_C(0x001EB9)}, + {RUNE_C(0x001EBB), RUNE_C(0x001EBB)}, + {RUNE_C(0x001EBD), RUNE_C(0x001EBD)}, + {RUNE_C(0x001EBF), RUNE_C(0x001EBF)}, + {RUNE_C(0x001EC1), RUNE_C(0x001EC1)}, + {RUNE_C(0x001EC3), RUNE_C(0x001EC3)}, + {RUNE_C(0x001EC5), RUNE_C(0x001EC5)}, + {RUNE_C(0x001EC7), RUNE_C(0x001EC7)}, + {RUNE_C(0x001EC9), RUNE_C(0x001EC9)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x001ECD), RUNE_C(0x001ECD)}, + {RUNE_C(0x001ECF), RUNE_C(0x001ECF)}, + {RUNE_C(0x001ED1), RUNE_C(0x001ED1)}, + {RUNE_C(0x001ED3), RUNE_C(0x001ED3)}, + {RUNE_C(0x001ED5), RUNE_C(0x001ED5)}, + {RUNE_C(0x001ED7), RUNE_C(0x001ED7)}, + {RUNE_C(0x001ED9), RUNE_C(0x001ED9)}, + {RUNE_C(0x001EDB), RUNE_C(0x001EDB)}, + {RUNE_C(0x001EDD), RUNE_C(0x001EDD)}, + {RUNE_C(0x001EDF), RUNE_C(0x001EDF)}, + {RUNE_C(0x001EE1), RUNE_C(0x001EE1)}, + {RUNE_C(0x001EE3), RUNE_C(0x001EE3)}, + {RUNE_C(0x001EE5), RUNE_C(0x001EE5)}, + {RUNE_C(0x001EE7), RUNE_C(0x001EE7)}, + {RUNE_C(0x001EE9), RUNE_C(0x001EE9)}, + {RUNE_C(0x001EEB), RUNE_C(0x001EEB)}, + {RUNE_C(0x001EED), RUNE_C(0x001EED)}, + {RUNE_C(0x001EEF), RUNE_C(0x001EEF)}, + {RUNE_C(0x001EF1), RUNE_C(0x001EF1)}, + {RUNE_C(0x001EF3), RUNE_C(0x001EF3)}, + {RUNE_C(0x001EF5), RUNE_C(0x001EF5)}, + {RUNE_C(0x001EF7), RUNE_C(0x001EF7)}, + {RUNE_C(0x001EF9), RUNE_C(0x001EF9)}, + {RUNE_C(0x001EFB), RUNE_C(0x001EFB)}, + {RUNE_C(0x001EFD), RUNE_C(0x001EFD)}, + {RUNE_C(0x001EFF), RUNE_C(0x001F07)}, + {RUNE_C(0x001F10), RUNE_C(0x001F15)}, + {RUNE_C(0x001F20), RUNE_C(0x001F27)}, + {RUNE_C(0x001F30), RUNE_C(0x001F37)}, + {RUNE_C(0x001F40), RUNE_C(0x001F45)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F60), RUNE_C(0x001F67)}, + {RUNE_C(0x001F70), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001F87)}, + {RUNE_C(0x001F90), RUNE_C(0x001F97)}, + {RUNE_C(0x001FA0), RUNE_C(0x001FA7)}, + {RUNE_C(0x001FB0), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FB7)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FC7)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FD7)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FE7)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FF7)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x00210A), RUNE_C(0x00210A)}, + {RUNE_C(0x00210E), RUNE_C(0x00210F)}, + {RUNE_C(0x002113), RUNE_C(0x002113)}, + {RUNE_C(0x00212F), RUNE_C(0x00212F)}, + {RUNE_C(0x002134), RUNE_C(0x002134)}, + {RUNE_C(0x002139), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213D)}, + {RUNE_C(0x002146), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002170), RUNE_C(0x00217F)}, + {RUNE_C(0x002184), RUNE_C(0x002184)}, + {RUNE_C(0x0024D0), RUNE_C(0x0024E9)}, + {RUNE_C(0x002C30), RUNE_C(0x002C5F)}, + {RUNE_C(0x002C61), RUNE_C(0x002C61)}, + {RUNE_C(0x002C65), RUNE_C(0x002C66)}, + {RUNE_C(0x002C68), RUNE_C(0x002C68)}, + {RUNE_C(0x002C6A), RUNE_C(0x002C6A)}, + {RUNE_C(0x002C6C), RUNE_C(0x002C6C)}, + {RUNE_C(0x002C71), RUNE_C(0x002C71)}, + {RUNE_C(0x002C73), RUNE_C(0x002C74)}, + {RUNE_C(0x002C76), RUNE_C(0x002C7D)}, + {RUNE_C(0x002C81), RUNE_C(0x002C81)}, + {RUNE_C(0x002C83), RUNE_C(0x002C83)}, + {RUNE_C(0x002C85), RUNE_C(0x002C85)}, + {RUNE_C(0x002C87), RUNE_C(0x002C87)}, + {RUNE_C(0x002C89), RUNE_C(0x002C89)}, + {RUNE_C(0x002C8B), RUNE_C(0x002C8B)}, + {RUNE_C(0x002C8D), RUNE_C(0x002C8D)}, + {RUNE_C(0x002C8F), RUNE_C(0x002C8F)}, + {RUNE_C(0x002C91), RUNE_C(0x002C91)}, + {RUNE_C(0x002C93), RUNE_C(0x002C93)}, + {RUNE_C(0x002C95), RUNE_C(0x002C95)}, + {RUNE_C(0x002C97), RUNE_C(0x002C97)}, + {RUNE_C(0x002C99), RUNE_C(0x002C99)}, + {RUNE_C(0x002C9B), RUNE_C(0x002C9B)}, + {RUNE_C(0x002C9D), RUNE_C(0x002C9D)}, + {RUNE_C(0x002C9F), RUNE_C(0x002C9F)}, + {RUNE_C(0x002CA1), RUNE_C(0x002CA1)}, + {RUNE_C(0x002CA3), RUNE_C(0x002CA3)}, + {RUNE_C(0x002CA5), RUNE_C(0x002CA5)}, + {RUNE_C(0x002CA7), RUNE_C(0x002CA7)}, + {RUNE_C(0x002CA9), RUNE_C(0x002CA9)}, + {RUNE_C(0x002CAB), RUNE_C(0x002CAB)}, + {RUNE_C(0x002CAD), RUNE_C(0x002CAD)}, + {RUNE_C(0x002CAF), RUNE_C(0x002CAF)}, + {RUNE_C(0x002CB1), RUNE_C(0x002CB1)}, + {RUNE_C(0x002CB3), RUNE_C(0x002CB3)}, + {RUNE_C(0x002CB5), RUNE_C(0x002CB5)}, + {RUNE_C(0x002CB7), RUNE_C(0x002CB7)}, + {RUNE_C(0x002CB9), RUNE_C(0x002CB9)}, + {RUNE_C(0x002CBB), RUNE_C(0x002CBB)}, + {RUNE_C(0x002CBD), RUNE_C(0x002CBD)}, + {RUNE_C(0x002CBF), RUNE_C(0x002CBF)}, + {RUNE_C(0x002CC1), RUNE_C(0x002CC1)}, + {RUNE_C(0x002CC3), RUNE_C(0x002CC3)}, + {RUNE_C(0x002CC5), RUNE_C(0x002CC5)}, + {RUNE_C(0x002CC7), RUNE_C(0x002CC7)}, + {RUNE_C(0x002CC9), RUNE_C(0x002CC9)}, + {RUNE_C(0x002CCB), RUNE_C(0x002CCB)}, + {RUNE_C(0x002CCD), RUNE_C(0x002CCD)}, + {RUNE_C(0x002CCF), RUNE_C(0x002CCF)}, + {RUNE_C(0x002CD1), RUNE_C(0x002CD1)}, + {RUNE_C(0x002CD3), RUNE_C(0x002CD3)}, + {RUNE_C(0x002CD5), RUNE_C(0x002CD5)}, + {RUNE_C(0x002CD7), RUNE_C(0x002CD7)}, + {RUNE_C(0x002CD9), RUNE_C(0x002CD9)}, + {RUNE_C(0x002CDB), RUNE_C(0x002CDB)}, + {RUNE_C(0x002CDD), RUNE_C(0x002CDD)}, + {RUNE_C(0x002CDF), RUNE_C(0x002CDF)}, + {RUNE_C(0x002CE1), RUNE_C(0x002CE1)}, + {RUNE_C(0x002CE3), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEC), RUNE_C(0x002CEC)}, + {RUNE_C(0x002CEE), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF3), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x00A641), RUNE_C(0x00A641)}, + {RUNE_C(0x00A643), RUNE_C(0x00A643)}, + {RUNE_C(0x00A645), RUNE_C(0x00A645)}, + {RUNE_C(0x00A647), RUNE_C(0x00A647)}, + {RUNE_C(0x00A649), RUNE_C(0x00A649)}, + {RUNE_C(0x00A64B), RUNE_C(0x00A64B)}, + {RUNE_C(0x00A64D), RUNE_C(0x00A64D)}, + {RUNE_C(0x00A64F), RUNE_C(0x00A64F)}, + {RUNE_C(0x00A651), RUNE_C(0x00A651)}, + {RUNE_C(0x00A653), RUNE_C(0x00A653)}, + {RUNE_C(0x00A655), RUNE_C(0x00A655)}, + {RUNE_C(0x00A657), RUNE_C(0x00A657)}, + {RUNE_C(0x00A659), RUNE_C(0x00A659)}, + {RUNE_C(0x00A65B), RUNE_C(0x00A65B)}, + {RUNE_C(0x00A65D), RUNE_C(0x00A65D)}, + {RUNE_C(0x00A65F), RUNE_C(0x00A65F)}, + {RUNE_C(0x00A661), RUNE_C(0x00A661)}, + {RUNE_C(0x00A663), RUNE_C(0x00A663)}, + {RUNE_C(0x00A665), RUNE_C(0x00A665)}, + {RUNE_C(0x00A667), RUNE_C(0x00A667)}, + {RUNE_C(0x00A669), RUNE_C(0x00A669)}, + {RUNE_C(0x00A66B), RUNE_C(0x00A66B)}, + {RUNE_C(0x00A66D), RUNE_C(0x00A66D)}, + {RUNE_C(0x00A681), RUNE_C(0x00A681)}, + {RUNE_C(0x00A683), RUNE_C(0x00A683)}, + {RUNE_C(0x00A685), RUNE_C(0x00A685)}, + {RUNE_C(0x00A687), RUNE_C(0x00A687)}, + {RUNE_C(0x00A689), RUNE_C(0x00A689)}, + {RUNE_C(0x00A68B), RUNE_C(0x00A68B)}, + {RUNE_C(0x00A68D), RUNE_C(0x00A68D)}, + {RUNE_C(0x00A68F), RUNE_C(0x00A68F)}, + {RUNE_C(0x00A691), RUNE_C(0x00A691)}, + {RUNE_C(0x00A693), RUNE_C(0x00A693)}, + {RUNE_C(0x00A695), RUNE_C(0x00A695)}, + {RUNE_C(0x00A697), RUNE_C(0x00A697)}, + {RUNE_C(0x00A699), RUNE_C(0x00A699)}, + {RUNE_C(0x00A69B), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A723), RUNE_C(0x00A723)}, + {RUNE_C(0x00A725), RUNE_C(0x00A725)}, + {RUNE_C(0x00A727), RUNE_C(0x00A727)}, + {RUNE_C(0x00A729), RUNE_C(0x00A729)}, + {RUNE_C(0x00A72B), RUNE_C(0x00A72B)}, + {RUNE_C(0x00A72D), RUNE_C(0x00A72D)}, + {RUNE_C(0x00A72F), RUNE_C(0x00A731)}, + {RUNE_C(0x00A733), RUNE_C(0x00A733)}, + {RUNE_C(0x00A735), RUNE_C(0x00A735)}, + {RUNE_C(0x00A737), RUNE_C(0x00A737)}, + {RUNE_C(0x00A739), RUNE_C(0x00A739)}, + {RUNE_C(0x00A73B), RUNE_C(0x00A73B)}, + {RUNE_C(0x00A73D), RUNE_C(0x00A73D)}, + {RUNE_C(0x00A73F), RUNE_C(0x00A73F)}, + {RUNE_C(0x00A741), RUNE_C(0x00A741)}, + {RUNE_C(0x00A743), RUNE_C(0x00A743)}, + {RUNE_C(0x00A745), RUNE_C(0x00A745)}, + {RUNE_C(0x00A747), RUNE_C(0x00A747)}, + {RUNE_C(0x00A749), RUNE_C(0x00A749)}, + {RUNE_C(0x00A74B), RUNE_C(0x00A74B)}, + {RUNE_C(0x00A74D), RUNE_C(0x00A74D)}, + {RUNE_C(0x00A74F), RUNE_C(0x00A74F)}, + {RUNE_C(0x00A751), RUNE_C(0x00A751)}, + {RUNE_C(0x00A753), RUNE_C(0x00A753)}, + {RUNE_C(0x00A755), RUNE_C(0x00A755)}, + {RUNE_C(0x00A757), RUNE_C(0x00A757)}, + {RUNE_C(0x00A759), RUNE_C(0x00A759)}, + {RUNE_C(0x00A75B), RUNE_C(0x00A75B)}, + {RUNE_C(0x00A75D), RUNE_C(0x00A75D)}, + {RUNE_C(0x00A75F), RUNE_C(0x00A75F)}, + {RUNE_C(0x00A761), RUNE_C(0x00A761)}, + {RUNE_C(0x00A763), RUNE_C(0x00A763)}, + {RUNE_C(0x00A765), RUNE_C(0x00A765)}, + {RUNE_C(0x00A767), RUNE_C(0x00A767)}, + {RUNE_C(0x00A769), RUNE_C(0x00A769)}, + {RUNE_C(0x00A76B), RUNE_C(0x00A76B)}, + {RUNE_C(0x00A76D), RUNE_C(0x00A76D)}, + {RUNE_C(0x00A76F), RUNE_C(0x00A778)}, + {RUNE_C(0x00A77A), RUNE_C(0x00A77A)}, + {RUNE_C(0x00A77C), RUNE_C(0x00A77C)}, + {RUNE_C(0x00A77F), RUNE_C(0x00A77F)}, + {RUNE_C(0x00A781), RUNE_C(0x00A781)}, + {RUNE_C(0x00A783), RUNE_C(0x00A783)}, + {RUNE_C(0x00A785), RUNE_C(0x00A785)}, + {RUNE_C(0x00A787), RUNE_C(0x00A787)}, + {RUNE_C(0x00A78C), RUNE_C(0x00A78C)}, + {RUNE_C(0x00A78E), RUNE_C(0x00A78E)}, + {RUNE_C(0x00A791), RUNE_C(0x00A791)}, + {RUNE_C(0x00A793), RUNE_C(0x00A795)}, + {RUNE_C(0x00A797), RUNE_C(0x00A797)}, + {RUNE_C(0x00A799), RUNE_C(0x00A799)}, + {RUNE_C(0x00A79B), RUNE_C(0x00A79B)}, + {RUNE_C(0x00A79D), RUNE_C(0x00A79D)}, + {RUNE_C(0x00A79F), RUNE_C(0x00A79F)}, + {RUNE_C(0x00A7A1), RUNE_C(0x00A7A1)}, + {RUNE_C(0x00A7A3), RUNE_C(0x00A7A3)}, + {RUNE_C(0x00A7A5), RUNE_C(0x00A7A5)}, + {RUNE_C(0x00A7A7), RUNE_C(0x00A7A7)}, + {RUNE_C(0x00A7A9), RUNE_C(0x00A7A9)}, + {RUNE_C(0x00A7AF), RUNE_C(0x00A7AF)}, + {RUNE_C(0x00A7B5), RUNE_C(0x00A7B5)}, + {RUNE_C(0x00A7B7), RUNE_C(0x00A7B7)}, + {RUNE_C(0x00A7B9), RUNE_C(0x00A7B9)}, + {RUNE_C(0x00A7BB), RUNE_C(0x00A7BB)}, + {RUNE_C(0x00A7BD), RUNE_C(0x00A7BD)}, + {RUNE_C(0x00A7BF), RUNE_C(0x00A7BF)}, + {RUNE_C(0x00A7C1), RUNE_C(0x00A7C1)}, + {RUNE_C(0x00A7C3), RUNE_C(0x00A7C3)}, + {RUNE_C(0x00A7C8), RUNE_C(0x00A7C8)}, + {RUNE_C(0x00A7CA), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D1), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D5)}, + {RUNE_C(0x00A7D7), RUNE_C(0x00A7D7)}, + {RUNE_C(0x00A7D9), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A7F4)}, + {RUNE_C(0x00A7F6), RUNE_C(0x00A7F6)}, + {RUNE_C(0x00A7F8), RUNE_C(0x00A7FA)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABBF)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x010428), RUNE_C(0x01044F)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010780), RUNE_C(0x010780)}, + {RUNE_C(0x010783), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x0118C0), RUNE_C(0x0118DF)}, + {RUNE_C(0x016E60), RUNE_C(0x016E7F)}, + {RUNE_C(0x01D41A), RUNE_C(0x01D433)}, + {RUNE_C(0x01D44E), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D467)}, + {RUNE_C(0x01D482), RUNE_C(0x01D49B)}, + {RUNE_C(0x01D4B6), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D4CF)}, + {RUNE_C(0x01D4EA), RUNE_C(0x01D503)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D537)}, + {RUNE_C(0x01D552), RUNE_C(0x01D56B)}, + {RUNE_C(0x01D586), RUNE_C(0x01D59F)}, + {RUNE_C(0x01D5BA), RUNE_C(0x01D5D3)}, + {RUNE_C(0x01D5EE), RUNE_C(0x01D607)}, + {RUNE_C(0x01D622), RUNE_C(0x01D63B)}, + {RUNE_C(0x01D656), RUNE_C(0x01D66F)}, + {RUNE_C(0x01D68A), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6E1)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D71B)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D755)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D78F)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7C9)}, + {RUNE_C(0x01D7CB), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF09)}, + {RUNE_C(0x01DF0B), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E922), RUNE_C(0x01E943)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_lower(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_math.c b/vendor/librune/lib/rtype/rprop_is_math.c new file mode 100644 index 0000000..a1e502e --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_math.c @@ -0,0 +1,172 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0080000000800000000210000000000050000000400000007000080000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00002B), RUNE_C(0x00002B)}, + {RUNE_C(0x00003C), RUNE_C(0x00003E)}, + {RUNE_C(0x00005E), RUNE_C(0x00005E)}, + {RUNE_C(0x00007C), RUNE_C(0x00007C)}, + {RUNE_C(0x00007E), RUNE_C(0x00007E)}, + {RUNE_C(0x0000AC), RUNE_C(0x0000AC)}, + {RUNE_C(0x0000B1), RUNE_C(0x0000B1)}, + {RUNE_C(0x0000D7), RUNE_C(0x0000D7)}, + {RUNE_C(0x0000F7), RUNE_C(0x0000F7)}, + {RUNE_C(0x0003D0), RUNE_C(0x0003D2)}, + {RUNE_C(0x0003D5), RUNE_C(0x0003D5)}, + {RUNE_C(0x0003F0), RUNE_C(0x0003F1)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F6)}, + {RUNE_C(0x000606), RUNE_C(0x000608)}, + {RUNE_C(0x002016), RUNE_C(0x002016)}, + {RUNE_C(0x002032), RUNE_C(0x002034)}, + {RUNE_C(0x002040), RUNE_C(0x002040)}, + {RUNE_C(0x002044), RUNE_C(0x002044)}, + {RUNE_C(0x002052), RUNE_C(0x002052)}, + {RUNE_C(0x002061), RUNE_C(0x002064)}, + {RUNE_C(0x00207A), RUNE_C(0x00207E)}, + {RUNE_C(0x00208A), RUNE_C(0x00208E)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020E6)}, + {RUNE_C(0x0020EB), RUNE_C(0x0020EF)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002128), RUNE_C(0x002129)}, + {RUNE_C(0x00212C), RUNE_C(0x00212D)}, + {RUNE_C(0x00212F), RUNE_C(0x002131)}, + {RUNE_C(0x002133), RUNE_C(0x002138)}, + {RUNE_C(0x00213C), RUNE_C(0x002149)}, + {RUNE_C(0x00214B), RUNE_C(0x00214B)}, + {RUNE_C(0x002190), RUNE_C(0x0021A7)}, + {RUNE_C(0x0021A9), RUNE_C(0x0021AE)}, + {RUNE_C(0x0021B0), RUNE_C(0x0021B1)}, + {RUNE_C(0x0021B6), RUNE_C(0x0021B7)}, + {RUNE_C(0x0021BC), RUNE_C(0x0021DB)}, + {RUNE_C(0x0021DD), RUNE_C(0x0021DD)}, + {RUNE_C(0x0021E4), RUNE_C(0x0021E5)}, + {RUNE_C(0x0021F4), RUNE_C(0x0022FF)}, + {RUNE_C(0x002308), RUNE_C(0x00230B)}, + {RUNE_C(0x002320), RUNE_C(0x002321)}, + {RUNE_C(0x00237C), RUNE_C(0x00237C)}, + {RUNE_C(0x00239B), RUNE_C(0x0023B5)}, + {RUNE_C(0x0023B7), RUNE_C(0x0023B7)}, + {RUNE_C(0x0023D0), RUNE_C(0x0023D0)}, + {RUNE_C(0x0023DC), RUNE_C(0x0023E2)}, + {RUNE_C(0x0025A0), RUNE_C(0x0025A1)}, + {RUNE_C(0x0025AE), RUNE_C(0x0025B7)}, + {RUNE_C(0x0025BC), RUNE_C(0x0025C1)}, + {RUNE_C(0x0025C6), RUNE_C(0x0025C7)}, + {RUNE_C(0x0025CA), RUNE_C(0x0025CB)}, + {RUNE_C(0x0025CF), RUNE_C(0x0025D3)}, + {RUNE_C(0x0025E2), RUNE_C(0x0025E2)}, + {RUNE_C(0x0025E4), RUNE_C(0x0025E4)}, + {RUNE_C(0x0025E7), RUNE_C(0x0025EC)}, + {RUNE_C(0x0025F8), RUNE_C(0x0025FF)}, + {RUNE_C(0x002605), RUNE_C(0x002606)}, + {RUNE_C(0x002640), RUNE_C(0x002640)}, + {RUNE_C(0x002642), RUNE_C(0x002642)}, + {RUNE_C(0x002660), RUNE_C(0x002663)}, + {RUNE_C(0x00266D), RUNE_C(0x00266F)}, + {RUNE_C(0x0027C0), RUNE_C(0x0027FF)}, + {RUNE_C(0x002900), RUNE_C(0x002AFF)}, + {RUNE_C(0x002B30), RUNE_C(0x002B44)}, + {RUNE_C(0x002B47), RUNE_C(0x002B4C)}, + {RUNE_C(0x00FB29), RUNE_C(0x00FB29)}, + {RUNE_C(0x00FE61), RUNE_C(0x00FE66)}, + {RUNE_C(0x00FE68), RUNE_C(0x00FE68)}, + {RUNE_C(0x00FF0B), RUNE_C(0x00FF0B)}, + {RUNE_C(0x00FF1C), RUNE_C(0x00FF1E)}, + {RUNE_C(0x00FF3C), RUNE_C(0x00FF3C)}, + {RUNE_C(0x00FF3E), RUNE_C(0x00FF3E)}, + {RUNE_C(0x00FF5C), RUNE_C(0x00FF5C)}, + {RUNE_C(0x00FF5E), RUNE_C(0x00FF5E)}, + {RUNE_C(0x00FFE2), RUNE_C(0x00FFE2)}, + {RUNE_C(0x00FFE9), RUNE_C(0x00FFEC)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01EEF0), RUNE_C(0x01EEF1)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_math(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_nchar.c b/vendor/librune/lib/rtype/rprop_is_nchar.c new file mode 100644 index 0000000..3a6b324 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_nchar.c @@ -0,0 +1,10 @@ +#include "rtype.h" +#include "rune.h" + +bool +rprop_is_nchar(rune ch) +{ + return (ch >= RUNE_C(0xFDD0) && ch <= RUNE_C(0xFDEF)) + || ((ch & RUNE_C(0xFFFE)) == RUNE_C(0xFFFE) + && (ch & RUNE_C(0xFF0000)) <= RUNE_C(0x0F0000)); +} diff --git a/vendor/librune/lib/rtype/rprop_is_pat_syn.c b/vendor/librune/lib/rtype/rprop_is_pat_syn.c new file mode 100644 index 0000000..37f7383 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_pat_syn.c @@ -0,0 +1,62 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x008000000080000088435AFE000000007800000178000001FC00FFFE00000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000021), RUNE_C(0x00002F)}, + {RUNE_C(0x00003A), RUNE_C(0x000040)}, + {RUNE_C(0x00005B), RUNE_C(0x00005E)}, + {RUNE_C(0x000060), RUNE_C(0x000060)}, + {RUNE_C(0x00007B), RUNE_C(0x00007E)}, + {RUNE_C(0x0000A1), RUNE_C(0x0000A7)}, + {RUNE_C(0x0000A9), RUNE_C(0x0000A9)}, + {RUNE_C(0x0000AB), RUNE_C(0x0000AC)}, + {RUNE_C(0x0000AE), RUNE_C(0x0000AE)}, + {RUNE_C(0x0000B0), RUNE_C(0x0000B1)}, + {RUNE_C(0x0000B6), RUNE_C(0x0000B6)}, + {RUNE_C(0x0000BB), RUNE_C(0x0000BB)}, + {RUNE_C(0x0000BF), RUNE_C(0x0000BF)}, + {RUNE_C(0x0000D7), RUNE_C(0x0000D7)}, + {RUNE_C(0x0000F7), RUNE_C(0x0000F7)}, + {RUNE_C(0x002010), RUNE_C(0x002027)}, + {RUNE_C(0x002030), RUNE_C(0x00203E)}, + {RUNE_C(0x002041), RUNE_C(0x002053)}, + {RUNE_C(0x002055), RUNE_C(0x00205E)}, + {RUNE_C(0x002190), RUNE_C(0x00245F)}, + {RUNE_C(0x002500), RUNE_C(0x002775)}, + {RUNE_C(0x002794), RUNE_C(0x002BFF)}, + {RUNE_C(0x002E00), RUNE_C(0x002E7F)}, + {RUNE_C(0x003001), RUNE_C(0x003003)}, + {RUNE_C(0x003008), RUNE_C(0x003020)}, + {RUNE_C(0x003030), RUNE_C(0x003030)}, + {RUNE_C(0x00FD3E), RUNE_C(0x00FD3F)}, + {RUNE_C(0x00FE45), RUNE_C(0x00FE46)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_pat_syn(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_pat_ws.c b/vendor/librune/lib/rtype/rprop_is_pat_ws.c new file mode 100644 index 0000000..836d0e9 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_pat_ws.c @@ -0,0 +1,25 @@ +#include <assert.h> + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +static const rune patws[] = { + RUNE_C(0x0009), RUNE_C(0x000A), RUNE_C(0x000B), RUNE_C(0x000C), + RUNE_C(0x000D), RUNE_C(0x0020), RUNE_C(0x0085), RUNE_C(0x200E), + RUNE_C(0x200F), RUNE_C(0x2028), RUNE_C(0x2029), +}; + +static_assert(lengthof(patws) == 11, "Unroll pragma needs updating"); + +bool +rprop_is_pat_ws(rune ch) +{ +#pragma GCC unroll 11 + for (size_t i = 0; i < lengthof(patws); i++) { + if (patws[i] == ch) + return true; + } + return false; +} diff --git a/vendor/librune/lib/rtype/rprop_is_pcm.c b/vendor/librune/lib/rtype/rprop_is_pcm.c new file mode 100644 index 0000000..9d4d714 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_pcm.c @@ -0,0 +1,32 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000600), RUNE_C(0x000605)}, + {RUNE_C(0x0006DD), RUNE_C(0x0006DD)}, + {RUNE_C(0x00070F), RUNE_C(0x00070F)}, + {RUNE_C(0x000890), RUNE_C(0x000891)}, + {RUNE_C(0x0008E2), RUNE_C(0x0008E2)}, + {RUNE_C(0x0110BD), RUNE_C(0x0110BD)}, + {RUNE_C(0x0110CD), RUNE_C(0x0110CD)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_pcm(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_qmark.c b/vendor/librune/lib/rtype/rprop_is_qmark.c new file mode 100644 index 0000000..fbe7835 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_qmark.c @@ -0,0 +1,47 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000080008000000000000000000000000000000008400000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000022), RUNE_C(0x000022)}, + {RUNE_C(0x000027), RUNE_C(0x000027)}, + {RUNE_C(0x0000AB), RUNE_C(0x0000AB)}, + {RUNE_C(0x0000BB), RUNE_C(0x0000BB)}, + {RUNE_C(0x002018), RUNE_C(0x00201F)}, + {RUNE_C(0x002039), RUNE_C(0x00203A)}, + {RUNE_C(0x002E42), RUNE_C(0x002E42)}, + {RUNE_C(0x00300C), RUNE_C(0x00300F)}, + {RUNE_C(0x00301D), RUNE_C(0x00301F)}, + {RUNE_C(0x00FE41), RUNE_C(0x00FE44)}, + {RUNE_C(0x00FF02), RUNE_C(0x00FF02)}, + {RUNE_C(0x00FF07), RUNE_C(0x00FF07)}, + {RUNE_C(0x00FF62), RUNE_C(0x00FF63)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_qmark(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_radical.c b/vendor/librune/lib/rtype/rprop_is_radical.c new file mode 100644 index 0000000..6e1367b --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_radical.c @@ -0,0 +1,28 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x002E80), RUNE_C(0x002E99)}, + {RUNE_C(0x002E9B), RUNE_C(0x002EF3)}, + {RUNE_C(0x002F00), RUNE_C(0x002FD5)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_radical(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_ri.c b/vendor/librune/lib/rtype/rprop_is_ri.c new file mode 100644 index 0000000..d757a38 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_ri.c @@ -0,0 +1,8 @@ +#include "rtype.h" +#include "rune.h" + +bool +rprop_is_ri(rune ch) +{ + return ch >= RUNE_C(0x1F1E6) && ch <= RUNE_C(0x1F1FF); +} diff --git a/vendor/librune/lib/rtype/rprop_is_sd.c b/vendor/librune/lib/rtype/rprop_is_sd.c new file mode 100644 index 0000000..5a7be69 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_sd.c @@ -0,0 +1,68 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000000000000000000000600000000000000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000069), RUNE_C(0x00006A)}, + {RUNE_C(0x00012F), RUNE_C(0x00012F)}, + {RUNE_C(0x000249), RUNE_C(0x000249)}, + {RUNE_C(0x000268), RUNE_C(0x000268)}, + {RUNE_C(0x00029D), RUNE_C(0x00029D)}, + {RUNE_C(0x0002B2), RUNE_C(0x0002B2)}, + {RUNE_C(0x0003F3), RUNE_C(0x0003F3)}, + {RUNE_C(0x000456), RUNE_C(0x000456)}, + {RUNE_C(0x000458), RUNE_C(0x000458)}, + {RUNE_C(0x001D62), RUNE_C(0x001D62)}, + {RUNE_C(0x001D96), RUNE_C(0x001D96)}, + {RUNE_C(0x001DA4), RUNE_C(0x001DA4)}, + {RUNE_C(0x001DA8), RUNE_C(0x001DA8)}, + {RUNE_C(0x001E2D), RUNE_C(0x001E2D)}, + {RUNE_C(0x001ECB), RUNE_C(0x001ECB)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x002148), RUNE_C(0x002149)}, + {RUNE_C(0x002C7C), RUNE_C(0x002C7C)}, + {RUNE_C(0x01D422), RUNE_C(0x01D423)}, + {RUNE_C(0x01D456), RUNE_C(0x01D457)}, + {RUNE_C(0x01D48A), RUNE_C(0x01D48B)}, + {RUNE_C(0x01D4BE), RUNE_C(0x01D4BF)}, + {RUNE_C(0x01D4F2), RUNE_C(0x01D4F3)}, + {RUNE_C(0x01D526), RUNE_C(0x01D527)}, + {RUNE_C(0x01D55A), RUNE_C(0x01D55B)}, + {RUNE_C(0x01D58E), RUNE_C(0x01D58F)}, + {RUNE_C(0x01D5C2), RUNE_C(0x01D5C3)}, + {RUNE_C(0x01D5F6), RUNE_C(0x01D5F7)}, + {RUNE_C(0x01D62A), RUNE_C(0x01D62B)}, + {RUNE_C(0x01D65E), RUNE_C(0x01D65F)}, + {RUNE_C(0x01D692), RUNE_C(0x01D693)}, + {RUNE_C(0x01DF1A), RUNE_C(0x01DF1A)}, + {RUNE_C(0x01E04C), RUNE_C(0x01E04D)}, + {RUNE_C(0x01E068), RUNE_C(0x01E068)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_sd(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_sterm.c b/vendor/librune/lib/rtype/rprop_is_sterm.c new file mode 100644 index 0000000..7128647 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_sterm.c @@ -0,0 +1,115 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000000000000000000000000000000008000400200000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000021), RUNE_C(0x000021)}, + {RUNE_C(0x00002E), RUNE_C(0x00002E)}, + {RUNE_C(0x00003F), RUNE_C(0x00003F)}, + {RUNE_C(0x000589), RUNE_C(0x000589)}, + {RUNE_C(0x00061D), RUNE_C(0x00061F)}, + {RUNE_C(0x0006D4), RUNE_C(0x0006D4)}, + {RUNE_C(0x000700), RUNE_C(0x000702)}, + {RUNE_C(0x0007F9), RUNE_C(0x0007F9)}, + {RUNE_C(0x000837), RUNE_C(0x000837)}, + {RUNE_C(0x000839), RUNE_C(0x000839)}, + {RUNE_C(0x00083D), RUNE_C(0x00083E)}, + {RUNE_C(0x000964), RUNE_C(0x000965)}, + {RUNE_C(0x00104A), RUNE_C(0x00104B)}, + {RUNE_C(0x001362), RUNE_C(0x001362)}, + {RUNE_C(0x001367), RUNE_C(0x001368)}, + {RUNE_C(0x00166E), RUNE_C(0x00166E)}, + {RUNE_C(0x001735), RUNE_C(0x001736)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017D5)}, + {RUNE_C(0x001803), RUNE_C(0x001803)}, + {RUNE_C(0x001809), RUNE_C(0x001809)}, + {RUNE_C(0x001944), RUNE_C(0x001945)}, + {RUNE_C(0x001AA8), RUNE_C(0x001AAB)}, + {RUNE_C(0x001B5A), RUNE_C(0x001B5B)}, + {RUNE_C(0x001B5E), RUNE_C(0x001B5F)}, + {RUNE_C(0x001B7D), RUNE_C(0x001B7E)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C3C)}, + {RUNE_C(0x001C7E), RUNE_C(0x001C7F)}, + {RUNE_C(0x00203C), RUNE_C(0x00203D)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002E2E), RUNE_C(0x002E2E)}, + {RUNE_C(0x002E3C), RUNE_C(0x002E3C)}, + {RUNE_C(0x002E53), RUNE_C(0x002E54)}, + {RUNE_C(0x003002), RUNE_C(0x003002)}, + {RUNE_C(0x00A4FF), RUNE_C(0x00A4FF)}, + {RUNE_C(0x00A60E), RUNE_C(0x00A60F)}, + {RUNE_C(0x00A6F3), RUNE_C(0x00A6F3)}, + {RUNE_C(0x00A6F7), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A876), RUNE_C(0x00A877)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)}, + {RUNE_C(0x00A92F), RUNE_C(0x00A92F)}, + {RUNE_C(0x00A9C8), RUNE_C(0x00A9C9)}, + {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)}, + {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)}, + {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)}, + {RUNE_C(0x00FE52), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE56), RUNE_C(0x00FE57)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF01)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)}, + {RUNE_C(0x00FF61), RUNE_C(0x00FF61)}, + {RUNE_C(0x010A56), RUNE_C(0x010A57)}, + {RUNE_C(0x010F55), RUNE_C(0x010F59)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x011047), RUNE_C(0x011048)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x011141), RUNE_C(0x011143)}, + {RUNE_C(0x0111C5), RUNE_C(0x0111C6)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CD)}, + {RUNE_C(0x0111DE), RUNE_C(0x0111DF)}, + {RUNE_C(0x011238), RUNE_C(0x011239)}, + {RUNE_C(0x01123B), RUNE_C(0x01123C)}, + {RUNE_C(0x0112A9), RUNE_C(0x0112A9)}, + {RUNE_C(0x01144B), RUNE_C(0x01144C)}, + {RUNE_C(0x0115C2), RUNE_C(0x0115C3)}, + {RUNE_C(0x0115C9), RUNE_C(0x0115D7)}, + {RUNE_C(0x011641), RUNE_C(0x011642)}, + {RUNE_C(0x01173C), RUNE_C(0x01173E)}, + {RUNE_C(0x011944), RUNE_C(0x011944)}, + {RUNE_C(0x011946), RUNE_C(0x011946)}, + {RUNE_C(0x011A42), RUNE_C(0x011A43)}, + {RUNE_C(0x011A9B), RUNE_C(0x011A9C)}, + {RUNE_C(0x011C41), RUNE_C(0x011C42)}, + {RUNE_C(0x011EF7), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F43), RUNE_C(0x011F44)}, + {RUNE_C(0x016A6E), RUNE_C(0x016A6F)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B37), RUNE_C(0x016B38)}, + {RUNE_C(0x016B44), RUNE_C(0x016B44)}, + {RUNE_C(0x016E98), RUNE_C(0x016E98)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01DA88), RUNE_C(0x01DA88)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_sterm(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_term.c b/vendor/librune/lib/rtype/rprop_is_term.c new file mode 100644 index 0000000..f821276 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_term.c @@ -0,0 +1,142 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000000000000000000000000000000008C00500200000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000021), RUNE_C(0x000021)}, + {RUNE_C(0x00002C), RUNE_C(0x00002C)}, + {RUNE_C(0x00002E), RUNE_C(0x00002E)}, + {RUNE_C(0x00003A), RUNE_C(0x00003B)}, + {RUNE_C(0x00003F), RUNE_C(0x00003F)}, + {RUNE_C(0x00037E), RUNE_C(0x00037E)}, + {RUNE_C(0x000387), RUNE_C(0x000387)}, + {RUNE_C(0x000589), RUNE_C(0x000589)}, + {RUNE_C(0x0005C3), RUNE_C(0x0005C3)}, + {RUNE_C(0x00060C), RUNE_C(0x00060C)}, + {RUNE_C(0x00061B), RUNE_C(0x00061B)}, + {RUNE_C(0x00061D), RUNE_C(0x00061F)}, + {RUNE_C(0x0006D4), RUNE_C(0x0006D4)}, + {RUNE_C(0x000700), RUNE_C(0x00070A)}, + {RUNE_C(0x00070C), RUNE_C(0x00070C)}, + {RUNE_C(0x0007F8), RUNE_C(0x0007F9)}, + {RUNE_C(0x000830), RUNE_C(0x00083E)}, + {RUNE_C(0x00085E), RUNE_C(0x00085E)}, + {RUNE_C(0x000964), RUNE_C(0x000965)}, + {RUNE_C(0x000E5A), RUNE_C(0x000E5B)}, + {RUNE_C(0x000F08), RUNE_C(0x000F08)}, + {RUNE_C(0x000F0D), RUNE_C(0x000F12)}, + {RUNE_C(0x00104A), RUNE_C(0x00104B)}, + {RUNE_C(0x001361), RUNE_C(0x001368)}, + {RUNE_C(0x00166E), RUNE_C(0x00166E)}, + {RUNE_C(0x0016EB), RUNE_C(0x0016ED)}, + {RUNE_C(0x001735), RUNE_C(0x001736)}, + {RUNE_C(0x0017D4), RUNE_C(0x0017D6)}, + {RUNE_C(0x0017DA), RUNE_C(0x0017DA)}, + {RUNE_C(0x001802), RUNE_C(0x001805)}, + {RUNE_C(0x001808), RUNE_C(0x001809)}, + {RUNE_C(0x001944), RUNE_C(0x001945)}, + {RUNE_C(0x001AA8), RUNE_C(0x001AAB)}, + {RUNE_C(0x001B5A), RUNE_C(0x001B5B)}, + {RUNE_C(0x001B5D), RUNE_C(0x001B5F)}, + {RUNE_C(0x001B7D), RUNE_C(0x001B7E)}, + {RUNE_C(0x001C3B), RUNE_C(0x001C3F)}, + {RUNE_C(0x001C7E), RUNE_C(0x001C7F)}, + {RUNE_C(0x00203C), RUNE_C(0x00203D)}, + {RUNE_C(0x002047), RUNE_C(0x002049)}, + {RUNE_C(0x002E2E), RUNE_C(0x002E2E)}, + {RUNE_C(0x002E3C), RUNE_C(0x002E3C)}, + {RUNE_C(0x002E41), RUNE_C(0x002E41)}, + {RUNE_C(0x002E4C), RUNE_C(0x002E4C)}, + {RUNE_C(0x002E4E), RUNE_C(0x002E4F)}, + {RUNE_C(0x002E53), RUNE_C(0x002E54)}, + {RUNE_C(0x003001), RUNE_C(0x003002)}, + {RUNE_C(0x00A4FE), RUNE_C(0x00A4FF)}, + {RUNE_C(0x00A60D), RUNE_C(0x00A60F)}, + {RUNE_C(0x00A6F3), RUNE_C(0x00A6F7)}, + {RUNE_C(0x00A876), RUNE_C(0x00A877)}, + {RUNE_C(0x00A8CE), RUNE_C(0x00A8CF)}, + {RUNE_C(0x00A92F), RUNE_C(0x00A92F)}, + {RUNE_C(0x00A9C7), RUNE_C(0x00A9C9)}, + {RUNE_C(0x00AA5D), RUNE_C(0x00AA5F)}, + {RUNE_C(0x00AADF), RUNE_C(0x00AADF)}, + {RUNE_C(0x00AAF0), RUNE_C(0x00AAF1)}, + {RUNE_C(0x00ABEB), RUNE_C(0x00ABEB)}, + {RUNE_C(0x00FE50), RUNE_C(0x00FE52)}, + {RUNE_C(0x00FE54), RUNE_C(0x00FE57)}, + {RUNE_C(0x00FF01), RUNE_C(0x00FF01)}, + {RUNE_C(0x00FF0C), RUNE_C(0x00FF0C)}, + {RUNE_C(0x00FF0E), RUNE_C(0x00FF0E)}, + {RUNE_C(0x00FF1A), RUNE_C(0x00FF1B)}, + {RUNE_C(0x00FF1F), RUNE_C(0x00FF1F)}, + {RUNE_C(0x00FF61), RUNE_C(0x00FF61)}, + {RUNE_C(0x00FF64), RUNE_C(0x00FF64)}, + {RUNE_C(0x01039F), RUNE_C(0x01039F)}, + {RUNE_C(0x0103D0), RUNE_C(0x0103D0)}, + {RUNE_C(0x010857), RUNE_C(0x010857)}, + {RUNE_C(0x01091F), RUNE_C(0x01091F)}, + {RUNE_C(0x010A56), RUNE_C(0x010A57)}, + {RUNE_C(0x010AF0), RUNE_C(0x010AF5)}, + {RUNE_C(0x010B3A), RUNE_C(0x010B3F)}, + {RUNE_C(0x010B99), RUNE_C(0x010B9C)}, + {RUNE_C(0x010F55), RUNE_C(0x010F59)}, + {RUNE_C(0x010F86), RUNE_C(0x010F89)}, + {RUNE_C(0x011047), RUNE_C(0x01104D)}, + {RUNE_C(0x0110BE), RUNE_C(0x0110C1)}, + {RUNE_C(0x011141), RUNE_C(0x011143)}, + {RUNE_C(0x0111C5), RUNE_C(0x0111C6)}, + {RUNE_C(0x0111CD), RUNE_C(0x0111CD)}, + {RUNE_C(0x0111DE), RUNE_C(0x0111DF)}, + {RUNE_C(0x011238), RUNE_C(0x01123C)}, + {RUNE_C(0x0112A9), RUNE_C(0x0112A9)}, + {RUNE_C(0x01144B), RUNE_C(0x01144D)}, + {RUNE_C(0x01145A), RUNE_C(0x01145B)}, + {RUNE_C(0x0115C2), RUNE_C(0x0115C5)}, + {RUNE_C(0x0115C9), RUNE_C(0x0115D7)}, + {RUNE_C(0x011641), RUNE_C(0x011642)}, + {RUNE_C(0x01173C), RUNE_C(0x01173E)}, + {RUNE_C(0x011944), RUNE_C(0x011944)}, + {RUNE_C(0x011946), RUNE_C(0x011946)}, + {RUNE_C(0x011A42), RUNE_C(0x011A43)}, + {RUNE_C(0x011A9B), RUNE_C(0x011A9C)}, + {RUNE_C(0x011AA1), RUNE_C(0x011AA2)}, + {RUNE_C(0x011C41), RUNE_C(0x011C43)}, + {RUNE_C(0x011C71), RUNE_C(0x011C71)}, + {RUNE_C(0x011EF7), RUNE_C(0x011EF8)}, + {RUNE_C(0x011F43), RUNE_C(0x011F44)}, + {RUNE_C(0x012470), RUNE_C(0x012474)}, + {RUNE_C(0x016A6E), RUNE_C(0x016A6F)}, + {RUNE_C(0x016AF5), RUNE_C(0x016AF5)}, + {RUNE_C(0x016B37), RUNE_C(0x016B39)}, + {RUNE_C(0x016B44), RUNE_C(0x016B44)}, + {RUNE_C(0x016E97), RUNE_C(0x016E98)}, + {RUNE_C(0x01BC9F), RUNE_C(0x01BC9F)}, + {RUNE_C(0x01DA87), RUNE_C(0x01DA8A)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_term(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_uideo.c b/vendor/librune/lib/rtype/rprop_is_uideo.c new file mode 100644 index 0000000..3fc72fd --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_uideo.c @@ -0,0 +1,42 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x009FFF)}, + {RUNE_C(0x00FA0E), RUNE_C(0x00FA0F)}, + {RUNE_C(0x00FA11), RUNE_C(0x00FA11)}, + {RUNE_C(0x00FA13), RUNE_C(0x00FA14)}, + {RUNE_C(0x00FA1F), RUNE_C(0x00FA1F)}, + {RUNE_C(0x00FA21), RUNE_C(0x00FA21)}, + {RUNE_C(0x00FA23), RUNE_C(0x00FA24)}, + {RUNE_C(0x00FA27), RUNE_C(0x00FA29)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_uideo(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_upper.c b/vendor/librune/lib/rtype/rprop_is_upper.c new file mode 100644 index 0000000..8437582 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_upper.c @@ -0,0 +1,685 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x000000007F7FFFFF00000000000000000000000007FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000DE)}, + {RUNE_C(0x000100), RUNE_C(0x000100)}, + {RUNE_C(0x000102), RUNE_C(0x000102)}, + {RUNE_C(0x000104), RUNE_C(0x000104)}, + {RUNE_C(0x000106), RUNE_C(0x000106)}, + {RUNE_C(0x000108), RUNE_C(0x000108)}, + {RUNE_C(0x00010A), RUNE_C(0x00010A)}, + {RUNE_C(0x00010C), RUNE_C(0x00010C)}, + {RUNE_C(0x00010E), RUNE_C(0x00010E)}, + {RUNE_C(0x000110), RUNE_C(0x000110)}, + {RUNE_C(0x000112), RUNE_C(0x000112)}, + {RUNE_C(0x000114), RUNE_C(0x000114)}, + {RUNE_C(0x000116), RUNE_C(0x000116)}, + {RUNE_C(0x000118), RUNE_C(0x000118)}, + {RUNE_C(0x00011A), RUNE_C(0x00011A)}, + {RUNE_C(0x00011C), RUNE_C(0x00011C)}, + {RUNE_C(0x00011E), RUNE_C(0x00011E)}, + {RUNE_C(0x000120), RUNE_C(0x000120)}, + {RUNE_C(0x000122), RUNE_C(0x000122)}, + {RUNE_C(0x000124), RUNE_C(0x000124)}, + {RUNE_C(0x000126), RUNE_C(0x000126)}, + {RUNE_C(0x000128), RUNE_C(0x000128)}, + {RUNE_C(0x00012A), RUNE_C(0x00012A)}, + {RUNE_C(0x00012C), RUNE_C(0x00012C)}, + {RUNE_C(0x00012E), RUNE_C(0x00012E)}, + {RUNE_C(0x000130), RUNE_C(0x000130)}, + {RUNE_C(0x000132), RUNE_C(0x000132)}, + {RUNE_C(0x000134), RUNE_C(0x000134)}, + {RUNE_C(0x000136), RUNE_C(0x000136)}, + {RUNE_C(0x000139), RUNE_C(0x000139)}, + {RUNE_C(0x00013B), RUNE_C(0x00013B)}, + {RUNE_C(0x00013D), RUNE_C(0x00013D)}, + {RUNE_C(0x00013F), RUNE_C(0x00013F)}, + {RUNE_C(0x000141), RUNE_C(0x000141)}, + {RUNE_C(0x000143), RUNE_C(0x000143)}, + {RUNE_C(0x000145), RUNE_C(0x000145)}, + {RUNE_C(0x000147), RUNE_C(0x000147)}, + {RUNE_C(0x00014A), RUNE_C(0x00014A)}, + {RUNE_C(0x00014C), RUNE_C(0x00014C)}, + {RUNE_C(0x00014E), RUNE_C(0x00014E)}, + {RUNE_C(0x000150), RUNE_C(0x000150)}, + {RUNE_C(0x000152), RUNE_C(0x000152)}, + {RUNE_C(0x000154), RUNE_C(0x000154)}, + {RUNE_C(0x000156), RUNE_C(0x000156)}, + {RUNE_C(0x000158), RUNE_C(0x000158)}, + {RUNE_C(0x00015A), RUNE_C(0x00015A)}, + {RUNE_C(0x00015C), RUNE_C(0x00015C)}, + {RUNE_C(0x00015E), RUNE_C(0x00015E)}, + {RUNE_C(0x000160), RUNE_C(0x000160)}, + {RUNE_C(0x000162), RUNE_C(0x000162)}, + {RUNE_C(0x000164), RUNE_C(0x000164)}, + {RUNE_C(0x000166), RUNE_C(0x000166)}, + {RUNE_C(0x000168), RUNE_C(0x000168)}, + {RUNE_C(0x00016A), RUNE_C(0x00016A)}, + {RUNE_C(0x00016C), RUNE_C(0x00016C)}, + {RUNE_C(0x00016E), RUNE_C(0x00016E)}, + {RUNE_C(0x000170), RUNE_C(0x000170)}, + {RUNE_C(0x000172), RUNE_C(0x000172)}, + {RUNE_C(0x000174), RUNE_C(0x000174)}, + {RUNE_C(0x000176), RUNE_C(0x000176)}, + {RUNE_C(0x000178), RUNE_C(0x000179)}, + {RUNE_C(0x00017B), RUNE_C(0x00017B)}, + {RUNE_C(0x00017D), RUNE_C(0x00017D)}, + {RUNE_C(0x000181), RUNE_C(0x000182)}, + {RUNE_C(0x000184), RUNE_C(0x000184)}, + {RUNE_C(0x000186), RUNE_C(0x000187)}, + {RUNE_C(0x000189), RUNE_C(0x00018B)}, + {RUNE_C(0x00018E), RUNE_C(0x000191)}, + {RUNE_C(0x000193), RUNE_C(0x000194)}, + {RUNE_C(0x000196), RUNE_C(0x000198)}, + {RUNE_C(0x00019C), RUNE_C(0x00019D)}, + {RUNE_C(0x00019F), RUNE_C(0x0001A0)}, + {RUNE_C(0x0001A2), RUNE_C(0x0001A2)}, + {RUNE_C(0x0001A4), RUNE_C(0x0001A4)}, + {RUNE_C(0x0001A6), RUNE_C(0x0001A7)}, + {RUNE_C(0x0001A9), RUNE_C(0x0001A9)}, + {RUNE_C(0x0001AC), RUNE_C(0x0001AC)}, + {RUNE_C(0x0001AE), RUNE_C(0x0001AF)}, + {RUNE_C(0x0001B1), RUNE_C(0x0001B3)}, + {RUNE_C(0x0001B5), RUNE_C(0x0001B5)}, + {RUNE_C(0x0001B7), RUNE_C(0x0001B8)}, + {RUNE_C(0x0001BC), RUNE_C(0x0001BC)}, + {RUNE_C(0x0001C4), RUNE_C(0x0001C4)}, + {RUNE_C(0x0001C7), RUNE_C(0x0001C7)}, + {RUNE_C(0x0001CA), RUNE_C(0x0001CA)}, + {RUNE_C(0x0001CD), RUNE_C(0x0001CD)}, + {RUNE_C(0x0001CF), RUNE_C(0x0001CF)}, + {RUNE_C(0x0001D1), RUNE_C(0x0001D1)}, + {RUNE_C(0x0001D3), RUNE_C(0x0001D3)}, + {RUNE_C(0x0001D5), RUNE_C(0x0001D5)}, + {RUNE_C(0x0001D7), RUNE_C(0x0001D7)}, + {RUNE_C(0x0001D9), RUNE_C(0x0001D9)}, + {RUNE_C(0x0001DB), RUNE_C(0x0001DB)}, + {RUNE_C(0x0001DE), RUNE_C(0x0001DE)}, + {RUNE_C(0x0001E0), RUNE_C(0x0001E0)}, + {RUNE_C(0x0001E2), RUNE_C(0x0001E2)}, + {RUNE_C(0x0001E4), RUNE_C(0x0001E4)}, + {RUNE_C(0x0001E6), RUNE_C(0x0001E6)}, + {RUNE_C(0x0001E8), RUNE_C(0x0001E8)}, + {RUNE_C(0x0001EA), RUNE_C(0x0001EA)}, + {RUNE_C(0x0001EC), RUNE_C(0x0001EC)}, + {RUNE_C(0x0001EE), RUNE_C(0x0001EE)}, + {RUNE_C(0x0001F1), RUNE_C(0x0001F1)}, + {RUNE_C(0x0001F4), RUNE_C(0x0001F4)}, + {RUNE_C(0x0001F6), RUNE_C(0x0001F8)}, + {RUNE_C(0x0001FA), RUNE_C(0x0001FA)}, + {RUNE_C(0x0001FC), RUNE_C(0x0001FC)}, + {RUNE_C(0x0001FE), RUNE_C(0x0001FE)}, + {RUNE_C(0x000200), RUNE_C(0x000200)}, + {RUNE_C(0x000202), RUNE_C(0x000202)}, + {RUNE_C(0x000204), RUNE_C(0x000204)}, + {RUNE_C(0x000206), RUNE_C(0x000206)}, + {RUNE_C(0x000208), RUNE_C(0x000208)}, + {RUNE_C(0x00020A), RUNE_C(0x00020A)}, + {RUNE_C(0x00020C), RUNE_C(0x00020C)}, + {RUNE_C(0x00020E), RUNE_C(0x00020E)}, + {RUNE_C(0x000210), RUNE_C(0x000210)}, + {RUNE_C(0x000212), RUNE_C(0x000212)}, + {RUNE_C(0x000214), RUNE_C(0x000214)}, + {RUNE_C(0x000216), RUNE_C(0x000216)}, + {RUNE_C(0x000218), RUNE_C(0x000218)}, + {RUNE_C(0x00021A), RUNE_C(0x00021A)}, + {RUNE_C(0x00021C), RUNE_C(0x00021C)}, + {RUNE_C(0x00021E), RUNE_C(0x00021E)}, + {RUNE_C(0x000220), RUNE_C(0x000220)}, + {RUNE_C(0x000222), RUNE_C(0x000222)}, + {RUNE_C(0x000224), RUNE_C(0x000224)}, + {RUNE_C(0x000226), RUNE_C(0x000226)}, + {RUNE_C(0x000228), RUNE_C(0x000228)}, + {RUNE_C(0x00022A), RUNE_C(0x00022A)}, + {RUNE_C(0x00022C), RUNE_C(0x00022C)}, + {RUNE_C(0x00022E), RUNE_C(0x00022E)}, + {RUNE_C(0x000230), RUNE_C(0x000230)}, + {RUNE_C(0x000232), RUNE_C(0x000232)}, + {RUNE_C(0x00023A), RUNE_C(0x00023B)}, + {RUNE_C(0x00023D), RUNE_C(0x00023E)}, + {RUNE_C(0x000241), RUNE_C(0x000241)}, + {RUNE_C(0x000243), RUNE_C(0x000246)}, + {RUNE_C(0x000248), RUNE_C(0x000248)}, + {RUNE_C(0x00024A), RUNE_C(0x00024A)}, + {RUNE_C(0x00024C), RUNE_C(0x00024C)}, + {RUNE_C(0x00024E), RUNE_C(0x00024E)}, + {RUNE_C(0x000370), RUNE_C(0x000370)}, + {RUNE_C(0x000372), RUNE_C(0x000372)}, + {RUNE_C(0x000376), RUNE_C(0x000376)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x00038F)}, + {RUNE_C(0x000391), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003AB)}, + {RUNE_C(0x0003CF), RUNE_C(0x0003CF)}, + {RUNE_C(0x0003D2), RUNE_C(0x0003D4)}, + {RUNE_C(0x0003D8), RUNE_C(0x0003D8)}, + {RUNE_C(0x0003DA), RUNE_C(0x0003DA)}, + {RUNE_C(0x0003DC), RUNE_C(0x0003DC)}, + {RUNE_C(0x0003DE), RUNE_C(0x0003DE)}, + {RUNE_C(0x0003E0), RUNE_C(0x0003E0)}, + {RUNE_C(0x0003E2), RUNE_C(0x0003E2)}, + {RUNE_C(0x0003E4), RUNE_C(0x0003E4)}, + {RUNE_C(0x0003E6), RUNE_C(0x0003E6)}, + {RUNE_C(0x0003E8), RUNE_C(0x0003E8)}, + {RUNE_C(0x0003EA), RUNE_C(0x0003EA)}, + {RUNE_C(0x0003EC), RUNE_C(0x0003EC)}, + {RUNE_C(0x0003EE), RUNE_C(0x0003EE)}, + {RUNE_C(0x0003F4), RUNE_C(0x0003F4)}, + {RUNE_C(0x0003F7), RUNE_C(0x0003F7)}, + {RUNE_C(0x0003F9), RUNE_C(0x0003FA)}, + {RUNE_C(0x0003FD), RUNE_C(0x00042F)}, + {RUNE_C(0x000460), RUNE_C(0x000460)}, + {RUNE_C(0x000462), RUNE_C(0x000462)}, + {RUNE_C(0x000464), RUNE_C(0x000464)}, + {RUNE_C(0x000466), RUNE_C(0x000466)}, + {RUNE_C(0x000468), RUNE_C(0x000468)}, + {RUNE_C(0x00046A), RUNE_C(0x00046A)}, + {RUNE_C(0x00046C), RUNE_C(0x00046C)}, + {RUNE_C(0x00046E), RUNE_C(0x00046E)}, + {RUNE_C(0x000470), RUNE_C(0x000470)}, + {RUNE_C(0x000472), RUNE_C(0x000472)}, + {RUNE_C(0x000474), RUNE_C(0x000474)}, + {RUNE_C(0x000476), RUNE_C(0x000476)}, + {RUNE_C(0x000478), RUNE_C(0x000478)}, + {RUNE_C(0x00047A), RUNE_C(0x00047A)}, + {RUNE_C(0x00047C), RUNE_C(0x00047C)}, + {RUNE_C(0x00047E), RUNE_C(0x00047E)}, + {RUNE_C(0x000480), RUNE_C(0x000480)}, + {RUNE_C(0x00048A), RUNE_C(0x00048A)}, + {RUNE_C(0x00048C), RUNE_C(0x00048C)}, + {RUNE_C(0x00048E), RUNE_C(0x00048E)}, + {RUNE_C(0x000490), RUNE_C(0x000490)}, + {RUNE_C(0x000492), RUNE_C(0x000492)}, + {RUNE_C(0x000494), RUNE_C(0x000494)}, + {RUNE_C(0x000496), RUNE_C(0x000496)}, + {RUNE_C(0x000498), RUNE_C(0x000498)}, + {RUNE_C(0x00049A), RUNE_C(0x00049A)}, + {RUNE_C(0x00049C), RUNE_C(0x00049C)}, + {RUNE_C(0x00049E), RUNE_C(0x00049E)}, + {RUNE_C(0x0004A0), RUNE_C(0x0004A0)}, + {RUNE_C(0x0004A2), RUNE_C(0x0004A2)}, + {RUNE_C(0x0004A4), RUNE_C(0x0004A4)}, + {RUNE_C(0x0004A6), RUNE_C(0x0004A6)}, + {RUNE_C(0x0004A8), RUNE_C(0x0004A8)}, + {RUNE_C(0x0004AA), RUNE_C(0x0004AA)}, + {RUNE_C(0x0004AC), RUNE_C(0x0004AC)}, + {RUNE_C(0x0004AE), RUNE_C(0x0004AE)}, + {RUNE_C(0x0004B0), RUNE_C(0x0004B0)}, + {RUNE_C(0x0004B2), RUNE_C(0x0004B2)}, + {RUNE_C(0x0004B4), RUNE_C(0x0004B4)}, + {RUNE_C(0x0004B6), RUNE_C(0x0004B6)}, + {RUNE_C(0x0004B8), RUNE_C(0x0004B8)}, + {RUNE_C(0x0004BA), RUNE_C(0x0004BA)}, + {RUNE_C(0x0004BC), RUNE_C(0x0004BC)}, + {RUNE_C(0x0004BE), RUNE_C(0x0004BE)}, + {RUNE_C(0x0004C0), RUNE_C(0x0004C1)}, + {RUNE_C(0x0004C3), RUNE_C(0x0004C3)}, + {RUNE_C(0x0004C5), RUNE_C(0x0004C5)}, + {RUNE_C(0x0004C7), RUNE_C(0x0004C7)}, + {RUNE_C(0x0004C9), RUNE_C(0x0004C9)}, + {RUNE_C(0x0004CB), RUNE_C(0x0004CB)}, + {RUNE_C(0x0004CD), RUNE_C(0x0004CD)}, + {RUNE_C(0x0004D0), RUNE_C(0x0004D0)}, + {RUNE_C(0x0004D2), RUNE_C(0x0004D2)}, + {RUNE_C(0x0004D4), RUNE_C(0x0004D4)}, + {RUNE_C(0x0004D6), RUNE_C(0x0004D6)}, + {RUNE_C(0x0004D8), RUNE_C(0x0004D8)}, + {RUNE_C(0x0004DA), RUNE_C(0x0004DA)}, + {RUNE_C(0x0004DC), RUNE_C(0x0004DC)}, + {RUNE_C(0x0004DE), RUNE_C(0x0004DE)}, + {RUNE_C(0x0004E0), RUNE_C(0x0004E0)}, + {RUNE_C(0x0004E2), RUNE_C(0x0004E2)}, + {RUNE_C(0x0004E4), RUNE_C(0x0004E4)}, + {RUNE_C(0x0004E6), RUNE_C(0x0004E6)}, + {RUNE_C(0x0004E8), RUNE_C(0x0004E8)}, + {RUNE_C(0x0004EA), RUNE_C(0x0004EA)}, + {RUNE_C(0x0004EC), RUNE_C(0x0004EC)}, + {RUNE_C(0x0004EE), RUNE_C(0x0004EE)}, + {RUNE_C(0x0004F0), RUNE_C(0x0004F0)}, + {RUNE_C(0x0004F2), RUNE_C(0x0004F2)}, + {RUNE_C(0x0004F4), RUNE_C(0x0004F4)}, + {RUNE_C(0x0004F6), RUNE_C(0x0004F6)}, + {RUNE_C(0x0004F8), RUNE_C(0x0004F8)}, + {RUNE_C(0x0004FA), RUNE_C(0x0004FA)}, + {RUNE_C(0x0004FC), RUNE_C(0x0004FC)}, + {RUNE_C(0x0004FE), RUNE_C(0x0004FE)}, + {RUNE_C(0x000500), RUNE_C(0x000500)}, + {RUNE_C(0x000502), RUNE_C(0x000502)}, + {RUNE_C(0x000504), RUNE_C(0x000504)}, + {RUNE_C(0x000506), RUNE_C(0x000506)}, + {RUNE_C(0x000508), RUNE_C(0x000508)}, + {RUNE_C(0x00050A), RUNE_C(0x00050A)}, + {RUNE_C(0x00050C), RUNE_C(0x00050C)}, + {RUNE_C(0x00050E), RUNE_C(0x00050E)}, + {RUNE_C(0x000510), RUNE_C(0x000510)}, + {RUNE_C(0x000512), RUNE_C(0x000512)}, + {RUNE_C(0x000514), RUNE_C(0x000514)}, + {RUNE_C(0x000516), RUNE_C(0x000516)}, + {RUNE_C(0x000518), RUNE_C(0x000518)}, + {RUNE_C(0x00051A), RUNE_C(0x00051A)}, + {RUNE_C(0x00051C), RUNE_C(0x00051C)}, + {RUNE_C(0x00051E), RUNE_C(0x00051E)}, + {RUNE_C(0x000520), RUNE_C(0x000520)}, + {RUNE_C(0x000522), RUNE_C(0x000522)}, + {RUNE_C(0x000524), RUNE_C(0x000524)}, + {RUNE_C(0x000526), RUNE_C(0x000526)}, + {RUNE_C(0x000528), RUNE_C(0x000528)}, + {RUNE_C(0x00052A), RUNE_C(0x00052A)}, + {RUNE_C(0x00052C), RUNE_C(0x00052C)}, + {RUNE_C(0x00052E), RUNE_C(0x00052E)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001E00)}, + {RUNE_C(0x001E02), RUNE_C(0x001E02)}, + {RUNE_C(0x001E04), RUNE_C(0x001E04)}, + {RUNE_C(0x001E06), RUNE_C(0x001E06)}, + {RUNE_C(0x001E08), RUNE_C(0x001E08)}, + {RUNE_C(0x001E0A), RUNE_C(0x001E0A)}, + {RUNE_C(0x001E0C), RUNE_C(0x001E0C)}, + {RUNE_C(0x001E0E), RUNE_C(0x001E0E)}, + {RUNE_C(0x001E10), RUNE_C(0x001E10)}, + {RUNE_C(0x001E12), RUNE_C(0x001E12)}, + {RUNE_C(0x001E14), RUNE_C(0x001E14)}, + {RUNE_C(0x001E16), RUNE_C(0x001E16)}, + {RUNE_C(0x001E18), RUNE_C(0x001E18)}, + {RUNE_C(0x001E1A), RUNE_C(0x001E1A)}, + {RUNE_C(0x001E1C), RUNE_C(0x001E1C)}, + {RUNE_C(0x001E1E), RUNE_C(0x001E1E)}, + {RUNE_C(0x001E20), RUNE_C(0x001E20)}, + {RUNE_C(0x001E22), RUNE_C(0x001E22)}, + {RUNE_C(0x001E24), RUNE_C(0x001E24)}, + {RUNE_C(0x001E26), RUNE_C(0x001E26)}, + {RUNE_C(0x001E28), RUNE_C(0x001E28)}, + {RUNE_C(0x001E2A), RUNE_C(0x001E2A)}, + {RUNE_C(0x001E2C), RUNE_C(0x001E2C)}, + {RUNE_C(0x001E2E), RUNE_C(0x001E2E)}, + {RUNE_C(0x001E30), RUNE_C(0x001E30)}, + {RUNE_C(0x001E32), RUNE_C(0x001E32)}, + {RUNE_C(0x001E34), RUNE_C(0x001E34)}, + {RUNE_C(0x001E36), RUNE_C(0x001E36)}, + {RUNE_C(0x001E38), RUNE_C(0x001E38)}, + {RUNE_C(0x001E3A), RUNE_C(0x001E3A)}, + {RUNE_C(0x001E3C), RUNE_C(0x001E3C)}, + {RUNE_C(0x001E3E), RUNE_C(0x001E3E)}, + {RUNE_C(0x001E40), RUNE_C(0x001E40)}, + {RUNE_C(0x001E42), RUNE_C(0x001E42)}, + {RUNE_C(0x001E44), RUNE_C(0x001E44)}, + {RUNE_C(0x001E46), RUNE_C(0x001E46)}, + {RUNE_C(0x001E48), RUNE_C(0x001E48)}, + {RUNE_C(0x001E4A), RUNE_C(0x001E4A)}, + {RUNE_C(0x001E4C), RUNE_C(0x001E4C)}, + {RUNE_C(0x001E4E), RUNE_C(0x001E4E)}, + {RUNE_C(0x001E50), RUNE_C(0x001E50)}, + {RUNE_C(0x001E52), RUNE_C(0x001E52)}, + {RUNE_C(0x001E54), RUNE_C(0x001E54)}, + {RUNE_C(0x001E56), RUNE_C(0x001E56)}, + {RUNE_C(0x001E58), RUNE_C(0x001E58)}, + {RUNE_C(0x001E5A), RUNE_C(0x001E5A)}, + {RUNE_C(0x001E5C), RUNE_C(0x001E5C)}, + {RUNE_C(0x001E5E), RUNE_C(0x001E5E)}, + {RUNE_C(0x001E60), RUNE_C(0x001E60)}, + {RUNE_C(0x001E62), RUNE_C(0x001E62)}, + {RUNE_C(0x001E64), RUNE_C(0x001E64)}, + {RUNE_C(0x001E66), RUNE_C(0x001E66)}, + {RUNE_C(0x001E68), RUNE_C(0x001E68)}, + {RUNE_C(0x001E6A), RUNE_C(0x001E6A)}, + {RUNE_C(0x001E6C), RUNE_C(0x001E6C)}, + {RUNE_C(0x001E6E), RUNE_C(0x001E6E)}, + {RUNE_C(0x001E70), RUNE_C(0x001E70)}, + {RUNE_C(0x001E72), RUNE_C(0x001E72)}, + {RUNE_C(0x001E74), RUNE_C(0x001E74)}, + {RUNE_C(0x001E76), RUNE_C(0x001E76)}, + {RUNE_C(0x001E78), RUNE_C(0x001E78)}, + {RUNE_C(0x001E7A), RUNE_C(0x001E7A)}, + {RUNE_C(0x001E7C), RUNE_C(0x001E7C)}, + {RUNE_C(0x001E7E), RUNE_C(0x001E7E)}, + {RUNE_C(0x001E80), RUNE_C(0x001E80)}, + {RUNE_C(0x001E82), RUNE_C(0x001E82)}, + {RUNE_C(0x001E84), RUNE_C(0x001E84)}, + {RUNE_C(0x001E86), RUNE_C(0x001E86)}, + {RUNE_C(0x001E88), RUNE_C(0x001E88)}, + {RUNE_C(0x001E8A), RUNE_C(0x001E8A)}, + {RUNE_C(0x001E8C), RUNE_C(0x001E8C)}, + {RUNE_C(0x001E8E), RUNE_C(0x001E8E)}, + {RUNE_C(0x001E90), RUNE_C(0x001E90)}, + {RUNE_C(0x001E92), RUNE_C(0x001E92)}, + {RUNE_C(0x001E94), RUNE_C(0x001E94)}, + {RUNE_C(0x001E9E), RUNE_C(0x001E9E)}, + {RUNE_C(0x001EA0), RUNE_C(0x001EA0)}, + {RUNE_C(0x001EA2), RUNE_C(0x001EA2)}, + {RUNE_C(0x001EA4), RUNE_C(0x001EA4)}, + {RUNE_C(0x001EA6), RUNE_C(0x001EA6)}, + {RUNE_C(0x001EA8), RUNE_C(0x001EA8)}, + {RUNE_C(0x001EAA), RUNE_C(0x001EAA)}, + {RUNE_C(0x001EAC), RUNE_C(0x001EAC)}, + {RUNE_C(0x001EAE), RUNE_C(0x001EAE)}, + {RUNE_C(0x001EB0), RUNE_C(0x001EB0)}, + {RUNE_C(0x001EB2), RUNE_C(0x001EB2)}, + {RUNE_C(0x001EB4), RUNE_C(0x001EB4)}, + {RUNE_C(0x001EB6), RUNE_C(0x001EB6)}, + {RUNE_C(0x001EB8), RUNE_C(0x001EB8)}, + {RUNE_C(0x001EBA), RUNE_C(0x001EBA)}, + {RUNE_C(0x001EBC), RUNE_C(0x001EBC)}, + {RUNE_C(0x001EBE), RUNE_C(0x001EBE)}, + {RUNE_C(0x001EC0), RUNE_C(0x001EC0)}, + {RUNE_C(0x001EC2), RUNE_C(0x001EC2)}, + {RUNE_C(0x001EC4), RUNE_C(0x001EC4)}, + {RUNE_C(0x001EC6), RUNE_C(0x001EC6)}, + {RUNE_C(0x001EC8), RUNE_C(0x001EC8)}, + {RUNE_C(0x001ECA), RUNE_C(0x001ECA)}, + {RUNE_C(0x001ECC), RUNE_C(0x001ECC)}, + {RUNE_C(0x001ECE), RUNE_C(0x001ECE)}, + {RUNE_C(0x001ED0), RUNE_C(0x001ED0)}, + {RUNE_C(0x001ED2), RUNE_C(0x001ED2)}, + {RUNE_C(0x001ED4), RUNE_C(0x001ED4)}, + {RUNE_C(0x001ED6), RUNE_C(0x001ED6)}, + {RUNE_C(0x001ED8), RUNE_C(0x001ED8)}, + {RUNE_C(0x001EDA), RUNE_C(0x001EDA)}, + {RUNE_C(0x001EDC), RUNE_C(0x001EDC)}, + {RUNE_C(0x001EDE), RUNE_C(0x001EDE)}, + {RUNE_C(0x001EE0), RUNE_C(0x001EE0)}, + {RUNE_C(0x001EE2), RUNE_C(0x001EE2)}, + {RUNE_C(0x001EE4), RUNE_C(0x001EE4)}, + {RUNE_C(0x001EE6), RUNE_C(0x001EE6)}, + {RUNE_C(0x001EE8), RUNE_C(0x001EE8)}, + {RUNE_C(0x001EEA), RUNE_C(0x001EEA)}, + {RUNE_C(0x001EEC), RUNE_C(0x001EEC)}, + {RUNE_C(0x001EEE), RUNE_C(0x001EEE)}, + {RUNE_C(0x001EF0), RUNE_C(0x001EF0)}, + {RUNE_C(0x001EF2), RUNE_C(0x001EF2)}, + {RUNE_C(0x001EF4), RUNE_C(0x001EF4)}, + {RUNE_C(0x001EF6), RUNE_C(0x001EF6)}, + {RUNE_C(0x001EF8), RUNE_C(0x001EF8)}, + {RUNE_C(0x001EFA), RUNE_C(0x001EFA)}, + {RUNE_C(0x001EFC), RUNE_C(0x001EFC)}, + {RUNE_C(0x001EFE), RUNE_C(0x001EFE)}, + {RUNE_C(0x001F08), RUNE_C(0x001F0F)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F28), RUNE_C(0x001F2F)}, + {RUNE_C(0x001F38), RUNE_C(0x001F3F)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F5F)}, + {RUNE_C(0x001F68), RUNE_C(0x001F6F)}, + {RUNE_C(0x001FB8), RUNE_C(0x001FBB)}, + {RUNE_C(0x001FC8), RUNE_C(0x001FCB)}, + {RUNE_C(0x001FD8), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE8), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF8), RUNE_C(0x001FFB)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210B), RUNE_C(0x00210D)}, + {RUNE_C(0x002110), RUNE_C(0x002112)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002119), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x00212D)}, + {RUNE_C(0x002130), RUNE_C(0x002133)}, + {RUNE_C(0x00213E), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002145)}, + {RUNE_C(0x002160), RUNE_C(0x00216F)}, + {RUNE_C(0x002183), RUNE_C(0x002183)}, + {RUNE_C(0x0024B6), RUNE_C(0x0024CF)}, + {RUNE_C(0x002C00), RUNE_C(0x002C2F)}, + {RUNE_C(0x002C60), RUNE_C(0x002C60)}, + {RUNE_C(0x002C62), RUNE_C(0x002C64)}, + {RUNE_C(0x002C67), RUNE_C(0x002C67)}, + {RUNE_C(0x002C69), RUNE_C(0x002C69)}, + {RUNE_C(0x002C6B), RUNE_C(0x002C6B)}, + {RUNE_C(0x002C6D), RUNE_C(0x002C70)}, + {RUNE_C(0x002C72), RUNE_C(0x002C72)}, + {RUNE_C(0x002C75), RUNE_C(0x002C75)}, + {RUNE_C(0x002C7E), RUNE_C(0x002C80)}, + {RUNE_C(0x002C82), RUNE_C(0x002C82)}, + {RUNE_C(0x002C84), RUNE_C(0x002C84)}, + {RUNE_C(0x002C86), RUNE_C(0x002C86)}, + {RUNE_C(0x002C88), RUNE_C(0x002C88)}, + {RUNE_C(0x002C8A), RUNE_C(0x002C8A)}, + {RUNE_C(0x002C8C), RUNE_C(0x002C8C)}, + {RUNE_C(0x002C8E), RUNE_C(0x002C8E)}, + {RUNE_C(0x002C90), RUNE_C(0x002C90)}, + {RUNE_C(0x002C92), RUNE_C(0x002C92)}, + {RUNE_C(0x002C94), RUNE_C(0x002C94)}, + {RUNE_C(0x002C96), RUNE_C(0x002C96)}, + {RUNE_C(0x002C98), RUNE_C(0x002C98)}, + {RUNE_C(0x002C9A), RUNE_C(0x002C9A)}, + {RUNE_C(0x002C9C), RUNE_C(0x002C9C)}, + {RUNE_C(0x002C9E), RUNE_C(0x002C9E)}, + {RUNE_C(0x002CA0), RUNE_C(0x002CA0)}, + {RUNE_C(0x002CA2), RUNE_C(0x002CA2)}, + {RUNE_C(0x002CA4), RUNE_C(0x002CA4)}, + {RUNE_C(0x002CA6), RUNE_C(0x002CA6)}, + {RUNE_C(0x002CA8), RUNE_C(0x002CA8)}, + {RUNE_C(0x002CAA), RUNE_C(0x002CAA)}, + {RUNE_C(0x002CAC), RUNE_C(0x002CAC)}, + {RUNE_C(0x002CAE), RUNE_C(0x002CAE)}, + {RUNE_C(0x002CB0), RUNE_C(0x002CB0)}, + {RUNE_C(0x002CB2), RUNE_C(0x002CB2)}, + {RUNE_C(0x002CB4), RUNE_C(0x002CB4)}, + {RUNE_C(0x002CB6), RUNE_C(0x002CB6)}, + {RUNE_C(0x002CB8), RUNE_C(0x002CB8)}, + {RUNE_C(0x002CBA), RUNE_C(0x002CBA)}, + {RUNE_C(0x002CBC), RUNE_C(0x002CBC)}, + {RUNE_C(0x002CBE), RUNE_C(0x002CBE)}, + {RUNE_C(0x002CC0), RUNE_C(0x002CC0)}, + {RUNE_C(0x002CC2), RUNE_C(0x002CC2)}, + {RUNE_C(0x002CC4), RUNE_C(0x002CC4)}, + {RUNE_C(0x002CC6), RUNE_C(0x002CC6)}, + {RUNE_C(0x002CC8), RUNE_C(0x002CC8)}, + {RUNE_C(0x002CCA), RUNE_C(0x002CCA)}, + {RUNE_C(0x002CCC), RUNE_C(0x002CCC)}, + {RUNE_C(0x002CCE), RUNE_C(0x002CCE)}, + {RUNE_C(0x002CD0), RUNE_C(0x002CD0)}, + {RUNE_C(0x002CD2), RUNE_C(0x002CD2)}, + {RUNE_C(0x002CD4), RUNE_C(0x002CD4)}, + {RUNE_C(0x002CD6), RUNE_C(0x002CD6)}, + {RUNE_C(0x002CD8), RUNE_C(0x002CD8)}, + {RUNE_C(0x002CDA), RUNE_C(0x002CDA)}, + {RUNE_C(0x002CDC), RUNE_C(0x002CDC)}, + {RUNE_C(0x002CDE), RUNE_C(0x002CDE)}, + {RUNE_C(0x002CE0), RUNE_C(0x002CE0)}, + {RUNE_C(0x002CE2), RUNE_C(0x002CE2)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEB)}, + {RUNE_C(0x002CED), RUNE_C(0x002CED)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF2)}, + {RUNE_C(0x00A640), RUNE_C(0x00A640)}, + {RUNE_C(0x00A642), RUNE_C(0x00A642)}, + {RUNE_C(0x00A644), RUNE_C(0x00A644)}, + {RUNE_C(0x00A646), RUNE_C(0x00A646)}, + {RUNE_C(0x00A648), RUNE_C(0x00A648)}, + {RUNE_C(0x00A64A), RUNE_C(0x00A64A)}, + {RUNE_C(0x00A64C), RUNE_C(0x00A64C)}, + {RUNE_C(0x00A64E), RUNE_C(0x00A64E)}, + {RUNE_C(0x00A650), RUNE_C(0x00A650)}, + {RUNE_C(0x00A652), RUNE_C(0x00A652)}, + {RUNE_C(0x00A654), RUNE_C(0x00A654)}, + {RUNE_C(0x00A656), RUNE_C(0x00A656)}, + {RUNE_C(0x00A658), RUNE_C(0x00A658)}, + {RUNE_C(0x00A65A), RUNE_C(0x00A65A)}, + {RUNE_C(0x00A65C), RUNE_C(0x00A65C)}, + {RUNE_C(0x00A65E), RUNE_C(0x00A65E)}, + {RUNE_C(0x00A660), RUNE_C(0x00A660)}, + {RUNE_C(0x00A662), RUNE_C(0x00A662)}, + {RUNE_C(0x00A664), RUNE_C(0x00A664)}, + {RUNE_C(0x00A666), RUNE_C(0x00A666)}, + {RUNE_C(0x00A668), RUNE_C(0x00A668)}, + {RUNE_C(0x00A66A), RUNE_C(0x00A66A)}, + {RUNE_C(0x00A66C), RUNE_C(0x00A66C)}, + {RUNE_C(0x00A680), RUNE_C(0x00A680)}, + {RUNE_C(0x00A682), RUNE_C(0x00A682)}, + {RUNE_C(0x00A684), RUNE_C(0x00A684)}, + {RUNE_C(0x00A686), RUNE_C(0x00A686)}, + {RUNE_C(0x00A688), RUNE_C(0x00A688)}, + {RUNE_C(0x00A68A), RUNE_C(0x00A68A)}, + {RUNE_C(0x00A68C), RUNE_C(0x00A68C)}, + {RUNE_C(0x00A68E), RUNE_C(0x00A68E)}, + {RUNE_C(0x00A690), RUNE_C(0x00A690)}, + {RUNE_C(0x00A692), RUNE_C(0x00A692)}, + {RUNE_C(0x00A694), RUNE_C(0x00A694)}, + {RUNE_C(0x00A696), RUNE_C(0x00A696)}, + {RUNE_C(0x00A698), RUNE_C(0x00A698)}, + {RUNE_C(0x00A69A), RUNE_C(0x00A69A)}, + {RUNE_C(0x00A722), RUNE_C(0x00A722)}, + {RUNE_C(0x00A724), RUNE_C(0x00A724)}, + {RUNE_C(0x00A726), RUNE_C(0x00A726)}, + {RUNE_C(0x00A728), RUNE_C(0x00A728)}, + {RUNE_C(0x00A72A), RUNE_C(0x00A72A)}, + {RUNE_C(0x00A72C), RUNE_C(0x00A72C)}, + {RUNE_C(0x00A72E), RUNE_C(0x00A72E)}, + {RUNE_C(0x00A732), RUNE_C(0x00A732)}, + {RUNE_C(0x00A734), RUNE_C(0x00A734)}, + {RUNE_C(0x00A736), RUNE_C(0x00A736)}, + {RUNE_C(0x00A738), RUNE_C(0x00A738)}, + {RUNE_C(0x00A73A), RUNE_C(0x00A73A)}, + {RUNE_C(0x00A73C), RUNE_C(0x00A73C)}, + {RUNE_C(0x00A73E), RUNE_C(0x00A73E)}, + {RUNE_C(0x00A740), RUNE_C(0x00A740)}, + {RUNE_C(0x00A742), RUNE_C(0x00A742)}, + {RUNE_C(0x00A744), RUNE_C(0x00A744)}, + {RUNE_C(0x00A746), RUNE_C(0x00A746)}, + {RUNE_C(0x00A748), RUNE_C(0x00A748)}, + {RUNE_C(0x00A74A), RUNE_C(0x00A74A)}, + {RUNE_C(0x00A74C), RUNE_C(0x00A74C)}, + {RUNE_C(0x00A74E), RUNE_C(0x00A74E)}, + {RUNE_C(0x00A750), RUNE_C(0x00A750)}, + {RUNE_C(0x00A752), RUNE_C(0x00A752)}, + {RUNE_C(0x00A754), RUNE_C(0x00A754)}, + {RUNE_C(0x00A756), RUNE_C(0x00A756)}, + {RUNE_C(0x00A758), RUNE_C(0x00A758)}, + {RUNE_C(0x00A75A), RUNE_C(0x00A75A)}, + {RUNE_C(0x00A75C), RUNE_C(0x00A75C)}, + {RUNE_C(0x00A75E), RUNE_C(0x00A75E)}, + {RUNE_C(0x00A760), RUNE_C(0x00A760)}, + {RUNE_C(0x00A762), RUNE_C(0x00A762)}, + {RUNE_C(0x00A764), RUNE_C(0x00A764)}, + {RUNE_C(0x00A766), RUNE_C(0x00A766)}, + {RUNE_C(0x00A768), RUNE_C(0x00A768)}, + {RUNE_C(0x00A76A), RUNE_C(0x00A76A)}, + {RUNE_C(0x00A76C), RUNE_C(0x00A76C)}, + {RUNE_C(0x00A76E), RUNE_C(0x00A76E)}, + {RUNE_C(0x00A779), RUNE_C(0x00A779)}, + {RUNE_C(0x00A77B), RUNE_C(0x00A77B)}, + {RUNE_C(0x00A77D), RUNE_C(0x00A77E)}, + {RUNE_C(0x00A780), RUNE_C(0x00A780)}, + {RUNE_C(0x00A782), RUNE_C(0x00A782)}, + {RUNE_C(0x00A784), RUNE_C(0x00A784)}, + {RUNE_C(0x00A786), RUNE_C(0x00A786)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A78B)}, + {RUNE_C(0x00A78D), RUNE_C(0x00A78D)}, + {RUNE_C(0x00A790), RUNE_C(0x00A790)}, + {RUNE_C(0x00A792), RUNE_C(0x00A792)}, + {RUNE_C(0x00A796), RUNE_C(0x00A796)}, + {RUNE_C(0x00A798), RUNE_C(0x00A798)}, + {RUNE_C(0x00A79A), RUNE_C(0x00A79A)}, + {RUNE_C(0x00A79C), RUNE_C(0x00A79C)}, + {RUNE_C(0x00A79E), RUNE_C(0x00A79E)}, + {RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)}, + {RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)}, + {RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)}, + {RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)}, + {RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)}, + {RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)}, + {RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)}, + {RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)}, + {RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)}, + {RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)}, + {RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)}, + {RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)}, + {RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)}, + {RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)}, + {RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)}, + {RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)}, + {RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)}, + {RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)}, + {RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x010400), RUNE_C(0x010427)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118BF)}, + {RUNE_C(0x016E40), RUNE_C(0x016E5F)}, + {RUNE_C(0x01D400), RUNE_C(0x01D419)}, + {RUNE_C(0x01D434), RUNE_C(0x01D44D)}, + {RUNE_C(0x01D468), RUNE_C(0x01D481)}, + {RUNE_C(0x01D49C), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B5)}, + {RUNE_C(0x01D4D0), RUNE_C(0x01D4E9)}, + {RUNE_C(0x01D504), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D538), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D56C), RUNE_C(0x01D585)}, + {RUNE_C(0x01D5A0), RUNE_C(0x01D5B9)}, + {RUNE_C(0x01D5D4), RUNE_C(0x01D5ED)}, + {RUNE_C(0x01D608), RUNE_C(0x01D621)}, + {RUNE_C(0x01D63C), RUNE_C(0x01D655)}, + {RUNE_C(0x01D670), RUNE_C(0x01D689)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6E2), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D71C), RUNE_C(0x01D734)}, + {RUNE_C(0x01D756), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D790), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7CA), RUNE_C(0x01D7CA)}, + {RUNE_C(0x01E900), RUNE_C(0x01E921)}, + {RUNE_C(0x01F130), RUNE_C(0x01F149)}, + {RUNE_C(0x01F150), RUNE_C(0x01F169)}, + {RUNE_C(0x01F170), RUNE_C(0x01F189)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_upper(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_vs.c b/vendor/librune/lib/rtype/rprop_is_vs.c new file mode 100644 index 0000000..6c52eaf --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_vs.c @@ -0,0 +1,29 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x00180F)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_vs(rune ch) +{ + return lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_wspace.c b/vendor/librune/lib/rtype/rprop_is_wspace.c new file mode 100644 index 0000000..0a3ea40 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_wspace.c @@ -0,0 +1,44 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0x0000000000000000000000010000002000000000000000000000000100003E00uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000009), RUNE_C(0x00000D)}, + {RUNE_C(0x000020), RUNE_C(0x000020)}, + {RUNE_C(0x000085), RUNE_C(0x000085)}, + {RUNE_C(0x0000A0), RUNE_C(0x0000A0)}, + {RUNE_C(0x001680), RUNE_C(0x001680)}, + {RUNE_C(0x002000), RUNE_C(0x00200A)}, + {RUNE_C(0x002028), RUNE_C(0x002029)}, + {RUNE_C(0x00202F), RUNE_C(0x00202F)}, + {RUNE_C(0x00205F), RUNE_C(0x00205F)}, + {RUNE_C(0x003000), RUNE_C(0x003000)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_wspace(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_xidc.c b/vendor/librune/lib/rtype/rprop_is_xidc.c new file mode 100644 index 0000000..1e6e48b --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_xidc.c @@ -0,0 +1,810 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF04A004000000000007FFFFFE87FFFFFE03FF000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000030), RUNE_C(0x000039)}, + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x00005F), RUNE_C(0x00005F)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000B7), RUNE_C(0x0000B7)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000300), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x000483), RUNE_C(0x000487)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x000591), RUNE_C(0x0005BD)}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF)}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C2)}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C5)}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000610), RUNE_C(0x00061A)}, + {RUNE_C(0x000620), RUNE_C(0x000669)}, + {RUNE_C(0x00066E), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006DC)}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E8)}, + {RUNE_C(0x0006EA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x00074A)}, + {RUNE_C(0x00074D), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007C0), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD)}, + {RUNE_C(0x000800), RUNE_C(0x00082D)}, + {RUNE_C(0x000840), RUNE_C(0x00085B)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x000898), RUNE_C(0x0008E1)}, + {RUNE_C(0x0008E3), RUNE_C(0x000963)}, + {RUNE_C(0x000966), RUNE_C(0x00096F)}, + {RUNE_C(0x000971), RUNE_C(0x000983)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BC), RUNE_C(0x0009C4)}, + {RUNE_C(0x0009C7), RUNE_C(0x0009C8)}, + {RUNE_C(0x0009CB), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009D7), RUNE_C(0x0009D7)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E3)}, + {RUNE_C(0x0009E6), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE)}, + {RUNE_C(0x000A01), RUNE_C(0x000A03)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C)}, + {RUNE_C(0x000A3E), RUNE_C(0x000A42)}, + {RUNE_C(0x000A47), RUNE_C(0x000A48)}, + {RUNE_C(0x000A4B), RUNE_C(0x000A4D)}, + {RUNE_C(0x000A51), RUNE_C(0x000A51)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A66), RUNE_C(0x000A75)}, + {RUNE_C(0x000A81), RUNE_C(0x000A83)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABC), RUNE_C(0x000AC5)}, + {RUNE_C(0x000AC7), RUNE_C(0x000AC9)}, + {RUNE_C(0x000ACB), RUNE_C(0x000ACD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE3)}, + {RUNE_C(0x000AE6), RUNE_C(0x000AEF)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AFF)}, + {RUNE_C(0x000B01), RUNE_C(0x000B03)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3C), RUNE_C(0x000B44)}, + {RUNE_C(0x000B47), RUNE_C(0x000B48)}, + {RUNE_C(0x000B4B), RUNE_C(0x000B4D)}, + {RUNE_C(0x000B55), RUNE_C(0x000B57)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B63)}, + {RUNE_C(0x000B66), RUNE_C(0x000B6F)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B82), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BBE), RUNE_C(0x000BC2)}, + {RUNE_C(0x000BC6), RUNE_C(0x000BC8)}, + {RUNE_C(0x000BCA), RUNE_C(0x000BCD)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000BD7), RUNE_C(0x000BD7)}, + {RUNE_C(0x000BE6), RUNE_C(0x000BEF)}, + {RUNE_C(0x000C00), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3C), RUNE_C(0x000C44)}, + {RUNE_C(0x000C46), RUNE_C(0x000C48)}, + {RUNE_C(0x000C4A), RUNE_C(0x000C4D)}, + {RUNE_C(0x000C55), RUNE_C(0x000C56)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C63)}, + {RUNE_C(0x000C66), RUNE_C(0x000C6F)}, + {RUNE_C(0x000C80), RUNE_C(0x000C83)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBC), RUNE_C(0x000CC4)}, + {RUNE_C(0x000CC6), RUNE_C(0x000CC8)}, + {RUNE_C(0x000CCA), RUNE_C(0x000CCD)}, + {RUNE_C(0x000CD5), RUNE_C(0x000CD6)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE3)}, + {RUNE_C(0x000CE6), RUNE_C(0x000CEF)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF3)}, + {RUNE_C(0x000D00), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D44)}, + {RUNE_C(0x000D46), RUNE_C(0x000D48)}, + {RUNE_C(0x000D4A), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D57)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D63)}, + {RUNE_C(0x000D66), RUNE_C(0x000D6F)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D81), RUNE_C(0x000D83)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA)}, + {RUNE_C(0x000DCF), RUNE_C(0x000DD4)}, + {RUNE_C(0x000DD6), RUNE_C(0x000DD6)}, + {RUNE_C(0x000DD8), RUNE_C(0x000DDF)}, + {RUNE_C(0x000DE6), RUNE_C(0x000DEF)}, + {RUNE_C(0x000DF2), RUNE_C(0x000DF3)}, + {RUNE_C(0x000E01), RUNE_C(0x000E3A)}, + {RUNE_C(0x000E40), RUNE_C(0x000E4E)}, + {RUNE_C(0x000E50), RUNE_C(0x000E59)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECE)}, + {RUNE_C(0x000ED0), RUNE_C(0x000ED9)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F18), RUNE_C(0x000F19)}, + {RUNE_C(0x000F20), RUNE_C(0x000F29)}, + {RUNE_C(0x000F35), RUNE_C(0x000F35)}, + {RUNE_C(0x000F37), RUNE_C(0x000F37)}, + {RUNE_C(0x000F39), RUNE_C(0x000F39)}, + {RUNE_C(0x000F3E), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F71), RUNE_C(0x000F84)}, + {RUNE_C(0x000F86), RUNE_C(0x000F97)}, + {RUNE_C(0x000F99), RUNE_C(0x000FBC)}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6)}, + {RUNE_C(0x001000), RUNE_C(0x001049)}, + {RUNE_C(0x001050), RUNE_C(0x00109D)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x00135D), RUNE_C(0x00135F)}, + {RUNE_C(0x001369), RUNE_C(0x001371)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001715)}, + {RUNE_C(0x00171F), RUNE_C(0x001734)}, + {RUNE_C(0x001740), RUNE_C(0x001753)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001772), RUNE_C(0x001773)}, + {RUNE_C(0x001780), RUNE_C(0x0017D3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DD)}, + {RUNE_C(0x0017E0), RUNE_C(0x0017E9)}, + {RUNE_C(0x00180B), RUNE_C(0x00180D)}, + {RUNE_C(0x00180F), RUNE_C(0x001819)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001920), RUNE_C(0x00192B)}, + {RUNE_C(0x001930), RUNE_C(0x00193B)}, + {RUNE_C(0x001946), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x0019D0), RUNE_C(0x0019DA)}, + {RUNE_C(0x001A00), RUNE_C(0x001A1B)}, + {RUNE_C(0x001A20), RUNE_C(0x001A5E)}, + {RUNE_C(0x001A60), RUNE_C(0x001A7C)}, + {RUNE_C(0x001A7F), RUNE_C(0x001A89)}, + {RUNE_C(0x001A90), RUNE_C(0x001A99)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001AB0), RUNE_C(0x001ABD)}, + {RUNE_C(0x001ABF), RUNE_C(0x001ACE)}, + {RUNE_C(0x001B00), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B50), RUNE_C(0x001B59)}, + {RUNE_C(0x001B6B), RUNE_C(0x001B73)}, + {RUNE_C(0x001B80), RUNE_C(0x001BF3)}, + {RUNE_C(0x001C00), RUNE_C(0x001C37)}, + {RUNE_C(0x001C40), RUNE_C(0x001C49)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2)}, + {RUNE_C(0x001CD4), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x00200C), RUNE_C(0x00200D)}, + {RUNE_C(0x00203F), RUNE_C(0x002040)}, + {RUNE_C(0x002054), RUNE_C(0x002054)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x0020D0), RUNE_C(0x0020DC)}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1)}, + {RUNE_C(0x0020E5), RUNE_C(0x0020F0)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D7F), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x00302F)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x003099), RUNE_C(0x00309A)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66F)}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A6F1)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A827)}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A880), RUNE_C(0x00A8C5)}, + {RUNE_C(0x00A8D0), RUNE_C(0x00A8D9)}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A92D)}, + {RUNE_C(0x00A930), RUNE_C(0x00A953)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A980), RUNE_C(0x00A9C0)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9D9)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA36)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA4D)}, + {RUNE_C(0x00AA50), RUNE_C(0x00AA59)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEF)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF6)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABEA)}, + {RUNE_C(0x00ABEC), RUNE_C(0x00ABED)}, + {RUNE_C(0x00ABF0), RUNE_C(0x00ABF9)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)}, + {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)}, + {RUNE_C(0x00FE00), RUNE_C(0x00FE0F)}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE2F)}, + {RUNE_C(0x00FE33), RUNE_C(0x00FE34)}, + {RUNE_C(0x00FE4D), RUNE_C(0x00FE4F)}, + {RUNE_C(0x00FE71), RUNE_C(0x00FE71)}, + {RUNE_C(0x00FE73), RUNE_C(0x00FE73)}, + {RUNE_C(0x00FE77), RUNE_C(0x00FE77)}, + {RUNE_C(0x00FE79), RUNE_C(0x00FE79)}, + {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)}, + {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)}, + {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF10), RUNE_C(0x00FF19)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF3F), RUNE_C(0x00FF3F)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF65), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x01037A)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104A0), RUNE_C(0x0104A9)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A03)}, + {RUNE_C(0x010A05), RUNE_C(0x010A06)}, + {RUNE_C(0x010A0C), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A38), RUNE_C(0x010A3A)}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE6)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D27)}, + {RUNE_C(0x010D30), RUNE_C(0x010D39)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010EFD), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F50)}, + {RUNE_C(0x010F70), RUNE_C(0x010F85)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011000), RUNE_C(0x011046)}, + {RUNE_C(0x011066), RUNE_C(0x011075)}, + {RUNE_C(0x01107F), RUNE_C(0x0110BA)}, + {RUNE_C(0x0110C2), RUNE_C(0x0110C2)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x0110F0), RUNE_C(0x0110F9)}, + {RUNE_C(0x011100), RUNE_C(0x011134)}, + {RUNE_C(0x011136), RUNE_C(0x01113F)}, + {RUNE_C(0x011144), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011173)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011180), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111C9), RUNE_C(0x0111CC)}, + {RUNE_C(0x0111CE), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x011237)}, + {RUNE_C(0x01123E), RUNE_C(0x011241)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112EA)}, + {RUNE_C(0x0112F0), RUNE_C(0x0112F9)}, + {RUNE_C(0x011300), RUNE_C(0x011303)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133B), RUNE_C(0x011344)}, + {RUNE_C(0x011347), RUNE_C(0x011348)}, + {RUNE_C(0x01134B), RUNE_C(0x01134D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x011357), RUNE_C(0x011357)}, + {RUNE_C(0x01135D), RUNE_C(0x011363)}, + {RUNE_C(0x011366), RUNE_C(0x01136C)}, + {RUNE_C(0x011370), RUNE_C(0x011374)}, + {RUNE_C(0x011400), RUNE_C(0x01144A)}, + {RUNE_C(0x011450), RUNE_C(0x011459)}, + {RUNE_C(0x01145E), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x0114D0), RUNE_C(0x0114D9)}, + {RUNE_C(0x011580), RUNE_C(0x0115B5)}, + {RUNE_C(0x0115B8), RUNE_C(0x0115C0)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DD)}, + {RUNE_C(0x011600), RUNE_C(0x011640)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011650), RUNE_C(0x011659)}, + {RUNE_C(0x011680), RUNE_C(0x0116B8)}, + {RUNE_C(0x0116C0), RUNE_C(0x0116C9)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x01171D), RUNE_C(0x01172B)}, + {RUNE_C(0x011730), RUNE_C(0x011739)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01183A)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118E9)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x011935)}, + {RUNE_C(0x011937), RUNE_C(0x011938)}, + {RUNE_C(0x01193B), RUNE_C(0x011943)}, + {RUNE_C(0x011950), RUNE_C(0x011959)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D7)}, + {RUNE_C(0x0119DA), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E4)}, + {RUNE_C(0x011A00), RUNE_C(0x011A3E)}, + {RUNE_C(0x011A47), RUNE_C(0x011A47)}, + {RUNE_C(0x011A50), RUNE_C(0x011A99)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C36)}, + {RUNE_C(0x011C38), RUNE_C(0x011C40)}, + {RUNE_C(0x011C50), RUNE_C(0x011C59)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011C92), RUNE_C(0x011CA7)}, + {RUNE_C(0x011CA9), RUNE_C(0x011CB6)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D36)}, + {RUNE_C(0x011D3A), RUNE_C(0x011D3A)}, + {RUNE_C(0x011D3C), RUNE_C(0x011D3D)}, + {RUNE_C(0x011D3F), RUNE_C(0x011D47)}, + {RUNE_C(0x011D50), RUNE_C(0x011D59)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D8E)}, + {RUNE_C(0x011D90), RUNE_C(0x011D91)}, + {RUNE_C(0x011D93), RUNE_C(0x011D98)}, + {RUNE_C(0x011DA0), RUNE_C(0x011DA9)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF6)}, + {RUNE_C(0x011F00), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F3A)}, + {RUNE_C(0x011F3E), RUNE_C(0x011F42)}, + {RUNE_C(0x011F50), RUNE_C(0x011F59)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013440), RUNE_C(0x013455)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A60), RUNE_C(0x016A69)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AC0), RUNE_C(0x016AC9)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4)}, + {RUNE_C(0x016B00), RUNE_C(0x016B36)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B50), RUNE_C(0x016B59)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F4F), RUNE_C(0x016F87)}, + {RUNE_C(0x016F8F), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE4)}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01BC9D), RUNE_C(0x01BC9E)}, + {RUNE_C(0x01CF00), RUNE_C(0x01CF2D)}, + {RUNE_C(0x01CF30), RUNE_C(0x01CF46)}, + {RUNE_C(0x01D165), RUNE_C(0x01D169)}, + {RUNE_C(0x01D16D), RUNE_C(0x01D172)}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182)}, + {RUNE_C(0x01D185), RUNE_C(0x01D18B)}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD)}, + {RUNE_C(0x01D242), RUNE_C(0x01D244)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01D7CE), RUNE_C(0x01D7FF)}, + {RUNE_C(0x01DA00), RUNE_C(0x01DA36)}, + {RUNE_C(0x01DA3B), RUNE_C(0x01DA6C)}, + {RUNE_C(0x01DA75), RUNE_C(0x01DA75)}, + {RUNE_C(0x01DA84), RUNE_C(0x01DA84)}, + {RUNE_C(0x01DA9B), RUNE_C(0x01DA9F)}, + {RUNE_C(0x01DAA1), RUNE_C(0x01DAAF)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E000), RUNE_C(0x01E006)}, + {RUNE_C(0x01E008), RUNE_C(0x01E018)}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021)}, + {RUNE_C(0x01E023), RUNE_C(0x01E024)}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E130), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E140), RUNE_C(0x01E149)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AE)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2F9)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4F9)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6)}, + {RUNE_C(0x01E900), RUNE_C(0x01E94B)}, + {RUNE_C(0x01E950), RUNE_C(0x01E959)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x01FBF0), RUNE_C(0x01FBF9)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, + {RUNE_C(0x0E0100), RUNE_C(0x0E01EF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_xidc(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/lib/rtype/rprop_is_xids.c b/vendor/librune/lib/rtype/rprop_is_xids.c new file mode 100644 index 0000000..4c41959 --- /dev/null +++ b/vendor/librune/lib/rtype/rprop_is_xids.c @@ -0,0 +1,701 @@ +/* This file is autogenerated by gen/rtype-prop; DO NOT EDIT. */ + +#include "rtype.h" +#include "rune.h" + +#include "internal/common.h" + +/* clang-format off */ + +#if BIT_LOOKUP +static const unsigned _BitInt(LATIN1_MAX + 1) mask = + 0xFF7FFFFFFF7FFFFF042004000000000007FFFFFE07FFFFFE0000000000000000uwb; +#endif + +static const struct { + rune lo, hi; +} lookup_tbl[] = { + {RUNE_C(0x000041), RUNE_C(0x00005A)}, + {RUNE_C(0x000061), RUNE_C(0x00007A)}, + {RUNE_C(0x0000AA), RUNE_C(0x0000AA)}, + {RUNE_C(0x0000B5), RUNE_C(0x0000B5)}, + {RUNE_C(0x0000BA), RUNE_C(0x0000BA)}, + {RUNE_C(0x0000C0), RUNE_C(0x0000D6)}, + {RUNE_C(0x0000D8), RUNE_C(0x0000F6)}, + {RUNE_C(0x0000F8), RUNE_C(0x0002C1)}, + {RUNE_C(0x0002C6), RUNE_C(0x0002D1)}, + {RUNE_C(0x0002E0), RUNE_C(0x0002E4)}, + {RUNE_C(0x0002EC), RUNE_C(0x0002EC)}, + {RUNE_C(0x0002EE), RUNE_C(0x0002EE)}, + {RUNE_C(0x000370), RUNE_C(0x000374)}, + {RUNE_C(0x000376), RUNE_C(0x000377)}, + {RUNE_C(0x00037B), RUNE_C(0x00037D)}, + {RUNE_C(0x00037F), RUNE_C(0x00037F)}, + {RUNE_C(0x000386), RUNE_C(0x000386)}, + {RUNE_C(0x000388), RUNE_C(0x00038A)}, + {RUNE_C(0x00038C), RUNE_C(0x00038C)}, + {RUNE_C(0x00038E), RUNE_C(0x0003A1)}, + {RUNE_C(0x0003A3), RUNE_C(0x0003F5)}, + {RUNE_C(0x0003F7), RUNE_C(0x000481)}, + {RUNE_C(0x00048A), RUNE_C(0x00052F)}, + {RUNE_C(0x000531), RUNE_C(0x000556)}, + {RUNE_C(0x000559), RUNE_C(0x000559)}, + {RUNE_C(0x000560), RUNE_C(0x000588)}, + {RUNE_C(0x0005D0), RUNE_C(0x0005EA)}, + {RUNE_C(0x0005EF), RUNE_C(0x0005F2)}, + {RUNE_C(0x000620), RUNE_C(0x00064A)}, + {RUNE_C(0x00066E), RUNE_C(0x00066F)}, + {RUNE_C(0x000671), RUNE_C(0x0006D3)}, + {RUNE_C(0x0006D5), RUNE_C(0x0006D5)}, + {RUNE_C(0x0006E5), RUNE_C(0x0006E6)}, + {RUNE_C(0x0006EE), RUNE_C(0x0006EF)}, + {RUNE_C(0x0006FA), RUNE_C(0x0006FC)}, + {RUNE_C(0x0006FF), RUNE_C(0x0006FF)}, + {RUNE_C(0x000710), RUNE_C(0x000710)}, + {RUNE_C(0x000712), RUNE_C(0x00072F)}, + {RUNE_C(0x00074D), RUNE_C(0x0007A5)}, + {RUNE_C(0x0007B1), RUNE_C(0x0007B1)}, + {RUNE_C(0x0007CA), RUNE_C(0x0007EA)}, + {RUNE_C(0x0007F4), RUNE_C(0x0007F5)}, + {RUNE_C(0x0007FA), RUNE_C(0x0007FA)}, + {RUNE_C(0x000800), RUNE_C(0x000815)}, + {RUNE_C(0x00081A), RUNE_C(0x00081A)}, + {RUNE_C(0x000824), RUNE_C(0x000824)}, + {RUNE_C(0x000828), RUNE_C(0x000828)}, + {RUNE_C(0x000840), RUNE_C(0x000858)}, + {RUNE_C(0x000860), RUNE_C(0x00086A)}, + {RUNE_C(0x000870), RUNE_C(0x000887)}, + {RUNE_C(0x000889), RUNE_C(0x00088E)}, + {RUNE_C(0x0008A0), RUNE_C(0x0008C9)}, + {RUNE_C(0x000904), RUNE_C(0x000939)}, + {RUNE_C(0x00093D), RUNE_C(0x00093D)}, + {RUNE_C(0x000950), RUNE_C(0x000950)}, + {RUNE_C(0x000958), RUNE_C(0x000961)}, + {RUNE_C(0x000971), RUNE_C(0x000980)}, + {RUNE_C(0x000985), RUNE_C(0x00098C)}, + {RUNE_C(0x00098F), RUNE_C(0x000990)}, + {RUNE_C(0x000993), RUNE_C(0x0009A8)}, + {RUNE_C(0x0009AA), RUNE_C(0x0009B0)}, + {RUNE_C(0x0009B2), RUNE_C(0x0009B2)}, + {RUNE_C(0x0009B6), RUNE_C(0x0009B9)}, + {RUNE_C(0x0009BD), RUNE_C(0x0009BD)}, + {RUNE_C(0x0009CE), RUNE_C(0x0009CE)}, + {RUNE_C(0x0009DC), RUNE_C(0x0009DD)}, + {RUNE_C(0x0009DF), RUNE_C(0x0009E1)}, + {RUNE_C(0x0009F0), RUNE_C(0x0009F1)}, + {RUNE_C(0x0009FC), RUNE_C(0x0009FC)}, + {RUNE_C(0x000A05), RUNE_C(0x000A0A)}, + {RUNE_C(0x000A0F), RUNE_C(0x000A10)}, + {RUNE_C(0x000A13), RUNE_C(0x000A28)}, + {RUNE_C(0x000A2A), RUNE_C(0x000A30)}, + {RUNE_C(0x000A32), RUNE_C(0x000A33)}, + {RUNE_C(0x000A35), RUNE_C(0x000A36)}, + {RUNE_C(0x000A38), RUNE_C(0x000A39)}, + {RUNE_C(0x000A59), RUNE_C(0x000A5C)}, + {RUNE_C(0x000A5E), RUNE_C(0x000A5E)}, + {RUNE_C(0x000A72), RUNE_C(0x000A74)}, + {RUNE_C(0x000A85), RUNE_C(0x000A8D)}, + {RUNE_C(0x000A8F), RUNE_C(0x000A91)}, + {RUNE_C(0x000A93), RUNE_C(0x000AA8)}, + {RUNE_C(0x000AAA), RUNE_C(0x000AB0)}, + {RUNE_C(0x000AB2), RUNE_C(0x000AB3)}, + {RUNE_C(0x000AB5), RUNE_C(0x000AB9)}, + {RUNE_C(0x000ABD), RUNE_C(0x000ABD)}, + {RUNE_C(0x000AD0), RUNE_C(0x000AD0)}, + {RUNE_C(0x000AE0), RUNE_C(0x000AE1)}, + {RUNE_C(0x000AF9), RUNE_C(0x000AF9)}, + {RUNE_C(0x000B05), RUNE_C(0x000B0C)}, + {RUNE_C(0x000B0F), RUNE_C(0x000B10)}, + {RUNE_C(0x000B13), RUNE_C(0x000B28)}, + {RUNE_C(0x000B2A), RUNE_C(0x000B30)}, + {RUNE_C(0x000B32), RUNE_C(0x000B33)}, + {RUNE_C(0x000B35), RUNE_C(0x000B39)}, + {RUNE_C(0x000B3D), RUNE_C(0x000B3D)}, + {RUNE_C(0x000B5C), RUNE_C(0x000B5D)}, + {RUNE_C(0x000B5F), RUNE_C(0x000B61)}, + {RUNE_C(0x000B71), RUNE_C(0x000B71)}, + {RUNE_C(0x000B83), RUNE_C(0x000B83)}, + {RUNE_C(0x000B85), RUNE_C(0x000B8A)}, + {RUNE_C(0x000B8E), RUNE_C(0x000B90)}, + {RUNE_C(0x000B92), RUNE_C(0x000B95)}, + {RUNE_C(0x000B99), RUNE_C(0x000B9A)}, + {RUNE_C(0x000B9C), RUNE_C(0x000B9C)}, + {RUNE_C(0x000B9E), RUNE_C(0x000B9F)}, + {RUNE_C(0x000BA3), RUNE_C(0x000BA4)}, + {RUNE_C(0x000BA8), RUNE_C(0x000BAA)}, + {RUNE_C(0x000BAE), RUNE_C(0x000BB9)}, + {RUNE_C(0x000BD0), RUNE_C(0x000BD0)}, + {RUNE_C(0x000C05), RUNE_C(0x000C0C)}, + {RUNE_C(0x000C0E), RUNE_C(0x000C10)}, + {RUNE_C(0x000C12), RUNE_C(0x000C28)}, + {RUNE_C(0x000C2A), RUNE_C(0x000C39)}, + {RUNE_C(0x000C3D), RUNE_C(0x000C3D)}, + {RUNE_C(0x000C58), RUNE_C(0x000C5A)}, + {RUNE_C(0x000C5D), RUNE_C(0x000C5D)}, + {RUNE_C(0x000C60), RUNE_C(0x000C61)}, + {RUNE_C(0x000C80), RUNE_C(0x000C80)}, + {RUNE_C(0x000C85), RUNE_C(0x000C8C)}, + {RUNE_C(0x000C8E), RUNE_C(0x000C90)}, + {RUNE_C(0x000C92), RUNE_C(0x000CA8)}, + {RUNE_C(0x000CAA), RUNE_C(0x000CB3)}, + {RUNE_C(0x000CB5), RUNE_C(0x000CB9)}, + {RUNE_C(0x000CBD), RUNE_C(0x000CBD)}, + {RUNE_C(0x000CDD), RUNE_C(0x000CDE)}, + {RUNE_C(0x000CE0), RUNE_C(0x000CE1)}, + {RUNE_C(0x000CF1), RUNE_C(0x000CF2)}, + {RUNE_C(0x000D04), RUNE_C(0x000D0C)}, + {RUNE_C(0x000D0E), RUNE_C(0x000D10)}, + {RUNE_C(0x000D12), RUNE_C(0x000D3A)}, + {RUNE_C(0x000D3D), RUNE_C(0x000D3D)}, + {RUNE_C(0x000D4E), RUNE_C(0x000D4E)}, + {RUNE_C(0x000D54), RUNE_C(0x000D56)}, + {RUNE_C(0x000D5F), RUNE_C(0x000D61)}, + {RUNE_C(0x000D7A), RUNE_C(0x000D7F)}, + {RUNE_C(0x000D85), RUNE_C(0x000D96)}, + {RUNE_C(0x000D9A), RUNE_C(0x000DB1)}, + {RUNE_C(0x000DB3), RUNE_C(0x000DBB)}, + {RUNE_C(0x000DBD), RUNE_C(0x000DBD)}, + {RUNE_C(0x000DC0), RUNE_C(0x000DC6)}, + {RUNE_C(0x000E01), RUNE_C(0x000E30)}, + {RUNE_C(0x000E32), RUNE_C(0x000E32)}, + {RUNE_C(0x000E40), RUNE_C(0x000E46)}, + {RUNE_C(0x000E81), RUNE_C(0x000E82)}, + {RUNE_C(0x000E84), RUNE_C(0x000E84)}, + {RUNE_C(0x000E86), RUNE_C(0x000E8A)}, + {RUNE_C(0x000E8C), RUNE_C(0x000EA3)}, + {RUNE_C(0x000EA5), RUNE_C(0x000EA5)}, + {RUNE_C(0x000EA7), RUNE_C(0x000EB0)}, + {RUNE_C(0x000EB2), RUNE_C(0x000EB2)}, + {RUNE_C(0x000EBD), RUNE_C(0x000EBD)}, + {RUNE_C(0x000EC0), RUNE_C(0x000EC4)}, + {RUNE_C(0x000EC6), RUNE_C(0x000EC6)}, + {RUNE_C(0x000EDC), RUNE_C(0x000EDF)}, + {RUNE_C(0x000F00), RUNE_C(0x000F00)}, + {RUNE_C(0x000F40), RUNE_C(0x000F47)}, + {RUNE_C(0x000F49), RUNE_C(0x000F6C)}, + {RUNE_C(0x000F88), RUNE_C(0x000F8C)}, + {RUNE_C(0x001000), RUNE_C(0x00102A)}, + {RUNE_C(0x00103F), RUNE_C(0x00103F)}, + {RUNE_C(0x001050), RUNE_C(0x001055)}, + {RUNE_C(0x00105A), RUNE_C(0x00105D)}, + {RUNE_C(0x001061), RUNE_C(0x001061)}, + {RUNE_C(0x001065), RUNE_C(0x001066)}, + {RUNE_C(0x00106E), RUNE_C(0x001070)}, + {RUNE_C(0x001075), RUNE_C(0x001081)}, + {RUNE_C(0x00108E), RUNE_C(0x00108E)}, + {RUNE_C(0x0010A0), RUNE_C(0x0010C5)}, + {RUNE_C(0x0010C7), RUNE_C(0x0010C7)}, + {RUNE_C(0x0010CD), RUNE_C(0x0010CD)}, + {RUNE_C(0x0010D0), RUNE_C(0x0010FA)}, + {RUNE_C(0x0010FC), RUNE_C(0x001248)}, + {RUNE_C(0x00124A), RUNE_C(0x00124D)}, + {RUNE_C(0x001250), RUNE_C(0x001256)}, + {RUNE_C(0x001258), RUNE_C(0x001258)}, + {RUNE_C(0x00125A), RUNE_C(0x00125D)}, + {RUNE_C(0x001260), RUNE_C(0x001288)}, + {RUNE_C(0x00128A), RUNE_C(0x00128D)}, + {RUNE_C(0x001290), RUNE_C(0x0012B0)}, + {RUNE_C(0x0012B2), RUNE_C(0x0012B5)}, + {RUNE_C(0x0012B8), RUNE_C(0x0012BE)}, + {RUNE_C(0x0012C0), RUNE_C(0x0012C0)}, + {RUNE_C(0x0012C2), RUNE_C(0x0012C5)}, + {RUNE_C(0x0012C8), RUNE_C(0x0012D6)}, + {RUNE_C(0x0012D8), RUNE_C(0x001310)}, + {RUNE_C(0x001312), RUNE_C(0x001315)}, + {RUNE_C(0x001318), RUNE_C(0x00135A)}, + {RUNE_C(0x001380), RUNE_C(0x00138F)}, + {RUNE_C(0x0013A0), RUNE_C(0x0013F5)}, + {RUNE_C(0x0013F8), RUNE_C(0x0013FD)}, + {RUNE_C(0x001401), RUNE_C(0x00166C)}, + {RUNE_C(0x00166F), RUNE_C(0x00167F)}, + {RUNE_C(0x001681), RUNE_C(0x00169A)}, + {RUNE_C(0x0016A0), RUNE_C(0x0016EA)}, + {RUNE_C(0x0016EE), RUNE_C(0x0016F8)}, + {RUNE_C(0x001700), RUNE_C(0x001711)}, + {RUNE_C(0x00171F), RUNE_C(0x001731)}, + {RUNE_C(0x001740), RUNE_C(0x001751)}, + {RUNE_C(0x001760), RUNE_C(0x00176C)}, + {RUNE_C(0x00176E), RUNE_C(0x001770)}, + {RUNE_C(0x001780), RUNE_C(0x0017B3)}, + {RUNE_C(0x0017D7), RUNE_C(0x0017D7)}, + {RUNE_C(0x0017DC), RUNE_C(0x0017DC)}, + {RUNE_C(0x001820), RUNE_C(0x001878)}, + {RUNE_C(0x001880), RUNE_C(0x0018A8)}, + {RUNE_C(0x0018AA), RUNE_C(0x0018AA)}, + {RUNE_C(0x0018B0), RUNE_C(0x0018F5)}, + {RUNE_C(0x001900), RUNE_C(0x00191E)}, + {RUNE_C(0x001950), RUNE_C(0x00196D)}, + {RUNE_C(0x001970), RUNE_C(0x001974)}, + {RUNE_C(0x001980), RUNE_C(0x0019AB)}, + {RUNE_C(0x0019B0), RUNE_C(0x0019C9)}, + {RUNE_C(0x001A00), RUNE_C(0x001A16)}, + {RUNE_C(0x001A20), RUNE_C(0x001A54)}, + {RUNE_C(0x001AA7), RUNE_C(0x001AA7)}, + {RUNE_C(0x001B05), RUNE_C(0x001B33)}, + {RUNE_C(0x001B45), RUNE_C(0x001B4C)}, + {RUNE_C(0x001B83), RUNE_C(0x001BA0)}, + {RUNE_C(0x001BAE), RUNE_C(0x001BAF)}, + {RUNE_C(0x001BBA), RUNE_C(0x001BE5)}, + {RUNE_C(0x001C00), RUNE_C(0x001C23)}, + {RUNE_C(0x001C4D), RUNE_C(0x001C4F)}, + {RUNE_C(0x001C5A), RUNE_C(0x001C7D)}, + {RUNE_C(0x001C80), RUNE_C(0x001C88)}, + {RUNE_C(0x001C90), RUNE_C(0x001CBA)}, + {RUNE_C(0x001CBD), RUNE_C(0x001CBF)}, + {RUNE_C(0x001CE9), RUNE_C(0x001CEC)}, + {RUNE_C(0x001CEE), RUNE_C(0x001CF3)}, + {RUNE_C(0x001CF5), RUNE_C(0x001CF6)}, + {RUNE_C(0x001CFA), RUNE_C(0x001CFA)}, + {RUNE_C(0x001D00), RUNE_C(0x001DBF)}, + {RUNE_C(0x001E00), RUNE_C(0x001F15)}, + {RUNE_C(0x001F18), RUNE_C(0x001F1D)}, + {RUNE_C(0x001F20), RUNE_C(0x001F45)}, + {RUNE_C(0x001F48), RUNE_C(0x001F4D)}, + {RUNE_C(0x001F50), RUNE_C(0x001F57)}, + {RUNE_C(0x001F59), RUNE_C(0x001F59)}, + {RUNE_C(0x001F5B), RUNE_C(0x001F5B)}, + {RUNE_C(0x001F5D), RUNE_C(0x001F5D)}, + {RUNE_C(0x001F5F), RUNE_C(0x001F7D)}, + {RUNE_C(0x001F80), RUNE_C(0x001FB4)}, + {RUNE_C(0x001FB6), RUNE_C(0x001FBC)}, + {RUNE_C(0x001FBE), RUNE_C(0x001FBE)}, + {RUNE_C(0x001FC2), RUNE_C(0x001FC4)}, + {RUNE_C(0x001FC6), RUNE_C(0x001FCC)}, + {RUNE_C(0x001FD0), RUNE_C(0x001FD3)}, + {RUNE_C(0x001FD6), RUNE_C(0x001FDB)}, + {RUNE_C(0x001FE0), RUNE_C(0x001FEC)}, + {RUNE_C(0x001FF2), RUNE_C(0x001FF4)}, + {RUNE_C(0x001FF6), RUNE_C(0x001FFC)}, + {RUNE_C(0x002071), RUNE_C(0x002071)}, + {RUNE_C(0x00207F), RUNE_C(0x00207F)}, + {RUNE_C(0x002090), RUNE_C(0x00209C)}, + {RUNE_C(0x002102), RUNE_C(0x002102)}, + {RUNE_C(0x002107), RUNE_C(0x002107)}, + {RUNE_C(0x00210A), RUNE_C(0x002113)}, + {RUNE_C(0x002115), RUNE_C(0x002115)}, + {RUNE_C(0x002118), RUNE_C(0x00211D)}, + {RUNE_C(0x002124), RUNE_C(0x002124)}, + {RUNE_C(0x002126), RUNE_C(0x002126)}, + {RUNE_C(0x002128), RUNE_C(0x002128)}, + {RUNE_C(0x00212A), RUNE_C(0x002139)}, + {RUNE_C(0x00213C), RUNE_C(0x00213F)}, + {RUNE_C(0x002145), RUNE_C(0x002149)}, + {RUNE_C(0x00214E), RUNE_C(0x00214E)}, + {RUNE_C(0x002160), RUNE_C(0x002188)}, + {RUNE_C(0x002C00), RUNE_C(0x002CE4)}, + {RUNE_C(0x002CEB), RUNE_C(0x002CEE)}, + {RUNE_C(0x002CF2), RUNE_C(0x002CF3)}, + {RUNE_C(0x002D00), RUNE_C(0x002D25)}, + {RUNE_C(0x002D27), RUNE_C(0x002D27)}, + {RUNE_C(0x002D2D), RUNE_C(0x002D2D)}, + {RUNE_C(0x002D30), RUNE_C(0x002D67)}, + {RUNE_C(0x002D6F), RUNE_C(0x002D6F)}, + {RUNE_C(0x002D80), RUNE_C(0x002D96)}, + {RUNE_C(0x002DA0), RUNE_C(0x002DA6)}, + {RUNE_C(0x002DA8), RUNE_C(0x002DAE)}, + {RUNE_C(0x002DB0), RUNE_C(0x002DB6)}, + {RUNE_C(0x002DB8), RUNE_C(0x002DBE)}, + {RUNE_C(0x002DC0), RUNE_C(0x002DC6)}, + {RUNE_C(0x002DC8), RUNE_C(0x002DCE)}, + {RUNE_C(0x002DD0), RUNE_C(0x002DD6)}, + {RUNE_C(0x002DD8), RUNE_C(0x002DDE)}, + {RUNE_C(0x003005), RUNE_C(0x003007)}, + {RUNE_C(0x003021), RUNE_C(0x003029)}, + {RUNE_C(0x003031), RUNE_C(0x003035)}, + {RUNE_C(0x003038), RUNE_C(0x00303C)}, + {RUNE_C(0x003041), RUNE_C(0x003096)}, + {RUNE_C(0x00309D), RUNE_C(0x00309F)}, + {RUNE_C(0x0030A1), RUNE_C(0x0030FA)}, + {RUNE_C(0x0030FC), RUNE_C(0x0030FF)}, + {RUNE_C(0x003105), RUNE_C(0x00312F)}, + {RUNE_C(0x003131), RUNE_C(0x00318E)}, + {RUNE_C(0x0031A0), RUNE_C(0x0031BF)}, + {RUNE_C(0x0031F0), RUNE_C(0x0031FF)}, + {RUNE_C(0x003400), RUNE_C(0x004DBF)}, + {RUNE_C(0x004E00), RUNE_C(0x00A48C)}, + {RUNE_C(0x00A4D0), RUNE_C(0x00A4FD)}, + {RUNE_C(0x00A500), RUNE_C(0x00A60C)}, + {RUNE_C(0x00A610), RUNE_C(0x00A61F)}, + {RUNE_C(0x00A62A), RUNE_C(0x00A62B)}, + {RUNE_C(0x00A640), RUNE_C(0x00A66E)}, + {RUNE_C(0x00A67F), RUNE_C(0x00A69D)}, + {RUNE_C(0x00A6A0), RUNE_C(0x00A6EF)}, + {RUNE_C(0x00A717), RUNE_C(0x00A71F)}, + {RUNE_C(0x00A722), RUNE_C(0x00A788)}, + {RUNE_C(0x00A78B), RUNE_C(0x00A7CA)}, + {RUNE_C(0x00A7D0), RUNE_C(0x00A7D1)}, + {RUNE_C(0x00A7D3), RUNE_C(0x00A7D3)}, + {RUNE_C(0x00A7D5), RUNE_C(0x00A7D9)}, + {RUNE_C(0x00A7F2), RUNE_C(0x00A801)}, + {RUNE_C(0x00A803), RUNE_C(0x00A805)}, + {RUNE_C(0x00A807), RUNE_C(0x00A80A)}, + {RUNE_C(0x00A80C), RUNE_C(0x00A822)}, + {RUNE_C(0x00A840), RUNE_C(0x00A873)}, + {RUNE_C(0x00A882), RUNE_C(0x00A8B3)}, + {RUNE_C(0x00A8F2), RUNE_C(0x00A8F7)}, + {RUNE_C(0x00A8FB), RUNE_C(0x00A8FB)}, + {RUNE_C(0x00A8FD), RUNE_C(0x00A8FE)}, + {RUNE_C(0x00A90A), RUNE_C(0x00A925)}, + {RUNE_C(0x00A930), RUNE_C(0x00A946)}, + {RUNE_C(0x00A960), RUNE_C(0x00A97C)}, + {RUNE_C(0x00A984), RUNE_C(0x00A9B2)}, + {RUNE_C(0x00A9CF), RUNE_C(0x00A9CF)}, + {RUNE_C(0x00A9E0), RUNE_C(0x00A9E4)}, + {RUNE_C(0x00A9E6), RUNE_C(0x00A9EF)}, + {RUNE_C(0x00A9FA), RUNE_C(0x00A9FE)}, + {RUNE_C(0x00AA00), RUNE_C(0x00AA28)}, + {RUNE_C(0x00AA40), RUNE_C(0x00AA42)}, + {RUNE_C(0x00AA44), RUNE_C(0x00AA4B)}, + {RUNE_C(0x00AA60), RUNE_C(0x00AA76)}, + {RUNE_C(0x00AA7A), RUNE_C(0x00AA7A)}, + {RUNE_C(0x00AA7E), RUNE_C(0x00AAAF)}, + {RUNE_C(0x00AAB1), RUNE_C(0x00AAB1)}, + {RUNE_C(0x00AAB5), RUNE_C(0x00AAB6)}, + {RUNE_C(0x00AAB9), RUNE_C(0x00AABD)}, + {RUNE_C(0x00AAC0), RUNE_C(0x00AAC0)}, + {RUNE_C(0x00AAC2), RUNE_C(0x00AAC2)}, + {RUNE_C(0x00AADB), RUNE_C(0x00AADD)}, + {RUNE_C(0x00AAE0), RUNE_C(0x00AAEA)}, + {RUNE_C(0x00AAF2), RUNE_C(0x00AAF4)}, + {RUNE_C(0x00AB01), RUNE_C(0x00AB06)}, + {RUNE_C(0x00AB09), RUNE_C(0x00AB0E)}, + {RUNE_C(0x00AB11), RUNE_C(0x00AB16)}, + {RUNE_C(0x00AB20), RUNE_C(0x00AB26)}, + {RUNE_C(0x00AB28), RUNE_C(0x00AB2E)}, + {RUNE_C(0x00AB30), RUNE_C(0x00AB5A)}, + {RUNE_C(0x00AB5C), RUNE_C(0x00AB69)}, + {RUNE_C(0x00AB70), RUNE_C(0x00ABE2)}, + {RUNE_C(0x00AC00), RUNE_C(0x00D7A3)}, + {RUNE_C(0x00D7B0), RUNE_C(0x00D7C6)}, + {RUNE_C(0x00D7CB), RUNE_C(0x00D7FB)}, + {RUNE_C(0x00F900), RUNE_C(0x00FA6D)}, + {RUNE_C(0x00FA70), RUNE_C(0x00FAD9)}, + {RUNE_C(0x00FB00), RUNE_C(0x00FB06)}, + {RUNE_C(0x00FB13), RUNE_C(0x00FB17)}, + {RUNE_C(0x00FB1D), RUNE_C(0x00FB1D)}, + {RUNE_C(0x00FB1F), RUNE_C(0x00FB28)}, + {RUNE_C(0x00FB2A), RUNE_C(0x00FB36)}, + {RUNE_C(0x00FB38), RUNE_C(0x00FB3C)}, + {RUNE_C(0x00FB3E), RUNE_C(0x00FB3E)}, + {RUNE_C(0x00FB40), RUNE_C(0x00FB41)}, + {RUNE_C(0x00FB43), RUNE_C(0x00FB44)}, + {RUNE_C(0x00FB46), RUNE_C(0x00FBB1)}, + {RUNE_C(0x00FBD3), RUNE_C(0x00FC5D)}, + {RUNE_C(0x00FC64), RUNE_C(0x00FD3D)}, + {RUNE_C(0x00FD50), RUNE_C(0x00FD8F)}, + {RUNE_C(0x00FD92), RUNE_C(0x00FDC7)}, + {RUNE_C(0x00FDF0), RUNE_C(0x00FDF9)}, + {RUNE_C(0x00FE71), RUNE_C(0x00FE71)}, + {RUNE_C(0x00FE73), RUNE_C(0x00FE73)}, + {RUNE_C(0x00FE77), RUNE_C(0x00FE77)}, + {RUNE_C(0x00FE79), RUNE_C(0x00FE79)}, + {RUNE_C(0x00FE7B), RUNE_C(0x00FE7B)}, + {RUNE_C(0x00FE7D), RUNE_C(0x00FE7D)}, + {RUNE_C(0x00FE7F), RUNE_C(0x00FEFC)}, + {RUNE_C(0x00FF21), RUNE_C(0x00FF3A)}, + {RUNE_C(0x00FF41), RUNE_C(0x00FF5A)}, + {RUNE_C(0x00FF66), RUNE_C(0x00FF9D)}, + {RUNE_C(0x00FFA0), RUNE_C(0x00FFBE)}, + {RUNE_C(0x00FFC2), RUNE_C(0x00FFC7)}, + {RUNE_C(0x00FFCA), RUNE_C(0x00FFCF)}, + {RUNE_C(0x00FFD2), RUNE_C(0x00FFD7)}, + {RUNE_C(0x00FFDA), RUNE_C(0x00FFDC)}, + {RUNE_C(0x010000), RUNE_C(0x01000B)}, + {RUNE_C(0x01000D), RUNE_C(0x010026)}, + {RUNE_C(0x010028), RUNE_C(0x01003A)}, + {RUNE_C(0x01003C), RUNE_C(0x01003D)}, + {RUNE_C(0x01003F), RUNE_C(0x01004D)}, + {RUNE_C(0x010050), RUNE_C(0x01005D)}, + {RUNE_C(0x010080), RUNE_C(0x0100FA)}, + {RUNE_C(0x010140), RUNE_C(0x010174)}, + {RUNE_C(0x010280), RUNE_C(0x01029C)}, + {RUNE_C(0x0102A0), RUNE_C(0x0102D0)}, + {RUNE_C(0x010300), RUNE_C(0x01031F)}, + {RUNE_C(0x01032D), RUNE_C(0x01034A)}, + {RUNE_C(0x010350), RUNE_C(0x010375)}, + {RUNE_C(0x010380), RUNE_C(0x01039D)}, + {RUNE_C(0x0103A0), RUNE_C(0x0103C3)}, + {RUNE_C(0x0103C8), RUNE_C(0x0103CF)}, + {RUNE_C(0x0103D1), RUNE_C(0x0103D5)}, + {RUNE_C(0x010400), RUNE_C(0x01049D)}, + {RUNE_C(0x0104B0), RUNE_C(0x0104D3)}, + {RUNE_C(0x0104D8), RUNE_C(0x0104FB)}, + {RUNE_C(0x010500), RUNE_C(0x010527)}, + {RUNE_C(0x010530), RUNE_C(0x010563)}, + {RUNE_C(0x010570), RUNE_C(0x01057A)}, + {RUNE_C(0x01057C), RUNE_C(0x01058A)}, + {RUNE_C(0x01058C), RUNE_C(0x010592)}, + {RUNE_C(0x010594), RUNE_C(0x010595)}, + {RUNE_C(0x010597), RUNE_C(0x0105A1)}, + {RUNE_C(0x0105A3), RUNE_C(0x0105B1)}, + {RUNE_C(0x0105B3), RUNE_C(0x0105B9)}, + {RUNE_C(0x0105BB), RUNE_C(0x0105BC)}, + {RUNE_C(0x010600), RUNE_C(0x010736)}, + {RUNE_C(0x010740), RUNE_C(0x010755)}, + {RUNE_C(0x010760), RUNE_C(0x010767)}, + {RUNE_C(0x010780), RUNE_C(0x010785)}, + {RUNE_C(0x010787), RUNE_C(0x0107B0)}, + {RUNE_C(0x0107B2), RUNE_C(0x0107BA)}, + {RUNE_C(0x010800), RUNE_C(0x010805)}, + {RUNE_C(0x010808), RUNE_C(0x010808)}, + {RUNE_C(0x01080A), RUNE_C(0x010835)}, + {RUNE_C(0x010837), RUNE_C(0x010838)}, + {RUNE_C(0x01083C), RUNE_C(0x01083C)}, + {RUNE_C(0x01083F), RUNE_C(0x010855)}, + {RUNE_C(0x010860), RUNE_C(0x010876)}, + {RUNE_C(0x010880), RUNE_C(0x01089E)}, + {RUNE_C(0x0108E0), RUNE_C(0x0108F2)}, + {RUNE_C(0x0108F4), RUNE_C(0x0108F5)}, + {RUNE_C(0x010900), RUNE_C(0x010915)}, + {RUNE_C(0x010920), RUNE_C(0x010939)}, + {RUNE_C(0x010980), RUNE_C(0x0109B7)}, + {RUNE_C(0x0109BE), RUNE_C(0x0109BF)}, + {RUNE_C(0x010A00), RUNE_C(0x010A00)}, + {RUNE_C(0x010A10), RUNE_C(0x010A13)}, + {RUNE_C(0x010A15), RUNE_C(0x010A17)}, + {RUNE_C(0x010A19), RUNE_C(0x010A35)}, + {RUNE_C(0x010A60), RUNE_C(0x010A7C)}, + {RUNE_C(0x010A80), RUNE_C(0x010A9C)}, + {RUNE_C(0x010AC0), RUNE_C(0x010AC7)}, + {RUNE_C(0x010AC9), RUNE_C(0x010AE4)}, + {RUNE_C(0x010B00), RUNE_C(0x010B35)}, + {RUNE_C(0x010B40), RUNE_C(0x010B55)}, + {RUNE_C(0x010B60), RUNE_C(0x010B72)}, + {RUNE_C(0x010B80), RUNE_C(0x010B91)}, + {RUNE_C(0x010C00), RUNE_C(0x010C48)}, + {RUNE_C(0x010C80), RUNE_C(0x010CB2)}, + {RUNE_C(0x010CC0), RUNE_C(0x010CF2)}, + {RUNE_C(0x010D00), RUNE_C(0x010D23)}, + {RUNE_C(0x010E80), RUNE_C(0x010EA9)}, + {RUNE_C(0x010EB0), RUNE_C(0x010EB1)}, + {RUNE_C(0x010F00), RUNE_C(0x010F1C)}, + {RUNE_C(0x010F27), RUNE_C(0x010F27)}, + {RUNE_C(0x010F30), RUNE_C(0x010F45)}, + {RUNE_C(0x010F70), RUNE_C(0x010F81)}, + {RUNE_C(0x010FB0), RUNE_C(0x010FC4)}, + {RUNE_C(0x010FE0), RUNE_C(0x010FF6)}, + {RUNE_C(0x011003), RUNE_C(0x011037)}, + {RUNE_C(0x011071), RUNE_C(0x011072)}, + {RUNE_C(0x011075), RUNE_C(0x011075)}, + {RUNE_C(0x011083), RUNE_C(0x0110AF)}, + {RUNE_C(0x0110D0), RUNE_C(0x0110E8)}, + {RUNE_C(0x011103), RUNE_C(0x011126)}, + {RUNE_C(0x011144), RUNE_C(0x011144)}, + {RUNE_C(0x011147), RUNE_C(0x011147)}, + {RUNE_C(0x011150), RUNE_C(0x011172)}, + {RUNE_C(0x011176), RUNE_C(0x011176)}, + {RUNE_C(0x011183), RUNE_C(0x0111B2)}, + {RUNE_C(0x0111C1), RUNE_C(0x0111C4)}, + {RUNE_C(0x0111DA), RUNE_C(0x0111DA)}, + {RUNE_C(0x0111DC), RUNE_C(0x0111DC)}, + {RUNE_C(0x011200), RUNE_C(0x011211)}, + {RUNE_C(0x011213), RUNE_C(0x01122B)}, + {RUNE_C(0x01123F), RUNE_C(0x011240)}, + {RUNE_C(0x011280), RUNE_C(0x011286)}, + {RUNE_C(0x011288), RUNE_C(0x011288)}, + {RUNE_C(0x01128A), RUNE_C(0x01128D)}, + {RUNE_C(0x01128F), RUNE_C(0x01129D)}, + {RUNE_C(0x01129F), RUNE_C(0x0112A8)}, + {RUNE_C(0x0112B0), RUNE_C(0x0112DE)}, + {RUNE_C(0x011305), RUNE_C(0x01130C)}, + {RUNE_C(0x01130F), RUNE_C(0x011310)}, + {RUNE_C(0x011313), RUNE_C(0x011328)}, + {RUNE_C(0x01132A), RUNE_C(0x011330)}, + {RUNE_C(0x011332), RUNE_C(0x011333)}, + {RUNE_C(0x011335), RUNE_C(0x011339)}, + {RUNE_C(0x01133D), RUNE_C(0x01133D)}, + {RUNE_C(0x011350), RUNE_C(0x011350)}, + {RUNE_C(0x01135D), RUNE_C(0x011361)}, + {RUNE_C(0x011400), RUNE_C(0x011434)}, + {RUNE_C(0x011447), RUNE_C(0x01144A)}, + {RUNE_C(0x01145F), RUNE_C(0x011461)}, + {RUNE_C(0x011480), RUNE_C(0x0114AF)}, + {RUNE_C(0x0114C4), RUNE_C(0x0114C5)}, + {RUNE_C(0x0114C7), RUNE_C(0x0114C7)}, + {RUNE_C(0x011580), RUNE_C(0x0115AE)}, + {RUNE_C(0x0115D8), RUNE_C(0x0115DB)}, + {RUNE_C(0x011600), RUNE_C(0x01162F)}, + {RUNE_C(0x011644), RUNE_C(0x011644)}, + {RUNE_C(0x011680), RUNE_C(0x0116AA)}, + {RUNE_C(0x0116B8), RUNE_C(0x0116B8)}, + {RUNE_C(0x011700), RUNE_C(0x01171A)}, + {RUNE_C(0x011740), RUNE_C(0x011746)}, + {RUNE_C(0x011800), RUNE_C(0x01182B)}, + {RUNE_C(0x0118A0), RUNE_C(0x0118DF)}, + {RUNE_C(0x0118FF), RUNE_C(0x011906)}, + {RUNE_C(0x011909), RUNE_C(0x011909)}, + {RUNE_C(0x01190C), RUNE_C(0x011913)}, + {RUNE_C(0x011915), RUNE_C(0x011916)}, + {RUNE_C(0x011918), RUNE_C(0x01192F)}, + {RUNE_C(0x01193F), RUNE_C(0x01193F)}, + {RUNE_C(0x011941), RUNE_C(0x011941)}, + {RUNE_C(0x0119A0), RUNE_C(0x0119A7)}, + {RUNE_C(0x0119AA), RUNE_C(0x0119D0)}, + {RUNE_C(0x0119E1), RUNE_C(0x0119E1)}, + {RUNE_C(0x0119E3), RUNE_C(0x0119E3)}, + {RUNE_C(0x011A00), RUNE_C(0x011A00)}, + {RUNE_C(0x011A0B), RUNE_C(0x011A32)}, + {RUNE_C(0x011A3A), RUNE_C(0x011A3A)}, + {RUNE_C(0x011A50), RUNE_C(0x011A50)}, + {RUNE_C(0x011A5C), RUNE_C(0x011A89)}, + {RUNE_C(0x011A9D), RUNE_C(0x011A9D)}, + {RUNE_C(0x011AB0), RUNE_C(0x011AF8)}, + {RUNE_C(0x011C00), RUNE_C(0x011C08)}, + {RUNE_C(0x011C0A), RUNE_C(0x011C2E)}, + {RUNE_C(0x011C40), RUNE_C(0x011C40)}, + {RUNE_C(0x011C72), RUNE_C(0x011C8F)}, + {RUNE_C(0x011D00), RUNE_C(0x011D06)}, + {RUNE_C(0x011D08), RUNE_C(0x011D09)}, + {RUNE_C(0x011D0B), RUNE_C(0x011D30)}, + {RUNE_C(0x011D46), RUNE_C(0x011D46)}, + {RUNE_C(0x011D60), RUNE_C(0x011D65)}, + {RUNE_C(0x011D67), RUNE_C(0x011D68)}, + {RUNE_C(0x011D6A), RUNE_C(0x011D89)}, + {RUNE_C(0x011D98), RUNE_C(0x011D98)}, + {RUNE_C(0x011EE0), RUNE_C(0x011EF2)}, + {RUNE_C(0x011F02), RUNE_C(0x011F02)}, + {RUNE_C(0x011F04), RUNE_C(0x011F10)}, + {RUNE_C(0x011F12), RUNE_C(0x011F33)}, + {RUNE_C(0x011FB0), RUNE_C(0x011FB0)}, + {RUNE_C(0x012000), RUNE_C(0x012399)}, + {RUNE_C(0x012400), RUNE_C(0x01246E)}, + {RUNE_C(0x012480), RUNE_C(0x012543)}, + {RUNE_C(0x012F90), RUNE_C(0x012FF0)}, + {RUNE_C(0x013000), RUNE_C(0x01342F)}, + {RUNE_C(0x013441), RUNE_C(0x013446)}, + {RUNE_C(0x014400), RUNE_C(0x014646)}, + {RUNE_C(0x016800), RUNE_C(0x016A38)}, + {RUNE_C(0x016A40), RUNE_C(0x016A5E)}, + {RUNE_C(0x016A70), RUNE_C(0x016ABE)}, + {RUNE_C(0x016AD0), RUNE_C(0x016AED)}, + {RUNE_C(0x016B00), RUNE_C(0x016B2F)}, + {RUNE_C(0x016B40), RUNE_C(0x016B43)}, + {RUNE_C(0x016B63), RUNE_C(0x016B77)}, + {RUNE_C(0x016B7D), RUNE_C(0x016B8F)}, + {RUNE_C(0x016E40), RUNE_C(0x016E7F)}, + {RUNE_C(0x016F00), RUNE_C(0x016F4A)}, + {RUNE_C(0x016F50), RUNE_C(0x016F50)}, + {RUNE_C(0x016F93), RUNE_C(0x016F9F)}, + {RUNE_C(0x016FE0), RUNE_C(0x016FE1)}, + {RUNE_C(0x016FE3), RUNE_C(0x016FE3)}, + {RUNE_C(0x017000), RUNE_C(0x0187F7)}, + {RUNE_C(0x018800), RUNE_C(0x018CD5)}, + {RUNE_C(0x018D00), RUNE_C(0x018D08)}, + {RUNE_C(0x01AFF0), RUNE_C(0x01AFF3)}, + {RUNE_C(0x01AFF5), RUNE_C(0x01AFFB)}, + {RUNE_C(0x01AFFD), RUNE_C(0x01AFFE)}, + {RUNE_C(0x01B000), RUNE_C(0x01B122)}, + {RUNE_C(0x01B132), RUNE_C(0x01B132)}, + {RUNE_C(0x01B150), RUNE_C(0x01B152)}, + {RUNE_C(0x01B155), RUNE_C(0x01B155)}, + {RUNE_C(0x01B164), RUNE_C(0x01B167)}, + {RUNE_C(0x01B170), RUNE_C(0x01B2FB)}, + {RUNE_C(0x01BC00), RUNE_C(0x01BC6A)}, + {RUNE_C(0x01BC70), RUNE_C(0x01BC7C)}, + {RUNE_C(0x01BC80), RUNE_C(0x01BC88)}, + {RUNE_C(0x01BC90), RUNE_C(0x01BC99)}, + {RUNE_C(0x01D400), RUNE_C(0x01D454)}, + {RUNE_C(0x01D456), RUNE_C(0x01D49C)}, + {RUNE_C(0x01D49E), RUNE_C(0x01D49F)}, + {RUNE_C(0x01D4A2), RUNE_C(0x01D4A2)}, + {RUNE_C(0x01D4A5), RUNE_C(0x01D4A6)}, + {RUNE_C(0x01D4A9), RUNE_C(0x01D4AC)}, + {RUNE_C(0x01D4AE), RUNE_C(0x01D4B9)}, + {RUNE_C(0x01D4BB), RUNE_C(0x01D4BB)}, + {RUNE_C(0x01D4BD), RUNE_C(0x01D4C3)}, + {RUNE_C(0x01D4C5), RUNE_C(0x01D505)}, + {RUNE_C(0x01D507), RUNE_C(0x01D50A)}, + {RUNE_C(0x01D50D), RUNE_C(0x01D514)}, + {RUNE_C(0x01D516), RUNE_C(0x01D51C)}, + {RUNE_C(0x01D51E), RUNE_C(0x01D539)}, + {RUNE_C(0x01D53B), RUNE_C(0x01D53E)}, + {RUNE_C(0x01D540), RUNE_C(0x01D544)}, + {RUNE_C(0x01D546), RUNE_C(0x01D546)}, + {RUNE_C(0x01D54A), RUNE_C(0x01D550)}, + {RUNE_C(0x01D552), RUNE_C(0x01D6A5)}, + {RUNE_C(0x01D6A8), RUNE_C(0x01D6C0)}, + {RUNE_C(0x01D6C2), RUNE_C(0x01D6DA)}, + {RUNE_C(0x01D6DC), RUNE_C(0x01D6FA)}, + {RUNE_C(0x01D6FC), RUNE_C(0x01D714)}, + {RUNE_C(0x01D716), RUNE_C(0x01D734)}, + {RUNE_C(0x01D736), RUNE_C(0x01D74E)}, + {RUNE_C(0x01D750), RUNE_C(0x01D76E)}, + {RUNE_C(0x01D770), RUNE_C(0x01D788)}, + {RUNE_C(0x01D78A), RUNE_C(0x01D7A8)}, + {RUNE_C(0x01D7AA), RUNE_C(0x01D7C2)}, + {RUNE_C(0x01D7C4), RUNE_C(0x01D7CB)}, + {RUNE_C(0x01DF00), RUNE_C(0x01DF1E)}, + {RUNE_C(0x01DF25), RUNE_C(0x01DF2A)}, + {RUNE_C(0x01E030), RUNE_C(0x01E06D)}, + {RUNE_C(0x01E100), RUNE_C(0x01E12C)}, + {RUNE_C(0x01E137), RUNE_C(0x01E13D)}, + {RUNE_C(0x01E14E), RUNE_C(0x01E14E)}, + {RUNE_C(0x01E290), RUNE_C(0x01E2AD)}, + {RUNE_C(0x01E2C0), RUNE_C(0x01E2EB)}, + {RUNE_C(0x01E4D0), RUNE_C(0x01E4EB)}, + {RUNE_C(0x01E7E0), RUNE_C(0x01E7E6)}, + {RUNE_C(0x01E7E8), RUNE_C(0x01E7EB)}, + {RUNE_C(0x01E7ED), RUNE_C(0x01E7EE)}, + {RUNE_C(0x01E7F0), RUNE_C(0x01E7FE)}, + {RUNE_C(0x01E800), RUNE_C(0x01E8C4)}, + {RUNE_C(0x01E900), RUNE_C(0x01E943)}, + {RUNE_C(0x01E94B), RUNE_C(0x01E94B)}, + {RUNE_C(0x01EE00), RUNE_C(0x01EE03)}, + {RUNE_C(0x01EE05), RUNE_C(0x01EE1F)}, + {RUNE_C(0x01EE21), RUNE_C(0x01EE22)}, + {RUNE_C(0x01EE24), RUNE_C(0x01EE24)}, + {RUNE_C(0x01EE27), RUNE_C(0x01EE27)}, + {RUNE_C(0x01EE29), RUNE_C(0x01EE32)}, + {RUNE_C(0x01EE34), RUNE_C(0x01EE37)}, + {RUNE_C(0x01EE39), RUNE_C(0x01EE39)}, + {RUNE_C(0x01EE3B), RUNE_C(0x01EE3B)}, + {RUNE_C(0x01EE42), RUNE_C(0x01EE42)}, + {RUNE_C(0x01EE47), RUNE_C(0x01EE47)}, + {RUNE_C(0x01EE49), RUNE_C(0x01EE49)}, + {RUNE_C(0x01EE4B), RUNE_C(0x01EE4B)}, + {RUNE_C(0x01EE4D), RUNE_C(0x01EE4F)}, + {RUNE_C(0x01EE51), RUNE_C(0x01EE52)}, + {RUNE_C(0x01EE54), RUNE_C(0x01EE54)}, + {RUNE_C(0x01EE57), RUNE_C(0x01EE57)}, + {RUNE_C(0x01EE59), RUNE_C(0x01EE59)}, + {RUNE_C(0x01EE5B), RUNE_C(0x01EE5B)}, + {RUNE_C(0x01EE5D), RUNE_C(0x01EE5D)}, + {RUNE_C(0x01EE5F), RUNE_C(0x01EE5F)}, + {RUNE_C(0x01EE61), RUNE_C(0x01EE62)}, + {RUNE_C(0x01EE64), RUNE_C(0x01EE64)}, + {RUNE_C(0x01EE67), RUNE_C(0x01EE6A)}, + {RUNE_C(0x01EE6C), RUNE_C(0x01EE72)}, + {RUNE_C(0x01EE74), RUNE_C(0x01EE77)}, + {RUNE_C(0x01EE79), RUNE_C(0x01EE7C)}, + {RUNE_C(0x01EE7E), RUNE_C(0x01EE7E)}, + {RUNE_C(0x01EE80), RUNE_C(0x01EE89)}, + {RUNE_C(0x01EE8B), RUNE_C(0x01EE9B)}, + {RUNE_C(0x01EEA1), RUNE_C(0x01EEA3)}, + {RUNE_C(0x01EEA5), RUNE_C(0x01EEA9)}, + {RUNE_C(0x01EEAB), RUNE_C(0x01EEBB)}, + {RUNE_C(0x020000), RUNE_C(0x02A6DF)}, + {RUNE_C(0x02A700), RUNE_C(0x02B739)}, + {RUNE_C(0x02B740), RUNE_C(0x02B81D)}, + {RUNE_C(0x02B820), RUNE_C(0x02CEA1)}, + {RUNE_C(0x02CEB0), RUNE_C(0x02EBE0)}, + {RUNE_C(0x02EBF0), RUNE_C(0x02EE5D)}, + {RUNE_C(0x02F800), RUNE_C(0x02FA1D)}, + {RUNE_C(0x030000), RUNE_C(0x03134A)}, + {RUNE_C(0x031350), RUNE_C(0x0323AF)}, +}; + +#define TYPE bool +#define TABLE lookup_tbl +#define DEFAULT false +#define HAS_VALUE 0 +#include "internal/rtype/lookup-func.h" + +bool +rprop_is_xids(rune ch) +{ + return +#if BIT_LOOKUP + ch <= LATIN1_MAX ? (mask & (1 << ch)) : +#endif + lookup(ch); +} diff --git a/vendor/librune/make.c b/vendor/librune/make.c new file mode 100644 index 0000000..6f59825 --- /dev/null +++ b/vendor/librune/make.c @@ -0,0 +1,159 @@ +#define _GNU_SOURCE +#include <ctype.h> +#include <errno.h> +#include <glob.h> +#include <libgen.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#define CBS_PTHREAD +#include "cbs.h" + +#define CC "cc" +#define WARNINGS "-Wall", "-Wextra", "-Wpedantic", "-Werror", "-Wno-attributes" +#define CFLAGS_ALL WARNINGS, "-pipe", "-std=c2x" +#define CFLAGS_DBG CFLAGS_ALL, "-g", "-ggdb3", "-Og" +#ifdef __APPLE__ +# define CFLAGS_RLS CFLAGS_ALL, "-O3" +#else +# define CFLAGS_RLS CFLAGS_ALL, "-O3", "-march=native", "-mtune=native" +#endif + +#define _CMDPRC(C, F) \ + do { \ + int ec; \ + F(C); \ + if ((ec = cmdexec(C)) != EXIT_SUCCESS) \ + diex("%s terminated with exit-code %d", *(C)._argv, ec); \ + cmdclr(&(C)); \ + } while (0) +#define CMDPRC(C) _CMDPRC(C, cmdput) +#define CMDPRC2(C) _CMDPRC(C, cmdput) + +#define streq(a, b) (!strcmp(a, b)) + +#define flagset(o) (flags & (1 << ((o) - 'a'))) + +static void work(void *); +static int globerr(const char *, int); +static void cmdput2(cmd_t); + +static uint32_t flags; + +int +main(int argc, char **argv) +{ + int opt; + + cbsinit(argc, argv); + rebuild(); + + while ((opt = getopt(argc, argv, "flr")) != -1) { + switch (opt) { + case '?': + fprintf(stderr, "Usage: %s [-flr]\n", *argv); + exit(EXIT_FAILURE); + default: + flags |= 1 << (opt - 'a'); + } + } + + argc -= optind; + argv += optind; + + if (argc >= 1) { + if (streq(*argv, "clean")) { + cmd_t c = {0}; + cmdadd(&c, "find", ".", "-name", "*.[ao]", "-delete"); + CMDPRC(c); + } else { + diex("invalid subcommand -- '%s'", *argv); + exit(EXIT_FAILURE); + } + } else { + cmd_t c = {0}; + size_t n; + glob_t g; + tpool_t tp; + + if (glob("lib/*/*.c", 0, globerr, &g)) + die("glob"); + + if ((n = nproc()) == -1) { + if (errno) + die("nproc"); + n = 8; + } + + tpinit(&tp, n); + for (size_t i = 0; i < g.gl_pathc; i++) + tpenq(&tp, work, g.gl_pathv[i], NULL); + tpwait(&tp); + tpfree(&tp); + + for (size_t i = 0; i < g.gl_pathc; i++) + g.gl_pathv[i][strlen(g.gl_pathv[i]) - 1] = 'o'; + + if (flagset('f') + || foutdatedv("librune.a", (const char **)g.gl_pathv, g.gl_pathc)) + { + c.dst = "librune.a"; + cmdadd(&c, "ar", "rcs", "librune.a"); + cmdaddv(&c, g.gl_pathv, g.gl_pathc); + CMDPRC2(c); + } + + globfree(&g); + } + + return EXIT_SUCCESS; +} + +void +work(void *p) +{ + cmd_t c = {0}; + char *src = p; + struct strv sv = {0}; + + if (!(c.dst = strdup(src))) + die("strdup"); + c.dst[strlen(c.dst) - 1] = 'o'; + + if (flagset('f') || foutdated(c.dst, src)) { + env_or_default(&sv, "CC", CC); + if (flagset('r')) + env_or_default(&sv, "CFLAGS", CFLAGS_RLS); + else + env_or_default(&sv, "CFLAGS", CFLAGS_DBG); + cmdaddv(&c, sv.buf, sv.len); + if (flagset('l')) + cmdadd(&c, "-flto"); + cmdadd(&c, "-Iinclude", "-fPIC", "-o", c.dst, "-c", src); + CMDPRC2(c); + } + + free(c.dst); +} + +int +globerr(const char *s, int e) +{ + errno = e; + die("glob: %s", s); +} + +void +cmdput2(cmd_t c) +{ + const char *p; + + flockfile(stderr); + for (p = *c._argv; *p; p++) + fputc(toupper(*p), stderr); + fprintf(stderr, "\t%s\n", c.dst); + funlockfile(stderr); +} diff --git a/vendor/librune/man/Lb-desc.tmac b/vendor/librune/man/Lb-desc.tmac new file mode 100644 index 0000000..1ec8f8f --- /dev/null +++ b/vendor/librune/man/Lb-desc.tmac @@ -0,0 +1 @@ +.ds doc-str-Lb-librune Unicode- and UTF-8 Library (librune, \-lrune) diff --git a/vendor/librune/man/rtou8.3 b/vendor/librune/man/rtou8.3 new file mode 100644 index 0000000..a83d3e8 --- /dev/null +++ b/vendor/librune/man/rtou8.3 @@ -0,0 +1 @@ +.so u8set.3 diff --git a/vendor/librune/man/u8glen.3 b/vendor/librune/man/u8glen.3 new file mode 100644 index 0000000..dfe0283 --- /dev/null +++ b/vendor/librune/man/u8glen.3 @@ -0,0 +1,62 @@ +.Dd January 15 2024 +.Dt U8GLEN 3 +.Os +.Sh NAME +.Nm u8glen +.Nd count Unicode graphemes +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In gbrk.h +.Ft size_t +.Fn u8glen "const char8_t *s" "size_t n" +.Sh DESCRIPTION +The +.Fn u8glen +function returns the number of UTF-8 encoded Unicode graphemes in the +buffer +.Fa s +of length +.Fa n +bytes. +.Pp +This function assumes that +.Fa s +contains only valid UTF-8. +.Sh RETURN VALUES +The +.Fn u8glen +function returns the number of graphemes in the buffer +.Fa s . +.Sh EXAMPLES +The following call to +.Fn u8glen +will return 6 while the call to +.Fn u8len +will return 7 as a result of user-preceived characters such as +.Sq е́ +taking up multiple codepoints. +.Bd -literal -offset indent +char8_t s[] = u8\(dqПриве́т\(dq; +size_t cplen, glen; + +cplen = u8len(s, sizeof(s) - 1); +glen = u8glen(s, sizeof(s) - 1); +.Ed +.Sh SEE ALSO +.Xr u8len 3 , +.Xr u8wdth 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Pp +.Lk https://www.unicode.org/versions/Unicode15.1.0/ \ +"The Unicode\(rg Standard Version 15.1.0" +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/man/u8gnext.3 b/vendor/librune/man/u8gnext.3 new file mode 100644 index 0000000..e50c250 --- /dev/null +++ b/vendor/librune/man/u8gnext.3 @@ -0,0 +1,69 @@ +.Dd January 27 2024 +.Dt U8GNEXT 3 +.Os +.Sh NAME +.Nm u8gnext , +.Nd iterate over Unicode codepoints +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In gbrk.h +.Ft size_t +.Fn u8gnext "struct u8view *v" "const char8_t **s" "size_t *n" +.Sh DESCRIPTION +The +.Fn u8gnext +function stores a view of the first grapheme in the buffer +.Fa s +of length +.Fa n +in the structure pointed to by +.Fa v . +It then updates +.Fa s +to point to the next grapheme in the buffer and also updates +.Fa n +accordingly. +.Pp +The +.Vt "struct u8view" +type is described in the +.Xr u8view 3 +manual. +.Sh RETURN VALUES +The +.Fn u8gnext +function returns the length of the grapheme iterated over in bytes, +or 0 at the end of iteration. +.Sh EXAMPLES +The following calls to +.Fn u8gnext +iterate over and print all the graphemes in +.Va s . +.Bd -literal -offset indent +#define STRING u8"नमस्कार विश्व" + +struct u8view v; +const char8_t *s = STRING; +size_t n = sizeof(STRING) - 1; + +while (u8gnext(&v, &s, &n)) + printf("‘%.*s’\en", (int)g.len, g.p); +.Ed +.Sh SEE ALSO +.Xr u8next 3 , +.Xr u8view 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Pp +.Lk https://www.unicode.org/versions/Unicode15.1.0/ \ +"The Unicode\(rg Standard Version 15.1.0" +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/man/u8len.3 b/vendor/librune/man/u8len.3 new file mode 100644 index 0000000..1391986 --- /dev/null +++ b/vendor/librune/man/u8len.3 @@ -0,0 +1,70 @@ +.Dd January 15 2024 +.Dt U8LEN 3 +.Os +.Sh NAME +.Nm u8len +.Nd count Unicode codepoints +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In mbstring.h +.Ft size_t +.Fn u8len "const char8_t *s" "size_t n" +.Sh DESCRIPTION +The +.Fn u8len +function returns the number of UTF-8 encoded Unicode codepoints in the +buffer +.Fa s +of length +.Fa n +bytes. +.Pp +This function assumes that +.Fa s +contains only valid UTF-8. +.Sh RETURN VALUES +The +.Fn u8len +function returns the number of codepoints in the buffer +.Fa s . +.Sh EXAMPLES +The following call to +.Fn u8len +will return 17 while the call to +.Fn strlen +will return 22 as a result of use of multibyte-characters in +.Fa s . +.Bd -literal -offset indent +char8_t s[] = u8\(dq„Der Große Duden“\(dq; +size_t blen, cplen; + +blen = strlen((char *)s); +cplen = u8len(s, sizeof(s) - 1); +.Ed +.Sh SEE ALSO +.Xr u8glen 3 , +.Xr u8wdth 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com +.Sh CAVEATS +The return value of +.Fn u8len +does not necessarily represent the number of human-preceived characters +in the given buffer; +multiple codepoints may combine to form one human-preceived character +that spans a single column. +To count user-preceived codepoints +.Pq also known as graphemes , +you may want to use the +.Xr u8glen 3 +function. diff --git a/vendor/librune/man/u8next.3 b/vendor/librune/man/u8next.3 new file mode 100644 index 0000000..ee9852d --- /dev/null +++ b/vendor/librune/man/u8next.3 @@ -0,0 +1,107 @@ +.Dd January 27 2024 +.Dt U8NEXT 3 +.Os +.Sh NAME +.Nm u8next , +.Nm u8prev +.Nd iterate over Unicode codepoints +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In mbstring.h +.Ft int +.Fn u8next "rune *ch" "const char8_t **s" "size_t *n" +.Ft int +.Fn u8prev "rune *ch" "const char8_t **s" "const char8_t *start" +.Sh DESCRIPTION +The +.Fn u8next +function decodes the first rune in the UTF-8 encoded string pointed to by +.Fa s +of length +.Fa n +and stores the result in +.Fa ch . +It then updates +.Fa s +to point to the next codepoint in the buffer and updates the length +.Fa n +accordingly. +.Pp +The +.Fn u8prev +function takes a pointer +.Fa start +which points to the start of the string instead of a length, +and updates +.Fa s +to point to the previous codepoint in the buffer. +The rune +.Fa ch +is set to UTF-8 codepoint pointed to by +.Fa s +after iteration. +.Pp +Both of these functions assume the input is valid UTF-8. +.Sh RETURN VALUES +The +.Fn u8next +and +.Fn u8prev +functions return the length of the UTF-8-encoded rune iterated over in +bytes, +or 0 at the end of iteration. +.Sh EXAMPLES +The following calls to +.Fn u8next +iterate over and print all the codepoints in +.Va s . +.Bd -literal -offset indent +#include <rune.h> /* For PRIXRUNE; see rune(3) */ + +#define STRING u8"Ta’ Ħaġrat" + +int w; +rune ch; +const char8_t *s = STRING; +size_t n = sizeof(STRING) - 1; + +while (w = u8next(&ch, &s, &n)) + printf("U+%04" PRIXRUNE ": ‘%.*s’\en", ch, w, s - w); +.Ed +.Pp +The following example is the same as the previous, +but it uses the +.Fn u8prev +function to iterate backwards. +.Bd -literal -offset indent +#include <rune.h> /* For PRIXRUNE; see rune(3) */ + +#define STRING u8"Ta’ Ħaġrat" + +int w; +rune ch; +const char8_t *s, *start; +size_t n = sizeof(STRING) - 1; + +start = STRING; +s = start + n; + +while (w = u8prev(&ch, &s, start)) + printf("U+%04" PRIXRUNE ": ‘%.*s’\en", ch, w, s); +.Ed +.Sh SEE ALSO +.Xr rune 3 , +.Xr u8gnext 3 , +.Xr u8tor 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/man/u8prev.3 b/vendor/librune/man/u8prev.3 new file mode 100644 index 0000000..cf1364e --- /dev/null +++ b/vendor/librune/man/u8prev.3 @@ -0,0 +1 @@ +.so u8next diff --git a/vendor/librune/man/u8set.3 b/vendor/librune/man/u8set.3 new file mode 100644 index 0000000..17d9fdb --- /dev/null +++ b/vendor/librune/man/u8set.3 @@ -0,0 +1,103 @@ +.Dd January 27 2024 +.Dt U8SET 3 +.Os +.Sh NAME +.Nm rtou8 , +.Nm u8set +.Nd encode a rune to UTF-8 +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In mbstring.h +.Ft int +.Fn rtou8 "char8_t *s" "rune ch" "size_t n" +.Ft size_t +.Fn u8set "char8_t *s" "rune ch" "size_t n" +.Sh DESCRIPTION +The +.Fn rtou8 +function writes the rune +.Fa ch +to the UTF-8 encoded buffer +.Fa s +of length +.Fa n , +returning the number of bytes required to UTF-8 encode +.Fa ch . +.Pp +The +.Fn u8set +function fills the buffer +.Fa s +of length +.Fa n +with the constant rune +.Fa ch . +It is similar to the +.Fn rtou8 +function, +but writes more than 1 rune if the given buffer has the capacity. +Unlike +.Fn rtou8 , +this function returns the number of bytes that were successfully written +to +.Fa s . +If +.Fa n +is a multiple of +.Fn u8wdth ch +the return value will be equal to +.Fa n , +however in the case that +.Fa n +is not a multiple then +.Fa s +is filled as much as possible, +and a count shorter than +.Fa n +is returned. +.Pp +Both of these functions assume the input is valid UTF-8. +.Sh RETURN VALUES +The +.Fn rtou8 +function returns the number of bytes required to write +.Fa ch +to the buffer +.Fa s . +.Pp +The +.Fn u8set +function returns the number of bytes written to the buffer +.Fa s . +.Sh EXAMPLES +The following calls to +.Fn rtou8 +and +.Fn u8set +fill a buffer with box-drawing characters to create a top-row of a box. +.Bd -literal -offset indent +#define SCREEN_WIDTH 80 + +int bdr_wdth = u8wdth(U'─'); /* box-drawing rune width */ +size_t bufsiz = SCREEN_WIDTH * bdr_wdth; +char8_t *s = malloc(bufsiz); + +rtou8(s, U'┌', bdr_wdth); +u8set(s + bdr_wdth, U'─', bufsiz - bdr_wdth * 2); +rtou8(s + bufsiz - bdr_wdth, U'┐', bdr_wdth); +.Ed +.Sh SEE ALSO +.Xr u8tor 3 , +.Xr u8tor_uc 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/man/u8tor.3 b/vendor/librune/man/u8tor.3 new file mode 100644 index 0000000..e6524bd --- /dev/null +++ b/vendor/librune/man/u8tor.3 @@ -0,0 +1,90 @@ +.Dd January 18 2024 +.Dt U8TOR 3 +.Os +.Sh NAME +.Nm u8tor , +.Nm u8tor_uc +.Nd decode UTF-8 into a rune +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In mbstring.h +.Ft int +.Fn u8tor "rune *ch" "const char8_t *s" +.Ft int +.Fn u8tor_uc "rune *ch" "const char8_t *s" +.Sh DESCRIPTION +The +.Fn u8tor +and +.Fn u8tor_uc +functions decode the first rune in the UTF-8 buffer +.Fa s , +storing the result in the rune pointed to by +.Fa ch . +Both functions return the number of bytes which compose the decoded +UTF-8. +.Pp +The two functions are nearly identical, +however +.Fn u8tor_uc +performs fewer range checks than +.Fn u8tor +allowing it to process data more efficiently. +When provided with invalid UTF-8 however, +.Fn u8tor_uc +engages in undefined-behavior. +The +.Fn u8tor +function on the other hand handles invalid UTF-8 by storing +.Dv RUNE_ERROR +in +.Fa ch +and returning 1. +.Sh RETURN VALUES +The +.Fn u8tor +and +.Fn u8tor_uc +functions return the number of bytes from +.Fa s +decoded into +.Fa ch . +.Pp +The +.Fn u8tor +function returns 1 on invalid UTF-8. +.Sh EXAMPLES +The following call to +.Fn u8tor +attempts to decode the first UTF-8 codepoint in +.Va buf . +.Bd -literal -offset indent +/* Implementation of read_codepoint() omitted */ + +int w; +rune ch; +char8_t *buf = read_codepoint(stdin); + +w = u8tor(&ch, buf); +if (ch == RUNE_ERROR) { + fputs("Got invalid UTF-8 codepoint", stderr); + exit(EXIT_FAILURE); +} +printf("Got rune ‘%.*s’\en", w, buf); +.Ed +.Sh SEE ALSO +.Xr rtou8 3 , +.Xr u8chk 3 , +.Xr u8next 3 , +.Xr unicode 7 , +.Xr utf\-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/man/u8tor_uc.3 b/vendor/librune/man/u8tor_uc.3 new file mode 100644 index 0000000..1527e52 --- /dev/null +++ b/vendor/librune/man/u8tor_uc.3 @@ -0,0 +1 @@ +.so u8tor.3 diff --git a/vendor/librune/man/u8wdth.3 b/vendor/librune/man/u8wdth.3 new file mode 100644 index 0000000..42f3a0d --- /dev/null +++ b/vendor/librune/man/u8wdth.3 @@ -0,0 +1,69 @@ +.Dd January 16 2024 +.Dt U8WDTH 3 +.Os +.Sh NAME +.Nm u8wdth +.Nd Unicode codepoint width +.Sh LIBRARY +.Lb librune +.Sh SYNOPSIS +.In mbstring.h +.Ft int +.Fn u8wdth "rune ch" +.Sh DESCRIPTION +The +.Fn u8wdth +function returns the number of bytes that would be occupied by the +Unicode-codepoint +.Fa ch +if it was encoded as UTF-8. +If +.Fa ch +is greater than +.Dv RUNE_MAX , +a width of 0 is returned. +.Pp +If the exact UTF-8 encoded size of a codepoint is not relevant and you +simply wish to allocate a buffer capable of holding a given number of +UTF-8 codepoints, +the +.Dv U8_LEN_MAX +macro may be preferable. +.Pp +This function treats invalid codepoints smaller than +.Dv RUNE_MAX +such as UTF-16 surrogates as valid. +.Sh RETURN VALUES +The +.Fn u8wdth +function returns the number of bytes required to UTF-8 encode the +codepoint +.Fa ch . +.Sh EXAMPLES +The following example allocates a buffer which is exactly large enough to +hold the given UTF-32 string once it is converted to UTF-8. +.Bd -literal -offset indent +#define lengthof(a) (sizeof(a) / sizeof(*(a))) + +size_t bufsiz = 0; +char8_t *buf; +char32_t s[] = U\(dqIJsselmeer\(dq; /* ‘IJ’ takes 2 bytes */ + +for (size_t i = 0; i < lengthof(s) - 1; i++) + bufsiz += u8wdth(s[i]); +buf = malloc(bufsiz); +.Ed +.Sh SEE ALSO +.Xr u8glen 3 , +.Xr u8len 3 , +.Xr unicode 7 , +.Xr utf-8 7 +.Sh STANDARDS +.Rs +.%A F. Yergeau +.%D November 2003 +.%R RFC 3629 +.%T UTF-8, a transformation format of ISO 10646 +.Re +.Sh AUTHORS +.An Thomas Voss Aq Mt mail@thomasvoss.com diff --git a/vendor/librune/test/gbrk.c b/vendor/librune/test/gbrk.c new file mode 100644 index 0000000..bfac3a3 --- /dev/null +++ b/vendor/librune/test/gbrk.c @@ -0,0 +1,85 @@ +#define _POSIX_C_SOURCE 200809L +#include <err.h> +#include <locale.h> +#include <stdio.h> +#include <stdlib.h> + +#include <gbrk.h> +#include <mbstring.h> +#include <rune.h> + +#define die(...) err(EXIT_FAILURE, __VA_ARGS__) + +static void test(char *); + +int +main(int argc, char **argv) +{ + char *line = NULL; + size_t n; + ssize_t nr; + FILE *fp; + + setlocale(LC_ALL, ""); + + if (argc != 2) { + fprintf(stderr, "%s: file\n", *argv); + exit(EXIT_FAILURE); + } + + if (!(fp = fopen(argv[1], "r"))) + die("fopen"); + + while ((nr = getline(&line, &n, fp)) > 0) { + line[nr - 1] = 0; + test(line); + } + + if (nr == -1 && ferror(fp)) + die("getline"); + + fclose(fp); + free(line); + return EXIT_SUCCESS; +} + +void +test(char *raw) +{ + int n; + rune ch; + char8_t *p, *buf; + const char8_t *s; + size_t bufsiz = 4096; + struct u8view graph; + + if (!(buf = malloc(bufsiz))) + die("malloc"); + + p = buf; + while (sscanf(raw, "%" SCNxRUNE "%n", &ch, &n)) { + rune sep; + p += rtou8(p, ch, bufsiz - (p - buf)); + raw += n; + raw += u8tor(&sep, (char8_t *)raw); + if (!sep) + break; + } + *p = 0; + + s = buf; + while (u8gnext(&graph, &s, &bufsiz) && *graph.p) { + rune ch; + const char8_t *p; + + while (u8next(&ch, &graph.p, &graph.len) && ch) { + printf("%04" PRIXRUNE "%s", ch, graph.len > 0 ? "×" : ""); + p = graph.p; + } + if (bufsiz && *p) + fputs("÷", stdout); + } + + putchar('\n'); + free(buf); +} diff --git a/vendor/librune/test/tests b/vendor/librune/test/tests new file mode 100755 index 0000000..5affe3a --- /dev/null +++ b/vendor/librune/test/tests @@ -0,0 +1,39 @@ +#!/bin/sh + +report() +{ + case $1 in + 0) printf 'All tests passed\n' >&2 ;; + 1) printf '1 test failed\n' >&2 ;; + *) printf '%d tests failed\n' $1 >&2 + esac +} + +readonly src=../data/GraphemeBreakTest.txt + +set -e +cd "${0%/*}" +find ../lib -name '*.c' -exec \ + cc -std=c2x -Wno-attributes -I../include -o gbrk gbrk.c {} + +trap 'rm -f gbrk' EXIT + +n=$( + ./gbrk $src \ + | diff -y --suppress-common-lines $src - \ + | tee failures \ + | wc -l +) +test $n -eq 0 && rm failures + +if test -t 2 +then + case $n in + 0) printf '\033[0;32m' ;; + *) printf '\033[0;31m' + esac + + report $n + printf '\033[0m' >&2 +else + report $n +fi |